Добрый день. Подскажите, люди добрые, где ошибка?
Делаю отчет, создала запрос. В консоли запросов он срабатывает и выводит все данные. А в СКД и в Консоли отчетов - не выводит ту часть, которая соедина по Левому соединению. Причем Левых соединений 2. Не выводит второе.

Код:

```1c
    ВЫБРАТЬ
    НачислениеПоБольничномуЛисту.Физлицо КАК ФИО,
    НачислениеПоБольничномуЛисту.ДатаНачалаСобытия,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации КАК МесяцНачисления,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента КАК СерияЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента КАК NЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности КАК ПричинаНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты,
    СУММА(Начисления2.ОплаченоДнейЧасов) КАК ДниЗаСчетФСС,
    СУММА(Начисления1.ОплаченоДнейЧасов) КАК ДниЗаСчетРаботодателя,
    СУММА(Начисления2.Результат) КАК ПособиеЗаСчетФСС,
    СУММА(Начисления1.Результат) КАК ПособиеЗаСчетРаботодателя,
    Начисления1.ВидРасчета КАК ВидРасчета,
    Начисления1.Сторно КАК Сторно
    {ВЫБРАТЬ ФИО, ДатаНачалаСобытия, ДатаОкончания, МесяцНачисления, СерияЛисткаНетрудоспособности, NЛисткаНетрудоспособности, ПричинаНетрудоспособности, ПроцентОплаты, ДниЗаСчетФСС, ДниЗаСчетРаботодателя, ПособиеЗаСчетФСС, ПособиеЗаСчетРаботодателя, ВидРасчета, Сторно}
    ИЗ
    Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеПоБольничномуЛисту.Начисления КАК Начисления1
    ПО НачислениеПоБольничномуЛисту.Ссылка = Начисления1.Ссылка
    И (Начисления1.Сторно = ЛОЖЬ)
    И (Начисления1.ВидРасчета.Код = "00025")
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеПоБольничномуЛисту.Начисления КАК Начисления2
    ПО НачислениеПоБольничномуЛисту.Ссылка = Начисления2.Ссылка
    И (Начисления2.Сторно = ЛОЖЬ)
    И (Начисления2.ВидРасчета.Код В ("00021", "00022"))
    ГДЕ

    НачислениеПоБольничномуЛисту.ПометкаУдаления = ЛОЖЬ
    И НачислениеПоБольничномуЛисту.Проведен = ИСТИНА

    СГРУППИРОВАТЬ ПО
    НачислениеПоБольничномуЛисту.Физлицо,
    НачислениеПоБольничномуЛисту.ДатаНачалаСобытия,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты,
    Начисления1.ВидРасчета,
    Начисления1.Сторноф

    УПОРЯДОЧИТЬ ПО
    МесяцНачисления,
    ФИО
```
---
Спасибо всем за неравнодушие, у меня получилось.

Перепробовала многие варианты, но остановилась на своем, просьба прокомментировать на оптимизированность и загрузку на сервер.
(23)ТС просто хочет видеть кому, когда и сколько начисляли больничных. А в данном контексте пустые данные нафиг не нужны.
Пустые хотелось бы тоже выводить, ибо надо приучать пользователей к порядку.

Решение:

```1c
    ВЫБРАТЬ
    НачислениеПоБольничномуЛисту.Физлицо КАК ФИО,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации КАК МесяцНачисления,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента КАК СерияЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента КАК NЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности КАК ПричинаНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетРаботодателя) КАК ДниЗаСчетРаботодателя,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетФСС) КАК ДниЗаСчетФСС,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетРаботодателя)+СУММА(НачисленияБольничныхОбщее.ДниЗаСчетФСС) КАК ИтогоДней,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетРаботодателя) КАК ПособиеЗаСчетРаботодателя,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетФСС) КАК ПособиеЗаСчетФСС,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетРаботодателя)+СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетФСС) КАК ИтогоПособие

    ИЗ
    Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
    ЛЕВОЕ СОЕДИНЕНИЕ
    (
    ВЫБРАТЬ
    НачислениеПоБЛЗаСчРаботодателя.Ссылка КАК Ссылка,
    СУММА(ЕСТЬNULL(НачислениеПоБЛЗаСчРаботодателя.ОплаченоДнейЧасов, 0)) КАК ДниЗаСчетРаботодателя,
    0 КАК ДниЗаСчетФСС,
    СУММА(ЕСТЬNULL(НачислениеПоБЛЗаСчРаботодателя.Результат, 0)) КАК ПособиеЗаСчетРаботодателя,
    0 КАК ПособиеЗаСчетФСС
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБЛЗаСчРаботодателя
    ГДЕ
    НачислениеПоБЛЗаСчРаботодателя.Сторно = ЛОЖЬ
    И НачислениеПоБЛЗаСчРаботодателя.ВидРасчета.Код В ("00025")
    СГРУППИРОВАТЬ ПО
    НачислениеПоБЛЗаСчРаботодателя.Ссылка
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
    НачислениеЗаСчетФСС.Ссылка,
    0,
    СУММА(ЕСТЬNULL(НачислениеЗаСчетФСС.ОплаченоДнейЧасов, 0)),
    0,
    СУММА(ЕСТЬNULL(НачислениеЗаСчетФСС.Результат, 0))
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеЗаСчетФСС
    ГДЕ
    НачислениеЗаСчетФСС.Сторно = ЛОЖЬ
    И НачислениеЗаСчетФСС.ВидРасчета.Код В ("00021", "00022", "00023")
    СГРУППИРОВАТЬ ПО
    НачислениеЗаСчетФСС.Ссылка
    ) КАК НачисленияБольничныхОбщее
    ПО НачислениеПоБольничномуЛисту.Ссылка = НачисленияБольничныхОбщее.Ссылка
    ГДЕ
    НачислениеПоБольничномуЛисту.Организация В(&Организация)
    И НачислениеПоБольничномуЛисту.ПериодРегистрации МЕЖДУ &Дата1 И &Дата2
    И НачислениеПоБольничномуЛисту.ПометкаУдаления = ЛОЖЬ
    И НачислениеПоБольничномуЛисту.Проведен = ИСТИНА

    СГРУППИРОВАТЬ ПО
    НачислениеПоБольничномуЛисту.Физлицо,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты

    УПОРЯДОЧИТЬ ПО МесяцНачисления, ФИО
```
---
попробуйте воспользоваться консолью СКД
---
Николай, Стенд не открывается. Я правильно понимаю, его надо запускать в режиме Предприятие? При открытии спрашивает разрешение на открытие и ничего не происходит. Так же с Консолью СКД 1-Совской.

Версия программы у меня 8.3, но базы от 8.2, если это имеет значение.

И вообще,я только начинаю с 1С, раньше я занималась Epicor iScala. И для меня этот переход очень болезнен. Может подскажите, с чего начать, что почитать, какими инструментами лучше пользоваться? Меня в первую очередь очень напрягает неполноценный скриптовый редактор, я пользуюсь Консолью запросов. Может есть что-нибудь альтернативное, более похожее на SQL Server Management Studio?
---
В свежих версиях стандартных конфигураций надо выдавать специальное право на открытие внешних обработок. Сделано для защиты от вредоносного ПО.

А насчёт неполноценности. Ну так нет ничего полноценного. Везде есть свои плюсы и минусы.
---
Олеся, Вы, наверное, работаете в обычном режиме. Я написал в личку, что надо сделать.

Переход у всех бывает болезненный, 1С - уже огромный агрегат, который трудно воспринимается сразу. Начните с самостоятельного изучения, хотя бы с книги Радченко. Если не получится, тогда курсы помогут.
http://v8.1c.ru/metod/
---
удали из запроса текст в скобках. Он СКД не читался
---
Результат тот же:(
---
раз есть левое соединение, то они могут быть равны нуль, проверки на нуль у тебя не вижу!
---
Нужен сам отчет
---
Отчет для ЗиКБУ 8.2
---
попробуйте воспользоваться консолью СКДКонкретно - можно этой обработкой:
http://infostart.ru/public/179939/

Там на закладке "Макет СКД" нажмите "Обновить" - обработка покажет запрос, который СКД выполняет. Там же можно выполнить этот запрос и посмотреть результат.

Предположительно: в секции СГРУППИРОВАТЬ не участвуют поля из второй таблицы (Начисления2) - СКД поэтому может убрать эту таблицу из запроса. Но не настаиваю, что в этом причина.
---
Консоль СКД, к сожалению, не открывается. Поэтому решила попробовать в Консоли Отчетов, но результат тот же, что и в СКД.
---
Что не открывается - 1С-овская Консоль или Стенд СКД?
---
1-C-овская не открывается, а Стенд как скачать? Я только что зарегистрировалась, у меня все по нулям.
---
1-C-овская не открывается, а Стенд как скачать? Я только что зарегистрировалась, у меня все по нулям.См. личку.
---
Я бы не стал искать, почему СКД что-то видит, а что-то не видит. Я бы оставил одно левое соединение:

```1c
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.НачислениеПоБольничномуЛисту.Начисления КАК Начисления
    ПО НачислениеПоБольничномуЛисту.Ссылка = Начисления.Ссылка
    И (Начисления.Сторно = ЛОЖЬ)
    И (Начисления.ВидРасчета.Код В ("00021", "00022", "00025"))
```

А цифры считал бы так:

```1c
    ЕстьNULL(СУММА(ВЫБОР КОГДА Начисления.КодРасчета<>"00025" ТОГДА Начисления.ОплаченоДнейЧасов ИНАЧЕ 0 КОНЕЦ), 0) КАК ДниЗаСчетФСС,
    ЕстьNULL(СУММА(ВЫБОР КОГДА Начисления.КодРасчета="00025" ТОГДА Начисления.ОплаченоДнейЧасов ИНАЧЕ 0 КОНЕЦ), 0) КАК ДниЗаСчетРаботодателя,
```

И если бы это решило проблему, то плюнул бы: "СКД что-то в себе оптимизировало-оптимизировало, да не выоптимизировало".
---
Ругается: "Группировка по таблицам верхнего уровня и вложенным таблицам"
---
Так вопрос не в той части кода, которую я привёл. А в той части кода, который вы не переделали. Чтоб совсем снять с себя ответственность, поменяйте синоним таблицы для левого соединения.
---
И, кстати. Зачем вы вообще группируете по полям

```1c
    Начисления1.ВидРасчета КАК ВидРасчета,
    Начисления1.Сторно КАК Сторно
```

Судя по вашему коду, они принимают либо (NULL, NULL), либо ("00025", ЛОЖЬ).

Возьмите аггрегат по этим полям:

```1c
    МАКСИМУМ(Начисления.ВидРасчета) КАК ВидРасчета,
    МАКСИМУМ(Начисления.Сторно) КАК Сторно
```
---
Павел, спасибо, я поняла свою ошибку по группировке, исправила ее. И все равно, в запросе - все красиво, а в таблицу отчета эти цифры не выводятся:(
В приложении - скрины выполнения запроса и отчета.
---
Когда-то писал что-то подобное

```1c
    ВЫБРАТЬ
    НачислениеПоБольничномуЛистуНачисления.Ссылка,
    СУММА(НачислениеПоБольничномуЛистуНачисления.Результат) КАК Результат,
    СУММА(ВЫБОР
    КОГДА НачислениеПоБольничномуЛистуНачисления.ОплаченоДнейЧасов < 0
    И НачислениеПоБольничномуЛистуНачисления.Ссылка.ПерерассчитываемыйДокумент = ЗНАЧЕНИЕ(Документ.НачислениеПоБольничномуЛисту.ПустаяСсылка)
    ТОГДА 0
    ИНАЧЕ НачислениеПоБольничномуЛистуНачисления.ОплаченоДнейЧасов
    КОНЕЦ) КАК ОплаченоДнейЧасов,
    НачислениеПоБольничномуЛистуНачисления.ВидРасчета
    ПОМЕСТИТЬ ВТНачисление
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБольничномуЛистуНачисления
    ГДЕ
    НачислениеПоБольничномуЛистуНачисления.ВидРасчета В(&СписокВидовРасчетов)

    СГРУППИРОВАТЬ ПО
    НачислениеПоБольничномуЛистуНачисления.ВидРасчета,
    НачислениеПоБольничномуЛистуНачисления.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТНачисление.Ссылка,
    СУММА(ВТНачисление.ОплаченоДнейЧасов) КАК ВсегоДней,
    СУММА(ВЫБОР
    КОГДА ВТНачисление.ВидРасчета.Наименование = "Оплата больничных листов за счет работодателя"
    ТОГДА ВТНачисление.ОплаченоДнейЧасов
    КОНЕЦ) КАК ДнейЗаСчетРаботодателя,
    СУММА(ВЫБОР
    КОГДА ВТНачисление.ВидРасчета.Наименование <> "Оплата больничных листов за счет работодателя"
    ТОГДА ВТНачисление.ОплаченоДнейЧасов
    КОНЕЦ) КАК ДнейЗаСчетФСС,
    СУММА(ВЫБОР
    КОГДА ВТНачисление.ВидРасчета.Наименование = "Оплата больничных листов за счет работодателя"
    ТОГДА ЕСТЬNULL(ВТНачисление.Результат, 0)
    КОНЕЦ) КАК ОплатаЗаСчетРаботодателя,
    СУММА(ВЫБОР
    КОГДА ВТНачисление.ВидРасчета.Наименование <> "Оплата больничных листов за счет работодателя"
    ТОГДА ЕСТЬNULL(ВТНачисление.Результат, 0)
    КОНЕЦ) КАК ОплатаЗаСчетФсс
    ПОМЕСТИТЬ ВТРезультат
    ИЗ
    ВТНачисление КАК ВТНачисление

    СГРУППИРОВАТЬ ПО
    ВТНачисление.Ссылка
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    НачислениеПоБольничномуЛисту.Сотрудник,
    НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ОбщееЗаболевание)
    ТОГДА ЕСТЬNULL(ВТРезультат.ДнейЗаСчетРаботодателя, 0)
    КОНЕЦ КАК ДнейЗаСчетРаботадателя,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ОбщееЗаболевание)
    ТОГДА ЕСТЬNULL(ВТРезультат.ДнейЗаСчетФСС, 0)
    КОНЕЦ КАК ДнейЗаСчетФСС,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ОбщееЗаболевание)
    ТОГДА ЕСТЬNULL(ВТРезультат.ОплатаЗаСчетРаботодателя, 0)
    КОНЕЦ КАК ОплатаЗаСчетРаботадателя,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ОбщееЗаболевание)
    ТОГДА ЕСТЬNULL(ВТРезультат.ОплатаЗаСчетФсс, 0)
    КОНЕЦ КАК ОплатаЗаСчетФСС,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ПоБеременностиИРодам)
    ТОГДА ЕСТЬNULL(ВТРезультат.ДнейЗаСчетФСС, 0)
    КОНЕЦ КАК ДнейПоБеремености,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ПоБеременностиИРодам)
    ТОГДА ЕСТЬNULL(ВТРезультат.ОплатаЗаСчетФсс, 0)
    КОНЕЦ КАК ОплатаПоБеремености,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ПоУходуЗаРебенком)
    ТОГДА ЕСТЬNULL(ВТРезультат.ДнейЗаСчетФСС, 0)
    КОНЕЦ КАК ДнейПоУходуЗаРебонком,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ПоУходуЗаРебенком)
    ТОГДА ЕСТЬNULL(ВТРезультат.ОплатаЗаСчетФсс, 0)
    КОНЕЦ КАК ОплатаПоУходуЗаРебенком,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ТравмаНаПроизводстве)
    ТОГДА ЕСТЬNULL(ВТРезультат.ДнейЗаСчетФСС, 0)
    КОНЕЦ КАК ДнейПоТрамвеНаПроизводстве,
    ВЫБОР
    КОГДА НачислениеПоБольничномуЛисту.ПричинаНетрудоспособности = ЗНАЧЕНИЕ(Перечисление.ПричиныНетрудоспособности.ТравмаНаПроизводстве)
    ТОГДА ЕСТЬNULL(ВТРезультат.ОплатаЗаСчетФсс, 0)
    КОНЕЦ КАК ОплатаПоТрамвеНаПроизводстве,
    НачислениеПоБольничномуЛисту.ПервичныйБольничныйЛист,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента,
    НачислениеПоБольничномуЛисту.ПроцентОплаты
    ИЗ
    Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
    ЛЕВОЕ СОЕДИНЕНИЕ ВТРезультат КАК ВТРезультат
    ПО НачислениеПоБольничномуЛисту.Ссылка = ВТРезультат.Ссылка
    ГДЕ
    НачислениеПоБольничномуЛисту.Проведен = ИСТИНА
    И НачислениеПоБольничномуЛисту.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
```
---
Забыл указать параметр СписокВидовРасчета

```1c
    СписокРасчетов= Новый СписокЗначений;

    СписокРасчетов.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Оплата больничных листов за счет работодателя"));
    СписокРасчетов.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаБЛПоТравмеНаПроизводстве);
    СписокРасчетов.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтсутствиеПоБолезниПоБеременности);
    СписокРасчетов.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПоСреднемуБЛ);
    СписокРасчетов.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОтпускПоБеременностиИРодам);
```
---
ИМХО, вообще соединения не нужны. Выбирать сам документ и крепить к нему таб. часть смысла нет. Можно сразу выбирать табличную часть, а все нужные реквизиты через ссылку вытащить. А данные по разным видам начислений делать как:

```1c
    Выбор
    Когда Начисления.ВидРасчета.Код В ("00021", "00022") Тогда Начисления.ОплаченоДнейЧасов
    Иначе
    0
    Конец КАК ДниЗаСчетФСС,
    Выбор
    Когда Начисления.ВидРасчета.Код В ("00025") Тогда Начисления.ОплаченоДнейЧасов
    Иначе
    0
    Конец КАК ДниЗаСчетРаботодателя
```

Потом при группировке сложится как надо
"Сторно", которое всегда ЛОЖЬ вообще выбирать не надо. А "ВидРасчета" если уж в детализации идет, тогда нет смысла "Начисления.ОплаченоДнейЧасов" делить на "ДниЗаСчетФСС" и "ДниЗаСчетРаботодателя". Они все равно в разных строках будут и не сложатся по кодам "00021", "00022"
То же самое касается

```1c
    СУММА(Начисления2.Результат) КАК ПособиеЗаСчетФСС,
    СУММА(Начисления1.Результат) КАК ПособиеЗаСчетРаботодателя,
```
---
Если бы у топикстартера было ВНУТРЕННЕЕ СОЕДИНЕНИЕ, то я бы с Вами согласился. У топикстартера ЛЕВОЕ СОЕДИНЕНИЕ.
---
Ну, только если ТС обязательно хочет видеть документы с пустыми данными, по мне, так исходя из

```1c
    УПОРЯДОЧИТЬ ПО
    МесяцНачисления,
    ФИО
```

ТС просто хочет видеть кому, когда и сколько начисляли больничных. А в данном контексте пустые данные нафиг не нужны. Да и деление "ЗаСчетФСС" и "ЗаСчетРаботодателя" вроде третьего варианта не подразумевает, т.е. любой вид начисления куда-то должен отнестись и в левом соединении смысла нет
---
Спасибо всем за неравнодушие, у меня получилось.

Перепробовала многие варианты, но остановилась на своем, просьба прокомментировать на оптимизированность и загрузку на сервер.
(23)ТС просто хочет видеть кому, когда и сколько начисляли больничных. А в данном контексте пустые данные нафиг не нужны.
Пустые хотелось бы тоже выводить, ибо надо приучать пользователей к порядку.

Решение:

```1c
    ВЫБРАТЬ
    НачислениеПоБольничномуЛисту.Физлицо КАК ФИО,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации КАК МесяцНачисления,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента КАК СерияЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента КАК NЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности КАК ПричинаНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетРаботодателя) КАК ДниЗаСчетРаботодателя,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетФСС) КАК ДниЗаСчетФСС,
    СУММА(НачисленияБольничныхОбщее.ДниЗаСчетРаботодателя)+СУММА(НачисленияБольничныхОбщее.ДниЗаСчетФСС) КАК ИтогоДней,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетРаботодателя) КАК ПособиеЗаСчетРаботодателя,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетФСС) КАК ПособиеЗаСчетФСС,
    СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетРаботодателя)+СУММА(НачисленияБольничныхОбщее.ПособиеЗаСчетФСС) КАК ИтогоПособие

    ИЗ
    Документ.НачислениеПоБольничномуЛисту КАК НачислениеПоБольничномуЛисту
    ЛЕВОЕ СОЕДИНЕНИЕ
    (
    ВЫБРАТЬ
    НачислениеПоБЛЗаСчРаботодателя.Ссылка КАК Ссылка,
    СУММА(ЕСТЬNULL(НачислениеПоБЛЗаСчРаботодателя.ОплаченоДнейЧасов, 0)) КАК ДниЗаСчетРаботодателя,
    0 КАК ДниЗаСчетФСС,
    СУММА(ЕСТЬNULL(НачислениеПоБЛЗаСчРаботодателя.Результат, 0)) КАК ПособиеЗаСчетРаботодателя,
    0 КАК ПособиеЗаСчетФСС
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБЛЗаСчРаботодателя
    ГДЕ
    НачислениеПоБЛЗаСчРаботодателя.Сторно = ЛОЖЬ
    И НачислениеПоБЛЗаСчРаботодателя.ВидРасчета.Код В ("00025")
    СГРУППИРОВАТЬ ПО
    НачислениеПоБЛЗаСчРаботодателя.Ссылка
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
    НачислениеЗаСчетФСС.Ссылка,
    0,
    СУММА(ЕСТЬNULL(НачислениеЗаСчетФСС.ОплаченоДнейЧасов, 0)),
    0,
    СУММА(ЕСТЬNULL(НачислениеЗаСчетФСС.Результат, 0))
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеЗаСчетФСС
    ГДЕ
    НачислениеЗаСчетФСС.Сторно = ЛОЖЬ
    И НачислениеЗаСчетФСС.ВидРасчета.Код В ("00021", "00022", "00023")
    СГРУППИРОВАТЬ ПО
    НачислениеЗаСчетФСС.Ссылка
    ) КАК НачисленияБольничныхОбщее
    ПО НачислениеПоБольничномуЛисту.Ссылка = НачисленияБольничныхОбщее.Ссылка
    ГДЕ
    НачислениеПоБольничномуЛисту.Организация В(&Организация)
    И НачислениеПоБольничномуЛисту.ПериодРегистрации МЕЖДУ &Дата1 И &Дата2
    И НачислениеПоБольничномуЛисту.ПометкаУдаления = ЛОЖЬ
    И НачислениеПоБольничномуЛисту.Проведен = ИСТИНА

    СГРУППИРОВАТЬ ПО
    НачислениеПоБольничномуЛисту.Физлицо,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты

    УПОРЯДОЧИТЬ ПО МесяцНачисления, ФИО
```
---
просьба прокомментировать на оптимизированность и загрузку на сервер
Вообще отвратительно.
1)Сначала во внутренний запрос выбираются строки табличных частей без отбора по периоду, организации и пр. А потом уже соединяется с отобранным массивом документов.
2)Внутренний запрос прекрасно без объединения, одним запросом выбирается

