|
Внешние печатные формы 🠗 (Волшебник 06.03.2024 21:01) | ☑ | ||
---|---|---|---|---|
0
Panda_17
naïve
06.03.24
✎
12:29
|
Добрый день! В печатной форме выводятся работники. Печатная форма выходить на печать столько раз, сколько указано работников в документе. Если 3 работника, то 3 раза, если один работник, то 1 раз. Подскажите, пожалуйста, как можно сделать, чтобы в независимости от количества работников, указанных в документе, пф выводилась 1 один раз?
|
|||
1
Волшебник
06.03.24
✎
12:31
|
Если это расчётные листки, то так и должно быть.
|
|||
2
Panda_17
naïve
06.03.24
✎
12:33
|
(1) это не расчетные листки. ПФ нужна для документа заказ на ремонт
|
|||
3
Волшебник
06.03.24
✎
12:38
|
(2) Если в той ПФ выводится перечень ремонтных операций для каждого работника, то так и должно быть.
|
|||
4
Panda_17
naïve
06.03.24
✎
12:46
|
(3) В одном заказе указано несколько работников, которые должны сделать заказ, например 3. ПФ должна выводиться на печать в одном экземпляре с необходимыми данными, а сейчас выходит 3 раза т.к. в документе указано 3 работника
|
|||
5
Волшебник
06.03.24
✎
12:48
|
(4) Вы меня не убедите, что так быть не должно. Если так кем-то запрограммировано, значит так и должно быть. Попробуйте изменить постановку задачи программисту, чтобы он запрограммировал по-другому.
|
|||
6
Волшебник
06.03.24
✎
12:49
|
(4) Не должна.
|
|||
7
Gucci76
06.03.24
✎
12:53
|
ВывестиГоризонтальныйРазделительСтраниц() - нет?
|
|||
8
yurikmellon2
06.03.24
✎
13:25
|
(0) выкладывай уже свою ВПФ. В среду у телепатов выходной. Надо смотреть какой алгоритм вывода на печать там.
|
|||
9
Panda_17
naïve
06.03.24
✎
13:45
|
(8) Функция СформироватьПечатнуюФормуЗаказНаРемонтВПФ(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаРемонтВПФ"; МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц); Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Текст = ТекстЗапросаПечати(); Запрос.УстановитьПараметр("МассивДокументов", МассивОбъектов); УстановитьПривилегированныйРежим(Истина); Попытка Выборка = Запрос.Выполнить().Выбрать(); Исключение ЗаписьЖурналаРегистрации(ОписаниеОшибки()); КонецПопытки; УстановитьПривилегированныйРежим(Ложь); ПервыйДокумент = Истина; Пока Выборка.Следующий() Цикл НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; Макет = ПолучитьМакет ("ЗаказНаРемонт"); Макет.КодЯзыка = Метаданные.Языки.Русский.КодЯзыка; Если ПервыйДокумент Тогда ПервыйДокумент = Ложь; Иначе ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; Рез = Запрос.Выполнить().Выгрузить(); Производитель = ""; Для Каждого СтрРез Из Рез Цикл Производитель = Производитель + Строка(СтрРез.Работник)+ Символы.ПС; КонецЦикла; ОбластьШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента"); ОбластьШапкаДокумента.Параметры.Заполнить(Выборка); ОбластьШапкаДокумента.Параметры.Дата = формат(Выборка.Дата,"ДФ=dd.MM.yyyy"); ТабличныйДокумент.Вывести(ОбластьШапкаДокумента); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьШапкаТаблицы.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы); ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы"); ОбластьСтрокаТаблицы.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицы); ОбластьШапкаТаблицыИсполнители = Макет.ПолучитьОбласть("ШапкаТаблицыИсполнители"); ОбластьШапкаТаблицыИсполнители.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицыИсполнители); ОбластьСтрокаТаблицыИсполнители = Макет.ПолучитьОбласть("СтрокаТаблицыИсполнители"); ОбластьСтрокаТаблицыИсполнители.Параметры.Заполнить(Выборка); ОбластьСтрокаТаблицыИсполнители.Параметры.Исполнитель = Производитель; ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицыИсполнители); ОбластьШапкаТаблицыРабот = Макет.ПолучитьОбласть("ШапкаТаблицыРабот"); ОбластьШапкаТаблицыРабот.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьШапкаТаблицыРабот); ОбластьСтрокаТаблицыРабот = Макет.ПолучитьОбласть("СтрокаТаблицыРабот"); ОбластьСтрокаТаблицыРабот.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьСтрокаТаблицыРабот); ОбластьПодвалДокумента = Макет.ПолучитьОбласть("ПодвалДокумента"); ОбластьПодвалДокумента.Параметры.Заполнить(Выборка); ТабличныйДокумент.Вывести(ОбластьПодвалДокумента); УправлениеПечатью.ЗадатьОбластьПечатиДокумента( ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Выборка.Ссылка); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции Функция ТекстЗапросаПечати() ТекстЗапроса= "ВЫБРАТЬ | ЗаказНаРемонт.Ссылка КАК Ссылка, | ЗаказНаРемонт.Номер КАК Номер, | ЗаказНаРемонт.Дата КАК Дата, | ЗаказНаРемонт.Организация КАК Организация, | ЗаказНаРемонт.Подразделение КАК ПодразделениеОрганизации, | ЗаказНаРемонт.ДатаНачала КАК ДатаНачала, | ЗаказНаРемонт.ДатаЗавершения КАК ДатаОкончания, | ЗаказНаРемонт.Ответственный.ФизическоеЛицо КАК Ответственный, | ЗаказНаРемонт.Автор КАК Допускающий, | ЗаказНаРемонт.НаименованиеРабот КАК Работа, | ЗаказНаРемонт.ОбъектЭксплуатации КАК ОбъектыРемонта, | ВложенныйЗапрос.Работник КАК Работник |ИЗ | Документ.ЗаказНаРемонт КАК ЗаказНаРемонт | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаказНаРемонтИсполнители.Ссылка КАК Ссылка, | ЗаказНаРемонтИсполнители.Сотрудник КАК Работник | ИЗ | Документ.ЗаказНаРемонт.Исполнители КАК ЗаказНаРемонтИсполнители | | СГРУППИРОВАТЬ ПО | ЗаказНаРемонтИсполнители.Сотрудник, | ЗаказНаРемонтИсполнители.Ссылка) КАК ВложенныйЗапрос | ПО ЗаказНаРемонт.Ссылка = ВложенныйЗапрос.Ссылка |ГДЕ | ЗаказНаРемонт.Ссылка В(&МассивДокументов)"; Возврат ТекстЗапроса; КонецФункции |
|||
10
AlexeyKh
06.03.24
✎
13:45
|
как вариант собрать работников в тадицу
получиться одна ПФ с таблицей Работники, где будет разное количество строк с работниками. |
|||
11
Волшебник
06.03.24
✎
13:52
|
Следите за руками:
Выборка = Запрос.Выполнить().Выбрать(); ... Пока Выборка.Следующий() Цикл Рез = Запрос.Выполнить().Выгрузить(); Запрос выполнен (в нём конечно всё задублировано), потом по нему открыта выборка и внутри выборки запрос выполняется повторно по каждой строке результата! |
|||
12
Волшебник
06.03.24
✎
13:52
|
Девочка, отойди от компьютера. Позовите программиста.
|
|||
13
Panda_17
naïve
06.03.24
✎
14:03
|
(12) Спасибо за помощь!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |