Добавить в отчет отбор по условию "ВСписке"
Добрый день коллеги, имеется отчет "расчеты с подотчетными лицами" но отбор по подотчетному лицу я могу добавить только одного сотрудника, как мне сделать что бы отбор был списком.
Спасибо.
Спасибо.
Процедура КнопкаСформироватьНажатие(Кнопка)
ТабДок = ЭлементыФормы.ТабДок;
ТабДок.Очистить();
ТабДок.АвтоМасштаб = Истина;
ТабДок.ТолькоПросмотр = Истина;
Макет = ПолучитьМакет("Макет");
Шапка = макет.ПолучитьОбласть("Шапка");
СтрокаМОЛ = ?(НеПоказыватьДокументы,макет.ПолучитьОбласть("СтрокаМОЛБез"),макет.ПолучитьОбласть("СтрокаМОЛ"));
СтрокаДокумент = Макет.ПолучитьОбласть("СтрокаДокумент");
Итог = макет.ПолучитьОбласть("Итог");
ТекстОрганизация = "";
Если ЗначениеЗаполнено(Организация) Тогда
ТекстОрганизация = Организация;
КонецЕсли;
ТекстПериод = "";
Если (НачалоПериода>Дата(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;
КонецЦикла;
КонецЕсли;
НачальныйОстатокИтог=НачальныйОстатокИтог+ВыборкаМОЛ.НачальныйОстаток;
КонечныйОстатокИтог=КонечныйОстатокИтог+ВыборкаМОЛ.КонечныйОстаток;
ПриходИтог=ПриходИтог+ВыборкаМОЛ.Приход;
РасходИтог=РасходИтог+ВыборкаМОЛ.Расход;
КонецЦикла;
Итог.Параметры.НачальныйОстаток = НачальныйОстатокИтог;
Итог.Параметры.КонечныйОстаток = КонечныйОстатокИтог;
Итог.Параметры.Приход = ПриходИтог;
Итог.Параметры.Расход = РасходИтог;
ТабДок.Вывести(Итог);
КонецПроцедуры
Процедура КнопкаНастройкаПериодаНажатие(Элемент)
ТиповыеОтчеты.НастроитьПериод(НастройкаПериода, НачалоПериода, КонецПериода);
КонецПроцедуры
Процедура НачалоПериодаПриИзменении(Элемент)
КонецПроцедуры
Процедура ПриОткрытии()
НачалоПериода = НачалоМесяца(ТекущаяДата());
КонецПериода = ТекущаяДата();
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Расширение управляемой формы для отчета. Несколько действий с параметром "Отбор".
- Ограничение на просмотр счетов в стандартных отчетах
- Отбор/фильтр в отчетах/СКД/обработках 1C: БП, УТ, ERP, Кронос: WMS по файлу Excel, текстовому файлу или списку текстовых строк (номер документа, артикул, ИНН, QR-код, штрих-код, наименование)
- Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов
- Форма выбора с отбором. Пять вариантов настройки отбора
Найденные решения
(6)
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);
отчет - готов
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);
отчет - готов
Прикрепленные файлы:
raschety_s_podotchetnikami.erf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6)
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);
отчет - готов
1. убираем реквизит - подотчетное лицо
2. создаем реквизитформы - ПодотчетноеЛицо ( с типом - список значений) (тип списка значений - справочник. физлица);
отчет - готов
Прикрепленные файлы:
raschety_s_podotchetnikami.erf
(11) по этому же отчету, хочу вывести на макет данные из документов, в документах когда выдаем аванс и получаем (Платежное поручение ,рко, пко в этих документах) там реквезит есть статья движения денежных средств, а в документе авансовый отчет там реквезит статья затрат
(15) честно сказать, я не совсем понимаю как это реализовать, пробую добавить в запросе ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС а он мне выводит сотрудника на макет
Запрос;
Запрос;
ЗапросДокумент.Текст = "ВЫБРАТЬ
| ХозрасчетныйОбороты.Регистратор КАК Документ,
| СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
| СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход,
| ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| &НачалоПериода,
| &КонецПериода,
| Авто,
| Счет.Родитель = &Счет71,
| ,
| Субконто1 = &МОЛ
| И Организация = &Организация,
| ,
| ) КАК ХозрасчетныйОбороты
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОбороты.Регистратор,
| ХозрасчетныйОбороты.Субконто1.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ХозрасчетныйОбороты.Регистратор.Дата";
Показать
(16)
И здесь скорее не ХозрасчетныйОбороты.Субконто1.Ссылка
а ХозрасчетныйОбороты.Регистратор.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС
| ХозрасчетныйОбороты.Регистратор КАК Документ,
| СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
| СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход,
| ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС
|ИЗ
| СУММА(ХозрасчетныйОбороты.СуммаОборотДт) КАК Приход,
| СУММА(ХозрасчетныйОбороты.СуммаОборотКт) КАК Расход,
| ХозрасчетныйОбороты.Субконто1.Ссылка КАК СтатьяДДС
|ИЗ
И здесь скорее не ХозрасчетныйОбороты.Субконто1.Ссылка
а ХозрасчетныйОбороты.Регистратор.СтатьяДвиженияДенежныхСредств КАК СтатьяДДС
(21) в запроснике он у меня тоже выдает сотрудника во втором запросе, а в первом выдает ошибку {ВнешняяОбработка.Запросник.Форма.Форма.Форма(778)}: Ошибка при вызове метода контекста (Выполнить): {(2, 3)}: Поле не входит в группу "ХозрасчетныйОстаткиИОбороты.Организация"
<<?>>ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
<<?>>ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
(31) хотя можно при переборе в цикле ! )
Вот так:
Вот так:
Пока ВыборкаДокумент.Следующий() Цикл
СтрокаДокумент.Параметры.Заполнить(ВыборкаДокумент);
Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер") ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.РасходныйКассовыйОрдер") Тогда
СтрокаДокумент.Параметры.СтатьяДДС = ВыборкаДокумент.Документ.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств;
Конецесли;
СтрокаДокумент.Параметры.Номер = Номер;
ТабДок.Вывести(СтрокаДокумент);
Номер = Номер +1;
КонецЦикла;
Показать
(44) Сейчас сделал так, он не задваивает, а пишет где их не должно быть "НЕТ" пока такой выход нашел, но я так же добавил для статей затрат из авансовых отчетов он мне ошибку выдает при формировании "ИНДЕКС НАХОДИТСЯ ЗА ГРАНИЦАМИ МАССИВА"
Пока ВыборкаДокумент.Следующий() Цикл
СтрокаДокумент.Параметры.Заполнить(ВыборкаДокумент);
Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер")ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.РасходныйКассовыйОрдер")ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
СтрокаДокумент.Параметры.СтатьяДДС = ВыборкаДокумент.Документ.РасшифровкаПлатежа[0].СтатьяДвиженияДенежныхСредств;
Конецесли;
Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.АвансовыйОтчет") Тогда
СтрокаДокумент.Параметры.СтатьяДДС = Ложь
//СтрокаДокумент.Параметры.СтатьяЗатрат = ВыборкаДокумент.Документ.Прочее[0].СтатьяЗатрат;
КонецЕсли;
Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.АвансовыйОтчет") Тогда
СтрокаДокумент.Параметры.СтатьяЗатрат = ВыборкаДокумент.Документ.Прочее[0].СтатьяЗатрат;
КонецЕсли;
Если ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПриходныйКассовыйОрдер")ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.РасходныйКассовыйОрдер")ИЛИ ТипЗнч(ВыборкаДокумент.Документ) = Тип("ДокументСсылка.ПлатежноеПоручениеИсходящее") Тогда
СтрокаДокумент.Параметры.СтатьяЗатрат = Ложь
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот