Доброго времени суток! Подскажите пожалуйста по СКД. Запрашиваю через http-сервис Расчетный листок нужного сотрудника. Конфа древняя, функция формирования РЛ выполняется в директиве "На клиенте", соответственно не могу обратиться к ним. Пришлось отдельным программным выводом, получилось такое:
Моя функция
```1c
    Функция ПрограммноСформироватьОтчетНаСервере(Период, Организация)

    ОбъектОтчетНаСервере = отчеты.РасчетныеЛисткиОрганизаций.Создать();

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    СхемаСКД = ОбъектОтчетНаСервере.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КомпоновщикНастроекДанныхОтчета = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроекДанныхОтчета.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаСКД));

    КомпоновщикНастроекДанныхОтчета.ЗагрузитьНастройки(ОбъектОтчетНаСервере.КомпоновщикНастроек.Настройки);

    ПараметрыДанных = КомпоновщикНастроекДанныхОтчета.Настройки.ПараметрыДанных.Элементы;
    ЭлементНачалоПериода = ПараметрыДанных.Найти("НачалоПериода");
    ЭлементНачалоПериода.Использование = Истина;
    ЭлементНачалоПериода.Значение = НачалоМесяца(Период);

    ЭлементКонецПериода = ПараметрыДанных.Найти("КонецПериода");
    ЭлементКонецПериода.Использование = Истина;
    ЭлементКонецПериода.Значение = КонецМесяца(Период);

    ЭлементКонецПериода = ПараметрыДанных.Найти("Группировать");
    ЭлементКонецПериода.Использование = Истина;
    ЭлементКонецПериода.Значение = Ложь;

    ЭлементКонецПериода = ПараметрыДанных.Найти("ВыводитьЗаймы");
    ЭлементКонецПериода.Использование = Истина;
    ЭлементКонецПериода.Значение = Истина;

    ЭлементКонецПериода = ПараметрыДанных.Найти("ВыводитьДоходы");
    ЭлементКонецПериода.Использование = Истина;
    ЭлементКонецПериода.Значение = Истина;

    ЭлементКонецПериода = ПараметрыДанных.Найти("ВыводитьДокументВыплаты");
    ЭлементКонецПериода.Использование = Истина;
    ЭлементКонецПериода.Значение = Истина;

    ОтборКомпоновщика = КомпоновщикНастроекДанныхОтчета.Настройки.Отбор;

    СотрудникОтбор = ОтборКомпоновщика.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    СотрудникОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    СотрудникОтбор.Использование = Истина;
    СотрудникОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник");
    СотрудникОтбор.ПравоеЗначение = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию("Иванов Иван");

    ОрганизацияОтбор = ОтборКомпоновщика.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОрганизацияОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОрганизацияОтбор.Использование = Истина;
    ОрганизацияОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
    ОрганизацияОтбор.ПравоеЗначение = Организация;

    КомпоновщикНастроекДанныхОтчета.ЗагрузитьПользовательскиеНастройки(ОбъектОтчетНаСервере.КомпоновщикНастроек.ПользовательскиеНастройки);
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    Макет = КомпоновщикМакета.Выполнить(СхемаСКД, КомпоновщикНастроекДанныхОтчета.ПолучитьНастройки(), ДанныеРасшифровки);

    НачисленияУдержания = Новый ТаблицаЗначений;
    НачисленияУдержания.Колонки.Добавить("ВидДвижения");
    НачисленияУдержания.Колонки.Добавить("ВидДвиженияВычет");
    НачисленияУдержания.Колонки.Добавить("ВидДвиженияКорректировка");
    НачисленияУдержания.Колонки.Добавить("ВидДвиженияСуммаУменьшенияОблагаемогоДохода");
    НачисленияУдержания.Колонки.Добавить("ВидДвиженияУд");
    НачисленияУдержания.Колонки.Добавить("ВидДоговора");
    НачисленияУдержания.Колонки.Добавить("ВОСМСЗаМесяц");
    НачисленияУдержания.Колонки.Добавить("ВОСМССНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ВычетСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ГоловнаяОрганизация");
    НачисленияУдержания.Колонки.Добавить("Должность");
    НачисленияУдержания.Колонки.Добавить("ДоходыСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ЗаймыОстаток");
    НачисленияУдержания.Колонки.Добавить("ИПНСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("КонецПогашения");
    НачисленияУдержания.Колонки.Добавить("НачалоПогашения");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияВидНачисления");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияВидУдержания");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияОтработанныеДни");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияОтработанныеЧасы");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияПериодНачисления");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияПериодУдержания");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияСуммаНачисления");
    НачисленияУдержания.Колонки.Добавить("НачисленияУдержанияСуммаУдержания");
    НачисленияУдержания.Колонки.Добавить("НеОблагаемыеИПНДоходыСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ООСМСЗаМесяц");
    НачисленияУдержания.Колонки.Добавить("ООСМССНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ОПВСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("ОППВЗаМесяц");
    НачисленияУдержания.Колонки.Добавить("ОППВСНачалаГода");
    НачисленияУдержания.Колонки.Добавить("Организация");
    НачисленияУдержания.Колонки.Добавить("ПериодПогашения");
    НачисленияУдержания.Колонки.Добавить("ПериодРегистрации");
    НачисленияУдержания.Колонки.Добавить("ПодразделениеОрганизации");
    НачисленияУдержания.Колонки.Добавить("ПризнакУпорядочиванияСтрок");
    НачисленияУдержания.Колонки.Добавить("Размер");
    НачисленияУдержания.Колонки.Добавить("СальдоКонечное");
    НачисленияУдержания.Колонки.Добавить("СальдоНачальное");
    НачисленияУдержания.Колонки.Добавить("Сотрудник");
    НачисленияУдержания.Колонки.Добавить("СуммаВзаиморасчетовКонечныйОст");
    НачисленияУдержания.Колонки.Добавить("СуммаВзаиморасчетовНачальныйОст");
    НачисленияУдержания.Колонки.Добавить("ТабельныйНомер");
    НачисленияУдержания.Колонки.Добавить("ТарифныйРазряд");
    НачисленияУдержания.Колонки.Добавить("ТекстДолгНаКонецПериода");
    НачисленияУдержания.Колонки.Добавить("ТекстДолгНаНачалоПериода");
    НачисленияУдержания.Колонки.Добавить("ФизЛицо");
    НачисленияУдержания.Колонки.Добавить("ФИО");

    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("НачисленияУдержания", НачисленияУдержания);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(Макет, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);

    ДокументРезультат = Новый ТабличныйДокумент;
    ДокументРезультат.АвтоМасштаб = Истина;
    ДокументРезультат.ОтображатьЗаголовки = Ложь;
    ДокументРезультат.ОтображатьСетку = Ложь;

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

    Возврат ДокументРезультат;

    КонецФункции
```

Типовой код формирования на клиенте
```1c
    Функция СформироватьОтчет(Результат, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Ложь, ВыводитьПоСтраницам = Ложь) Экспорт

    СохранитьНастройкуТабличногоДокумента(Результат);

    Если ДанныеРасшифровки = Неопределено Тогда
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КонецЕсли;

    НастрокаПоУмолчанию = КомпоновщикНастроек.ПолучитьНастройки();
    ТиповыеОтчеты.ПолучитьПримененуюНастройку(ЭтотОбъект);

    ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Группировать"));

    Если ЗначениеПараметра.Использование и НЕ ЗначениеПараметра.Значение тогда
    УдалитьГруппировку();
    КонецЕсли;

    // Получить настройки схемы компоновки данных
    Настройки = КомпоновщикНастроек.Настройки;

    // Преобразовать отбор по физ лицу в отбор по сотруднику
    Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл

    Если НЕ ЭлементОтбора.Использование Тогда
    Продолжить;
    КонецЕсли;

    Если ТипЗнч(ЭлементОтбора) <> Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
    Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник") И
    (ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно
    ИЛИ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии)
    И ЭлементОтбора.ПравоеЗначение <> Справочники.СотрудникиОрганизаций.ПустаяСсылка()
    И НЕ ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЭлементОтбора.ПравоеЗначение, "ЭтоГруппа") Тогда

    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФизЛицо");
    ЭлементОтбора.ПравоеЗначение = ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЭлементОтбора.ПравоеЗначение, "ФизЛицо");

    ИначеЕсли ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник") И
    (ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке
    ИЛИ ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии) Тогда
    ОтборБезГрупп = Истина;
    СписокФизЛиц = Новый СписокЗначений;
    Для Каждого ЭлементСписка Из ЭлементОтбора.ПравоеЗначение Цикл
    Если ЭлементСписка.Значение <> Справочники.СотрудникиОрганизаций.ПустаяСсылка() И НЕ ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЭлементСписка.Значение, "ЭтоГруппа") Тогда
    СписокФизЛиц.Добавить(ОбщегоНазначения.ПолучитьЗначениеРеквизита(ЭлементСписка.Значение, "ФизЛицо"));
    Иначе
    ОтборБезГрупп = Ложь;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    Если ОтборБезГрупп Тогда
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ФизЛицо");
    ЭлементОтбора.ПравоеЗначение = СписокФизЛиц;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;

    КонецЦикла;

    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("парамВалютаРегламентУчета", Константы.ВалютаРегламентированногоУчета.Получить());

    ЗначениеНачалоПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
    НачалоПериода = ЗначениеНачалоПараметра.Значение;

    ЗначениеКонецПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
    КонецПериода = ЗначениеКонецПараметра.Значение;

    ЗначениеВыводитьДокументВыплаты = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьДокументВыплаты"));
    ДетализацияВыплат = ЗначениеВыводитьДокументВыплаты.Значение;

    ЗначениеВыводитьЗаймы = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьЗаймы"));
    ВыводитьЗаймы = ЗначениеВыводитьЗаймы.Значение;

    ЗначениеВыводитьДоходы = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьДоходы"));
    ВыводитьДоходы = ЗначениеВыводитьДоходы.Значение;

    ПараметрНачалоПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
    ПараметрКонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));

    Если НачалоПериода = '00010101' И (КонецПериода = '00010101' ИЛИ Год(КонецПериода) = Год(Дата('00010101235959'))) Тогда
    НачалоПериода = НачалоМесяца(ТекущаяДата());
    КонецПериода = КонецМесяца(ТекущаяДата());
    ИначеЕсли НачалоПериода = '00010101' Тогда
    НачалоПериода = НачалоМесяца(КонецПериода);
    ИначеЕсли КонецПериода = '00010101' Тогда
    КонецПериода = КонецМесяца(НачалоПериода);
    ИначеЕсли НачалоПериода > КонецПериода ИЛИ КонецПериода < НачалоПериода Тогда
    КонецПериода = КонецМесяца(НачалоПериода);
    КонецЕсли;
    ПараметрКонецПериода.Использование = Истина;
    ПараметрНачалоПериода.Использование = Истина;

    ПараметрКонецПериода.Значение = КонецПериода;
    ПараметрНачалоПериода.Значение = НачалоПериода;

    Если НачалоПериода <> Неопределено И КонецПериода <> Неопределено Тогда
    УправлениеОтчетами.ЗаменитьВСКДТекстЗапросКалендаря(СхемаКомпоновкиДанных, НачалоПериода, КонецПериода, СоответствиеНаборовДанныхИЗапросов);
    КонецЕсли;

    // установим параметры и текст запроса построителя запроса
    ПостроительОтчетов = Новый ПостроительОтчета;

    НастроитьПостроительЗапросов(ПостроительОтчетов, ДетализацияВыплат);

    // установим отбор р/л без без начислений и удержаний
    ГруппаОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
    ГруппаОтбора.Использование = Истина;

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвижения")).Поле;
    ЭлементОтбора.ПравоеЗначение = "1";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияУд")).Поле;
    ЭлементОтбора.ПравоеЗначение = "2";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияВычет")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияКорректировка")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияСуммаУменьшенияОблагаемогоДохода")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.Элементы.Найти("СальдоНачальное").Поле;
    ЭлементОтбора.ПравоеЗначение = 0;

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.Элементы.Найти("СальдоКонечное").Поле;
    ЭлементОтбора.ПравоеЗначение = 0;

    ЗначениеОтбораСотрудника = Неопределено;
    ЕстьОтборПоФизЛицу = Ложь;
    Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл

    // если отбор установлен по сотруднику
    Если ЭлементОтбора.Использование И ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Сотрудник") Тогда
    Если ЭлементОтбора.ПравоеЗначение <> Неопределено И ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") Тогда
    ЗначениеОтбораСотрудника = ЭлементОтбора;
    КонецЕсли;
    КонецЕсли;

    //если отбор установлен по физлицу
    Если ЭлементОтбора.Использование И ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И ЭлементОтбора.ЛевоеЗначение = СписокПолейОтбора.Получить(0).Значение Тогда
    Если ЭлементОтбора.ПравоеЗначение <> Неопределено И ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") Тогда
    ЕстьОтборПоФизЛицу = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    Если НЕ ЕстьОтборПоФизЛицу И ЗначениеОтбораСотрудника <> Неопределено
    И ((ТипЗнч(ЗначениеОтбораСотрудника.ПравоеЗначение) = Тип("СправочникСсылка.СотрудникиОрганизаций")
    И НЕ ЗначениеОтбораСотрудника.ПравоеЗначение.ЭтоГруппа)
    ИЛИ ТипЗнч(ЗначениеОтбораСотрудника.ПравоеЗначение) = Тип("СписокЗначений")) Тогда

    ОтборПоФизЛицу = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборПоФизЛицу.ВидСравнения = ЗначениеОтбораСотрудника.ВидСравнения;
    ОтборПоФизЛицу.Использование = Истина;
    ОтборПоФизЛицу.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ФизЛицо")).Поле;

    Если ТипЗнч(ЗначениеОтбораСотрудника.ПравоеЗначение) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
    ОтборПоФизЛицу.ПравоеЗначение = ЗначениеОтбораСотрудника.ПравоеЗначение.Физлицо;
    ИначеЕсли ТипЗнч(ЗначениеОтбораСотрудника.ПравоеЗначение) = Тип("СписокЗначений") Тогда

    СписокЗначенийОтбораФизЛиц = Новый СписокЗначений;

    Для Каждого ЭлементСписка Из ЗначениеОтбораСотрудника.ПравоеЗначение Цикл
    Если ТипЗнч(ЭлементСписка.Значение) = Тип("СправочникСсылка.СотрудникиОрганизаций") Тогда
    СписокЗначенийОтбораФизЛиц.Добавить(ЭлементСписка.Значение.ФизЛицо);
    КонецЕсли;
    КонецЦикла;

    ОтборПоФизЛицу.ПравоеЗначение = СписокЗначенийОтбораФизЛиц;

    Иначе

    Настройки.Отбор.Элементы.Удалить(ОтборПоФизЛицу);

    КонецЕсли;
    КонецЕсли;

    // установим отборы в построителе запросов
    Для Каждого ЭлементОтбора Из Настройки.Отбор.Элементы Цикл
    Если ЭлементОтбора.Использование И ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И СписокПолейОтбора.НайтиПоЗначению(ЭлементОтбора.ЛевоеЗначение) <> Неопределено
    Тогда
    ВидСравненияОтбора = Неопределено;
    Если ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда
    ВидСравненияОтбора = ВидСравнения.Равно;
    ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке Тогда
    ВидСравненияОтбора = ВидСравнения.ВСписке;
    ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно Тогда
    ВидСравненияОтбора = ВидСравнения.НеРавно;
    ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии Тогда
    ВидСравненияОтбора = ВидСравнения.ВСпискеПоИерархии;
    ИначеЕсли ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии Тогда
    ВидСравненияОтбора = ВидСравнения.ВИерархии;
    КонецЕсли;
    Если ВидСравненияОтбора <> Неопределено Тогда
    Имя = Строка(ЭлементОтбора.ЛевоеЗначение);
    ПостроительОтчетов.Отбор.Добавить(Имя);
    ПостроительОтчетов.Отбор[Имя].ВидСравнения = ВидСравненияОтбора;
    Если ЭлементОтбора.ПравоеЗначение <> Неопределено И ЭлементОтбора.ПравоеЗначение <> NULL И ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") Тогда
    ПостроительОтчетов.Отбор[Имя].Значение = ЭлементОтбора.ПравоеЗначение;
    КонецЕсли;
    ПостроительОтчетов.Отбор[Имя].Использование = Истина;
    КонецЕсли;
    КонецЕсли;

    // если отбор установлен по сотруднику
    Если ЭлементОтбора.Использование И ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И ЭлементОтбора.ЛевоеЗначение = СписокПолейОтбора.Получить(1).Значение Тогда
    Если ЭлементОтбора.ПравоеЗначение <> Неопределено И ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") Тогда
    ЗначениеОтбораСотрудника = ЭлементОтбора;
    КонецЕсли;
    КонецЕсли;

    // если отбор установлен по физлицу
    Если ЭлементОтбора.Использование И ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") И ЭлементОтбора.ЛевоеЗначение = СписокПолейОтбора.Получить(0).Значение Тогда
    Если ЭлементОтбора.ПравоеЗначение <> Неопределено И ТипЗнч(ЭлементОтбора.ПравоеЗначение) <> Тип("ПолеКомпоновкиДанных") Тогда
    ЕстьОтборПоФизЛицу = Истина;
    КонецЕсли;
    КонецЕсли;

    КонецЦикла;

    // заполним ТЗ "НачисленияУдержания"
    ЗаполнитьВнешнийИсточникДанных(ПостроительОтчетов);

    //Установить параметрыы расшифровки макета
    Для Каждого МакетГруппировки Из СхемаКомпоновкиДанных.МакетыГруппировок Цикл

    Если МакетГруппировки.ИмяГруппировки = "СтрокаНачисленийУдержаний" Тогда
    ИмяМакетаСтрокаНачислений = МакетГруппировки.Макет;
    КонецЕсли;
    Если МакетГруппировки.ИмяГруппировки = "ДоходыВНатуральнойФормеВыплата" Тогда
    ИмяМакетаДоходыВнатруальнойФорме = МакетГруппировки.Макет;
    КонецЕсли;

    Если МакетГруппировки.ИмяГруппировки = "ВычетСтрока" Тогда
    ИмяМакетаВычетСтрока = МакетГруппировки.Макет;
    КонецЕсли;

    КонецЦикла;

    СотрудникМесяц = Новый ПараметрКомпоновкиДанных("СотрудникМесяц");
    СотрудникМесяц1 = Новый ПараметрКомпоновкиДанных("СотрудникМесяц");
    СотрудникМесяц2 = Новый ПараметрКомпоновкиДанных("СотрудникМесяц");

    МакетСтрокиНачисленийУдержаний = СхемаКомпоновкиДанных.Макеты.Найти(ИмяМакетаСтрокаНачислений);
    МакетСтрокиДоходовВыплат = СхемаКомпоновкиДанных.Макеты.Найти(ИмяМакетаДоходыВнатруальнойФорме);
    МакетСтрокиВычеты = СхемаКомпоновкиДанных.Макеты.Найти(ИмяМакетаВычетСтрока);

    ЯчейкиСтрокиНачисленийУдержаний = МакетСтрокиНачисленийУдержаний.Макет[0].Ячейки;
    ЯчейкиСтрокиДоходовВыплат = МакетСтрокиДоходовВыплат.Макет[0].Ячейки;
    ЯчейкиСтрокиВычеты = МакетСтрокиВычеты.Макет[0].Ячейки;

    Для Сч = 0 По 16 Цикл
    ЯчейкиСтрокиНачисленийУдержаний[Сч].Оформление.Элементы.Найти("Details").Значение = СотрудникМесяц;
    ЯчейкиСтрокиДоходовВыплат[Сч].Оформление.Элементы.Найти("Details").Значение = СотрудникМесяц1;
    ЯчейкиСтрокиВычеты[Сч].Оформление.Элементы.Найти("Details").Значение = СотрудникМесяц2;
    КонецЦикла;

    УстановитьВыводДополнительнойИнформации(Настройки.Структура, ВыводитьДоходы, ВыводитьЗаймы);

    // создадим структуру с внешним набором данных
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("НачисленияУдержания", НачисленияУдержания);

    // получим макет компоновки данных
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

    // создадим и инициализируем процессор компоновки данных
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);

    // очистим результирующий табличный документ
    Результат.Очистить();

    Если ВыводВФормуОтчета Тогда
    ВыводЗаголовкаОтчета(Результат);
    КонецЕсли;

    // удалим отбор пустых строк начислений
    Настройки.Отбор.Элементы.Удалить(ГруппаОтбора);
    //Настройки.Отбор.Элементы.Удалить(ГруппаОтбораСальдо);

    Если ОтборПоФизЛицу <> Неопределено Тогда
    Настройки.Отбор.Элементы.Удалить(ОтборПоФизЛицу);
    КонецЕсли;

    // выведем отчет в табличный документ "Результат"
    ВывестиРезультатВТабличныйДокумент(ПроцессорКомпоновки, Результат, ВыводитьПоСтраницам);

    УправлениеОтчетами.УстановитьЗапросыСКДПоСоответсвию(СхемаКомпоновкиДанных.НаборыДанных, СоответствиеНаборовДанныхИЗапросов);

    Результат.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

    Если ВыводВФормуОтчета Тогда
    ТиповыеОтчеты.УправлениеОтображениемЗаголовкаТиповогоОтчета(ЭтотОбъект, Результат);
    КонецЕсли;

    Результат.Область(1, 1, 1, 1).РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
    КомпоновщикНастроек.ЗагрузитьНастройки(НастрокаПоУмолчанию);

    ВосстановитьНастройкуТабличногоДокумента(Результат);

    Возврат Результат;

    КонецФункции
```

В итоге табличный документ превращаю в PDF и забираю. Но в моей функции РЛ наполовину, тело отсутствует. В процессе компоновки если вычислить, внутри мало макетов, когда в типовой в разы больше... В прикрепленке полный вывод РЛ и мой. Куда копать подскажите плиз?
---
```1c
    // заполним ТЗ "НачисленияУдержания"
    ЗаполнитьВнешнийИсточникДанных(ПостроительОтчетов);
```

В макете есть набор данных объект, который по сути содержит большую часть инфы по начислению. У тебя этот набор не заполняется же. Ты просто передаешь пустую ТЗ, а в стандартном коде ТЗ заполняется наверно в построителе

вот здесь

```1c
    // установим параметры и текст запроса построителя запроса
    ПостроительОтчетов = Новый ПостроительОтчета;

    НастроитьПостроительЗапросов(ПостроительОтчетов, ДетализацияВыплат);
```
---
мне кажется не хватает отборов

```1c
    // установим отбор р/л без без начислений и удержаний
    ГруппаОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
    ГруппаОтбора.Использование = Истина;

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвижения")).Поле;
    ЭлементОтбора.ПравоеЗначение = "1";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияУд")).Поле;
    ЭлементОтбора.ПравоеЗначение = "2";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияВычет")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияКорректировка")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("ВидДвиженияСуммаУменьшенияОблагаемогоДохода")).Поле;
    ЭлементОтбора.ПравоеЗначение = "5";

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.Элементы.Найти("СальдоНачальное").Поле;
    ЭлементОтбора.ПравоеЗначение = 0;

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ЛевоеЗначение = Настройки.ДоступныеПоляОтбора.Элементы.Найти("СальдоКонечное").Поле;
    ЭлементОтбора.ПравоеЗначение = 0;
```
---
Да, этот отбор был в моей функции, убрал из-за того что ничего это не дало. Сейчас попробую еще раз, может чет неправильно сделал
---
Отбор установил, получил белый лист...
---
а это ?
 УстановитьВыводДополнительнойИнформации(Настройки.Структура, ВыводитьДоходы, ВыводитьЗаймы);
---
Ничего не меняется, эти два параметра я указал в параметрах где период указывал, отдельно как вы написали тоже пробовал...
---
```1c
    // заполним ТЗ "НачисленияУдержания"
    ЗаполнитьВнешнийИсточникДанных(ПостроительОтчетов);
```

В макете есть набор данных объект, который по сути содержит большую часть инфы по начислению. У тебя этот набор не заполняется же. Ты просто передаешь пустую ТЗ, а в стандартном коде ТЗ заполняется наверно в построителе

вот здесь

```1c
    // установим параметры и текст запроса построителя запроса
    ПостроительОтчетов = Новый ПостроительОтчета;

    НастроитьПостроительЗапросов(ПостроительОтчетов, ДетализацияВыплат);
```
---
Спасибо большое вам, пнули куда надо)) все получилось и никакие отборы не нужны))
---
Может есть пользовательская сохраненная настройка какая. Либо отчет одноименный в конфигурации. Либо все же отборы
---
Пользовательских настроек не вижу, все запускается стандартными настройками. Не понял про одноименному отчету? Отборы вот пока смотрю...
---
Может дело в вариантах отчета?