Я бы так выбирал:

```1c
    ВЫБРАТЬ
    НачислениеПоБольничномуЛистуНачисления.Ссылка,
    СУММА(ВЫБОР
    КОГДА НачислениеПоБольничномуЛистуНачисления.ВидРасчета.Код = "00025"
    ТОГДА НачислениеПоБольничномуЛистуНачисления.ОплаченоДнейЧасов
    ИНАЧЕ 0
    КОНЕЦ) КАК ДниЗаСчетРаботодателя,
    СУММА(ВЫБОР
    КОГДА НачислениеПоБольничномуЛистуНачисления.ВидРасчета.Код = "00025"
    ТОГДА НачислениеПоБольничномуЛистуНачисления.Результат
    ИНАЧЕ 0
    КОНЕЦ) КАК ПособиеЗаСчетРаботодателя,
    СУММА(ВЫБОР
    КОГДА НачислениеПоБольничномуЛистуНачисления.ВидРасчета.Код = "00025"
    ТОГДА 0
    ИНАЧЕ НачислениеПоБольничномуЛистуНачисления.ОплаченоДнейЧасов
    КОНЕЦ) КАК ДниЗаСчетФСС,
    СУММА(ВЫБОР
    КОГДА НачислениеПоБольничномуЛистуНачисления.ВидРасчета.Код = "00025"
    ТОГДА 0
    ИНАЧЕ НачислениеПоБольничномуЛистуНачисления.Результат
    КОНЕЦ) КАК ПособиеЗаСчетФСС
    ИЗ
    Документ.НачислениеПоБольничномуЛисту.Начисления КАК НачислениеПоБольничномуЛистуНачисления
    ГДЕ
    НачислениеПоБольничномуЛистуНачисления.Ссылка.Проведен
    И НЕ НачислениеПоБольничномуЛистуНачисления.Ссылка.ПометкаУдаления
    И НачислениеПоБольничномуЛистуНачисления.Ссылка.ПериодРегистрации МЕЖДУ &Дата1 И &Дата2
    И НачислениеПоБольничномуЛистуНачисления.Ссылка.Организация В(&Организации)
    И НачислениеПоБольничномуЛистуНачисления.ВидРасчета.Код В ("00021", "00022", "00023", "00025")
    И НЕ НачислениеПоБольничномуЛистуНачисления.Сторно

    СГРУППИРОВАТЬ ПО
    НачислениеПоБольничномуЛистуНачисления.Ссылка
```

