Добрый день коллеги, имеется отчет "расчеты с подотчетными лицами" но отбор по подотчетному лицу я могу добавить только одного сотрудника, как мне сделать что бы отбор был списком.
Спасибо.

```1c
    Процедура КнопкаСформироватьНажатие(Кнопка)

    ТабДок = ЭлементыФормы.ТабДок;
    ТабДок.Очистить();
    ТабДок.АвтоМасштаб = Истина;
    ТабДок.ТолькоПросмотр = Истина;

    Макет = ПолучитьМакет("Макет");
    Шапка = макет.ПолучитьОбласть("Шапка");
    СтрокаМОЛ = ?(НеПоказыватьДокументы,макет.ПолучитьОбласть("СтрокаМОЛБез"),макет.ПолучитьОбласть("СтрокаМОЛ"));
    СтрокаДокумент = Макет.ПолучитьОбласть("СтрокаДокумент");
    Итог = макет.ПолучитьОбласть("Итог");
    ТекстОрганизация = ";
    Если ЗначениеЗаполнено(Организация) Тогда
    ТекстОрганизация = Организация;
    КонецЕсли;
    ТекстПериод = ";
    Если (НачалоПериода>Дата(1,1,1)) И (КонецПериода>Дата(1,1,1)) Тогда
    ТекстПериод = " за период с "+Формат(НачалоПериода, "ДФ=dd.MM.yyyy")+" по "+Формат(КонецПериода, "ДФ=dd.MM.yyyy");
    КонецЕсли;
    Шапка.Параметры.Организация = ТекстОрганизация;
    Шапка.Параметры.Период = ТекстПериод;
    ТабДок.Вывести(Шапка);

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    | ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
    | ХозрасчетныйОстаткиИОбороты.Субконто1 КАК МОЛ,
    | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток) КАК НачальныйОстаток,
    | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК Приход,
    | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК Расход,
    | СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток) КАК КонечныйОстаток
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
    | &НачалоПериода,
    | &КонецПериода,
    | ,
    | ,
    | Счет.Родитель = &Счет71,
    | ,
    | ВЫБОР
    | КОГДА &ОтборОрганизация
    | ТОГДА Организация = &Организация
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ
    | И ВЫБОР
    | КОГДА &ОтборМОЛ
    | ТОГДА Субконто1 В ИЕРАРХИИ (&МОЛ)
    | ИНАЧЕ ИСТИНА
    | КОНЕЦ) КАК ХозрасчетныйОстаткиИОбороты";
    Если ТолькоОстатки Тогда
    Запрос.Текст = Запрос.Текст + "
    |ГДЕ
    | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток, 0) <> 0";
    КонецЕСли;
    Запрос.Текст = Запрос.Текст + "
    |
    |СГРУППИРОВАТЬ ПО
    | ХозрасчетныйОстаткиИОбороты.Организация,
    | ХозрасчетныйОстаткиИОбороты.Субконто1
    |
    |УПОРЯДОЧИТЬ ПО
    | ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование";
    Граница = Новый Граница(КонецДня(КонецПериода),ВидГраницы.Включая);
    Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",Граница);
    Запрос.УстановитьПараметр("ОтборОрганизация", ЗначениеЗаполнено(Организация));
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("ОтборМОЛ",ЗначениеЗаполнено(ПодотчетноеЛицо));
    Запрос.УстановитьПараметр("МОЛ", ПодотчетноеЛицо);
    Запрос.УстановитьПараметр("Счет71", ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами_);

    ВыборкаМОЛ = Запрос.Выполнить().Выбрать();
    НачальныйОстатокИтог=0;
    КонечныйОстатокИтог=0;
    ПриходИтог=0;
    РасходИтог=0;
    Пока ВыборкаМОЛ.Следующий() Цикл
    СтрокаМол.Параметры.Заполнить(ВыборкаМОЛ);
    Если НеПоказыватьДокументы Тогда
    Если (ВыборкаМОЛ.КонечныйОстаток < 0) И (ОтрицательноеКрасным) Тогда
    СтрокаМол.Области.КонОст1.ЦветФона = Новый Цвет(255,0,0);
    Иначе
    СтрокаМол.Области.КонОст1.ЦветФона = Новый Цвет(255,255,255);
    КонецЕсли;
    Иначе
    Если (ВыборкаМОЛ.КонечныйОстаток < 0) И (ОтрицательноеКрасным) Тогда
    СтрокаМол.Области.КонОст.ЦветФона = Новый Цвет(255,0,0);
    Иначе
    СтрокаМол.Области.КонОст.ЦветФона = Новый Цвет(255,255,255);
    КонецЕсли;
    КонецЕсли;

    ТабДок.Вывести(СтрокаМОЛ);
    Если НЕ НеПоказыватьДокументы Тогда
    ЗапросДокумент = Новый Запрос;
    ЗапросДокумент.Текст = "ВЫБРАТЬ
    | ХозрасчетныйОбороты.Регистратор КАК Документ,
    | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
    | СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | Авто,
    | Счет.Родитель = &Счет71,
    | ,
    | Субконто1 = &МОЛ
    | И Организация = &Организация,
    | ,
    | ) КАК ХозрасчетныйОбороты
    |
    |СГРУППИРОВАТЬ ПО
    | ХозрасчетныйОбороты.Регистратор
    |
    |УПОРЯДОЧИТЬ ПО
    | ХозрасчетныйОбороты.Регистратор.Дата";
    ЗапросДокумент.УстановитьПараметр("НачалоПериода",НачалоПериода);
    ЗапросДокумент.УстановитьПараметр("КонецПериода", Граница);
    ЗапросДокумент.УстановитьПараметр("МОЛ",ВыборкаМОЛ.МОЛ);
    ЗапросДокумент.УстановитьПараметр("Организация",ВыборкаМОЛ.Организация);
    ЗапросДокумент.УстановитьПараметр("Счет71", ПланыСчетов.Хозрасчетный.РасчетыСПодотчетнымиЛицами_);
    ВыборкаДокумент = ЗапросДокумент.Выполнить().Выбрать();

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

    Процедура КнопкаНастройкаПериодаНажатие(Элемент)
    ТиповыеОтчеты.НастроитьПериод(НастройкаПериода, НачалоПериода, КонецПериода);
    КонецПроцедуры

    Процедура НачалоПериодаПриИзменении(Элемент)

    КонецПроцедуры

    Процедура ПриОткрытии()
    НачалоПериода = НачалоМесяца(ТекущаяДата());
    КонецПериода = ТекущаяДата();
    КонецПроцедуры
```
---
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);

отчет - готов
---
Субконто1 В (&СписокМОЛ)
СписокМол = Новый СписокЗначений;
СписокМол.Добавить(МОЛ1);
СписокМол.Добавить(МОЛ2);
...
Запрос.УстановитьПараметр("СписокМОЛ", СписокМол);
---
а где мне это добавить?
---
у вас в коде два запроса, и отбор в обоих запросах идет по одному Сотруднику. Значит в двух запросах и менять.
У вас на форме отчета как выгяддит отбор по сотруднику?
---
Так проще отчет поправить чем объяснить)
---
буду очень благодарен
---
сейчас поправлю ваш отчет.
---
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);

отчет - готов
---
спасибо большое! а можно к вам в личку обратится еще с одним вопросом?
---
смотря с каким ))
---
по этому же отчету, хочу вывести на макет данные из документов, в документах когда выдаем аванс и получаем (Платежное поручение ,рко, пко в этих документах) там реквезит есть статья движения денежных средств, а в документе авансовый отчет там реквезит статья затрат
---
С чем именно трудности ?)
---
честно сказать, я не совсем понимаю как это реализовать, пробую добавить в запросе ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС а он мне выводит сотрудника на макет

Запрос;

```1c
    ЗапросДокумент.Текст = "ВЫБРАТЬ
    | ХозрасчетныйОбороты.Регистратор КАК Документ,
    | СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
    | СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход,
    | ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | Авто,
    | Счет.Родитель = &Счет71,
    | ,
    | Субконто1 = &МОЛ
    | И Организация = &Организация,
    | ,
    | ) КАК ХозрасчетныйОбороты
    |
    |СГРУППИРОВАТЬ ПО
    | ХозрасчетныйОбороты.Регистратор,
    | ХозрасчетныйОбороты.Субконто1.Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    | ХозрасчетныйОбороты.Регистратор.Дата";
```
---
посмотри в запроснике для начала )

(16)
---
| ХозрасчетныйОбороты.Регистратор КАК Документ,
| СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
| СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход,
| ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС
|ИЗ

И здесь скорее не ХозрасчетныйОбороты.Субконто1.Ссылка
а ХозрасчетныйОбороты.Регистратор.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС
---
а в первом запросе у меня ХозрасчетныйОстаткиИОбороты.Субконто1 КАК МОЛ, может из за этого он выводит сотрудника?
---
посмотри сначала 1 запрос потом второй и что тебе выводит
---
(20)
Вот эту обработку открой в режиме предприятия, вставь свой текст запроса и параметры, и посмотри что у тебя выводит для начала
---
в макет хочу вывети статьи ддс и статьи затрат
---
в запроснике посмотрел что у тебя запрос выдает ??
---
в запроснике он у меня тоже выдает сотрудника во втором запросе, а в первом выдает ошибку {ВнешняяОбработка.Запросник.Форма.Форма.Форма(778)}: Ошибка при вызове метода контекста (Выполнить): {(2, 3)}: Поле не входит в группу "ХозрасчетныйОстаткиИОбороты.Организация"
<<?>>ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
---
текст запроса исправь, вместо ХозрасчетныйОбороты.Субконто1.Ссылка напиши ХозрасчетныйОбороты.Регистратор.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС
---
исправил текст пишет <пустая ссылка статьи движения денежных средств>
---
открой регистратор и посмотри есть ли там статья ддс
---
мне кажется что нет, а из документа это можно вытащить?
---
это и есть документ ) скорее всего, это в табличной части документа (РасшифровкаПлатежа, СтатьяДвиженияДенежныхСредств)
---
статьиДДС находится в табличной части
---
хотя можно при переборе в цикле ! )

Вот так:

```1c
    Пока ВыборкаДокумент.Следующий() Цикл
    СтрокаДокумент.Параметры.Заполнить(ВыборкаДокумент);
    Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
    СтрокаДокумент.Параметры.СтатьяДДС = ВыборкаДокумент.Документ.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств;
    Конецесли;
    СтрокаДокумент.Параметры.Номер = Номер;
    ТабДок.Вывести(СтрокаДокумент);
    Номер = Номер +1;
    КонецЦикла;
```
---
{ВнешнийОтчет.Тест1.Форма.ФормаОтчета.Форма(134,38)}: Процедура или функция с указанным именем не определена (ТиЗнч) что это может значить?
---
ТипЗнч()
:)
---
Вы гений, огромное спасибо!!!
---
все с опытом придет ) спасибо )
---
а в документах авансовый отчет там нету статьи ДДС, а он мне цепляет их не понятно от куда... я так же сделал по аналогии для документа авансовый отчет, он так же для других документов цепляет
---
от туда он вообще ничего не цепляет ))
Данные тянутся либо с ПКО либо с РКО, если другой документ - пустое поле
---
он почему то тянет для авансового отчета
---
может это из за моего макета так происходит?
---
да нет, макет правильный...
посмотри в отладчике ВыборкаДокумент.Документ - что тут за документы тянутся и статью откуда берет
---
не понятно что-то, смотрю локальные переменные нету там не чего
---
я понял сейчас одно, если я делаю выборку из одного типа документа (например приходный КО) то он начинает по этому документу подставлять это же значение в следующих документах
---
скинь еще раз обработку готовую
---
Сейчас сделал так, он не задваивает, а пишет где их не должно быть "НЕТ" пока такой выход нашел, но я так же добавил для статей затрат из авансовых отчетов он мне ошибку выдает при формировании "ИНДЕКС НАХОДИТСЯ ЗА ГРАНИЦАМИ МАССИВА"

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