Все остальные поля из ссылки вытаскиваются
P/S/ А вообще, отбор по кодам не айс. Да и данные, наверняка, из регистра можно выбирать, а не из документа
---
Вообще-то я согласна с Вами. Запрос мне и самой не нравится.
Поясните, пожалуйста, как это: остальные поля из ссылки вытаскиваются
Какая альтернатива отбора по кодам? Можно коды еще вынести в параметр.
---
остальные поля из ссылки вытаскиваются
У Вас, судя по запросу и скриншоту, нужны поля:

```1c
    НачислениеПоБольничномуЛисту.Физлицо КАК ФИО,
    НачислениеПоБольничномуЛисту.ДатаНачала,
    НачислениеПоБольничномуЛисту.ДатаОкончания,
    НачислениеПоБольничномуЛисту.ПериодРегистрации КАК МесяцНачисления,
    НачислениеПоБольничномуЛисту.СерияВходящегоДокумента КАК СерияЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.НомерВходящегоДокумента КАК NЛисткаНетрудоспособности,
    НачислениеПоБольничномуЛисту.КодПричиныНетрудоспособности КАК ПричинаНетрудоспособности,
    НачислениеПоБольничномуЛисту.ПроцентОплаты
```

Все они вытаскиваются из ссылки через точку, при этом сама ссылка не нужна(как я её в запросе вытаскиваю). Поэтому в СКД, в выбираемых полях, надо вытаскивать не поле "Ссылка", а поля

```1c
    Ссылка.Физлицо,
    Ссылка.ДатаНачала,
    Ссылка.ДатаОкончания
    ...
```

они там через плюсик от ссылки доступны. Ну, либо результат этого запроса запихнуть во временную таблицу(ВТ1, например), а уже в следующей таблице вытянуть нужные поля:

```1c
    ВЫБРАТЬ
    ВТ1.Ссылка.Физлицо КАК ФИО,
    ВТ1.Ссылка.ДатаНачала,
    ВТ1.Ссылка.ДатаОкончания,
    ВТ1.Ссылка.ПериодРегистрации КАК МесяцНачисления,
    ..
    ВТ1.ДниЗаСчетРаботодателя,
    ВТ1.ПособиеЗаСчетРаботодателя,
    ВТ1.ДниЗаСчетФСС,
    ВТ1.ПособиеЗаСчетФСС
    ...
```

Если не нравится что столько через точку вытягивается, то можно соединить по имеющейся ссылке с самим документом и вытащить реквизиты оттуда. Но, ИМХО, получится примерно то же самое и менее читаемое

Какая альтернатива отбора по кодам? Можно коды еще вынести в параметр
Можно в параметр. А если это предопределенный элемент справочника/планов видов характеристик, или перечисление, то можно сразу в запросе установить нужное значение. В любом случае будет намного шустрее
---
Если делать без ЛС, то некоторым полям придётся обращаться через "." Что может сказаться на быстродействии запроса