Комментарий в печатной форме

1. user1175782 19.11.24 20:42 Сейчас в теме
Добрый день! Программировать только учусь... много не знаю. Встала задача в УНФ.Документ.СдельныйНаряд.Печатная форма - Выводить комментарий в печатной форме. Решил сделать дополнительную обработку, т.к. база типовая. Обработку сделал, но комментарий вынести на печатную форму не могу.

Функция ПечатнаяФорма(ОписаниеПечатнойФормы, МассивОбъектов, ОбъектыПечати) Экспорт
	
	ТабличныйДокумент = ОписаниеПечатнойФормы.ТабличныйДокумент;
	
	ПервыйДокумент = Истина;
	
	Для каждого ТекущийДокумент Из МассивОбъектов Цикл
		
		Если НЕ ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ПервыйДокумент = Ложь;
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		Запрос = Новый Запрос();
		
		Запрос.УстановитьПараметр("Организация", Константы.УчетПоКомпании.Компания(
			ТекущийДокумент.Организация));
		Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
		
		Если ТипЗнч(ТекущийДокумент)=Тип("ДокументСсылка.СдельныйНаряд") Тогда
			
			Запрос.Текст = 
			"ВЫБРАТЬ
			|	СдельныйНаряд.Ссылка КАК Ссылка,
			|	СдельныйНаряд.ВерсияДанных КАК ВерсияДанных,
			|	СдельныйНаряд.ПометкаУдаления КАК ПометкаУдаления,
			|	СдельныйНаряд.Номер КАК Номер,
			|	СдельныйНаряд.Дата КАК ДатаДокумента,
			|	СдельныйНаряд.Организация.Префикс КАК Префикс,
			|	СдельныйНаряд.Проведен КАК Проведен,
			|	СдельныйНаряд.Организация КАК Организация,
			|	СдельныйНаряд.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
			|	СдельныйНаряд.Исполнитель КАК Исполнитель,
			|	СдельныйНаряд.Комментарий КАК Комментарий,
			|	СдельныйНаряд.ВалютаДокумента КАК ВалютаДокумента,
			|	СдельныйНаряд.СуммаДокумента КАК СуммаДокумента,
			|	СдельныйНаряд.Автор КАК Автор,
			|	СдельныйНаряд.Закрыт КАК Закрыт,
			|	СдельныйНаряд.ДатаЗакрытия КАК ДатаЗакрытия,
			|	СдельныйНаряд.ПоложениеИсполнителя КАК ПоложениеИсполнителя
			|ИЗ
			|	Документ.СдельныйНаряд КАК СдельныйНаряд
			|ГДЕ
			|	СдельныйНаряд.Ссылка = &ТекущийДокумент
			|;
			|
			|////////////////////////////////////////////////////////////­////////////////////
			|ВЫБРАТЬ
			|	СдельныйНарядОперации.Ссылка КАК Ссылка,
			|	СдельныйНарядОперации.НомерСтроки КАК НомерСтроки,
			|	СдельныйНарядОперации.Период КАК День,
			|	СдельныйНарядОперации.ЗаказПокупателя КАК ЗаказПокупателя,
			|	СдельныйНарядОперации.Исполнитель КАК Исполнитель,
			|	СдельныйНарядОперации.Номенклатура КАК Номенклатура,
			|	СдельныйНарядОперации.Номенклатура.Код КАК Код,
			|	СдельныйНарядОперации.Номенклатура.Артикул КАК Артикул,
			|	СдельныйНарядОперации.Номенклатура.Штрихкод КАК Штрихкод,
			|	СдельныйНарядОперации.Характеристика.НаименованиеДляПечати КАК Характеристика,
			|	СдельныйНарядОперации.Операция КАК Операция,
			|	СдельныйНарядОперации.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
			|	СдельныйНарядОперации.КоличествоПлан КАК КоличествоПлан,
			|	СдельныйНарядОперации.КоличествоФакт КАК КоличествоФакт,
			|	СдельныйНарядОперации.НормаВремени КАК НормаВремени,
			|	СдельныйНарядОперации.Расценка КАК Расценка,
			|	СдельныйНарядОперации.Нормочасы КАК Нормочасы,
			|	СдельныйНарядОперации.Стоимость КАК Стоимость,
			|	СдельныйНарядОперации.Партия КАК Партия,
			|	СдельныйНарядОперации.Спецификация КАК Спецификация
			|ИЗ
			|	Документ.СдельныйНаряд.Операции КАК СдельныйНарядОперации
			|ГДЕ
			|	СдельныйНарядОперации.Ссылка = &ТекущийДокумент
			|
			|УПОРЯДОЧИТЬ ПО
			|	СдельныйНарядОперации.Период
			|ИТОГИ
			|	СУММА(КоличествоПлан),
			|	СУММА(КоличествоФакт),
			|	СУММА(Нормочасы),
			|	СУММА(Стоимость)
			|ПО
			|	День";
			
		ИначеЕсли ТипЗнч(ТекущийДокумент)=Тип("ДокументСсылка.ЗаказНаПроизводство") Тогда
			
			Запрос.Текст = 
			"ВЫБРАТЬ
			|	ЗаказНаПроизводство.Ссылка КАК Ссылка,
			|	ЗаказНаПроизводство.ВерсияДанных КАК ВерсияДанных,
			|	ЗаказНаПроизводство.ПометкаУдаления КАК ПометкаУдаления,
			|	ЗаказНаПроизводство.Номер КАК Номер,
			|	ЗаказНаПроизводство.Дата КАК ДатаДокумента,
			|	ЗаказНаПроизводство.Организация.Префикс КАК Префикс,
			|	ЗаказНаПроизводство.Проведен КАК Проведен,
			|	ЗаказНаПроизводство.Организация КАК Организация,
			|	ЗаказНаПроизводство.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
			|	ЗаказНаПроизводство.Исполнитель КАК Исполнитель,
			|	ЗаказНаПроизводство.Комментарий КАК Комментарий,
			|	ВалютаУчета.Значение КАК ВалютаДокумента,
			|	0 КАК СуммаДокумента,
			|	ЗаказНаПроизводство.Автор КАК Автор,
			|	ЛОЖЬ КАК Закрыт,
			|	ДАТАВРЕМЯ(1, 1, 1) КАК ДатаЗакрытия,
			|	ЗаказНаПроизводство.ПоложениеИсполнителя КАК ПоложениеИсполнителя
			|ИЗ
			|	Документ.ЗаказНаПроизводство КАК ЗаказНаПроизводство,
			|	Константа.ВалютаУчета КАК ВалютаУчета
			|ГДЕ
			|	ЗаказНаПроизводство.Ссылка = &ТекущийДокумент
			|	И ЗаказНаПроизводство.ЗапланированыОперации
			|;
			|
			|////////////////////////////////////////////////////////////­////////////////////
			|ВЫБРАТЬ
			|	ЗаказНаПроизводствоОперации.Ссылка КАК Ссылка,
			|	ЗаказНаПроизводствоОперации.НомерСтроки КАК НомерСтроки,
			|	ЗаказНаПроизводствоОперации.Ссылка.Старт КАК День,
			|	ЗаказНаПроизводствоОперации.ЗаказПокупателя КАК ЗаказПокупателя,
			|	ЗаказНаПроизводствоОперации.Исполнитель КАК Исполнитель,
			|	ЗаказНаПроизводствоПродукция.Номенклатура КАК Номенклатура,
			|	ЗаказНаПроизводствоПродукция.Номенклатура.Код КАК Код,
			|	ЗаказНаПроизводствоПродукция.Номенклатура.Артикул КАК Артикул,
			|	ЗаказНаПроизводствоПродукция.Номенклатура.Штрихкод КАК Штрихкод,
			|	ЗаказНаПроизводствоПродукция.Характеристика КАК Характеристика,
			|	ЗаказНаПроизводствоОперации.Операция КАК Операция,
			|	ЗаказНаПроизводствоОперации.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
			|	ЗаказНаПроизводствоОперации.КоличествоПлан КАК КоличествоПлан,
			|	0 КАК КоличествоФакт,
			|	ЗаказНаПроизводствоОперации.НормаВремени КАК НормаВремени,
			|	0 КАК Расценка,
			|	ЗаказНаПроизводствоОперации.Нормочасы КАК Нормочасы,
			|	0 КАК Стоимость,
			|	ЗНАЧЕНИЕ(Справочник.ПартииНоменклатуры.ПустаяСсылка) КАК Партия,
			|	ЗаказНаПроизводствоПродукция.Спецификация КАК Спецификация
			|ИЗ
			|	Документ.ЗаказНаПроизводство.Операции КАК ЗаказНаПроизводствоОперации
			|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
			|		ПО ЗаказНаПроизводствоОперации.Ссылка = ЗаказНаПроизводствоПродукция.Ссылка
			|			И ЗаказНаПроизводствоОперации.КлючСвязиПродукция = ЗаказНаПроизводствоПродукция.КлючСвязи
			|ГДЕ
			|	ЗаказНаПроизводствоОперации.Ссылка = &ТекущийДокумент
			|	И НЕ ЗаказНаПроизводствоПродукция.КлючСвязи ЕСТЬ NULL
			|
			|УПОРЯДОЧИТЬ ПО
			|	НомерСтроки
			|ИТОГИ
			|	СУММА(КоличествоПлан),
			|	СУММА(КоличествоФакт),
			|	СУММА(Нормочасы),
			|	СУММА(Стоимость)
			|ПО
			|	День";
			
		Иначе
			
			Продолжить;
			
		КонецЕсли; 
		
		РезультатЗапроса = Запрос.ВыполнитьПакет();
		Шапка = РезультатЗапроса[0].Выбрать();
		Если НЕ Шапка.Следующий() Тогда
			Продолжить;
		КонецЕсли; 
		
		ВыборкаДни = РезультатЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		
		Макет = ПолучитьМакет ("ПФ_MXL_СдельныйНарядКомментарий");
		
		ИмяОбластиОснова = ?(Шапка.ПоложениеИсполнителя = Перечисления.ПоложениеРеквизитаНаФорме.ВТабличнойЧасти,
			"ОсноваИсполнитель", "Основа");
		ОблШапка = Макет.ПолучитьОбласть("Шапка|" + ИмяОбластиОснова);
		ОблШапкаОкончание = Макет.ПолучитьОбласть("Шапка|Данные");
		ОблШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы|" + ИмяОбластиОснова);
		ОблШапкаТаблицыОкончание = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
		ОблДень = Макет.ПолучитьОбласть("День|" + ИмяОбластиОснова);
		ОблДеньОкончание = Макет.ПолучитьОбласть("День|Данные");
		ОблДетали = Макет.ПолучитьОбласть("Детали|" + ИмяОбластиОснова);
		ОблДеталиОкончание = Макет.ПолучитьОбласть("Детали|Данные");
		ОблПодвал = Макет.ПолучитьОбласть("Подвал|" + ИмяОбластиОснова);   
		ОблПодвалОкончание = Макет.ПолучитьОбласть("Подвал|Данные"); 
				
		ОблШапка.Параметры.Заполнить(Шапка);
		НомерДокумента = ПечатьДокументовУНФ.ПолучитьНомерНаПечатьСУчетомДатыДокумента(Шапка.ДатаДокумента,
			Шапка.Номер, Шапка.Префикс);
		ДатаДокумента = Формат(Шапка.ДатаДокумента, "ДЛФ=DD");
		Если ТипЗнч(ТекущийДокумент) = Тип("ДокументСсылка.ЗаказНаПроизводство") Тогда
			ШаблонЗаголовка = НСтр("ru = 'Сдельный наряд по заказу на производство № %1 от %2'");
		Иначе
			ШаблонЗаголовка = НСтр("ru = 'Сдельный наряд № %1 от %2'");
		КонецЕсли;
		ДанныеПечати = Новый Структура;
		ДанныеПечати.Вставить("ЗаголовокДокумента", СтрШаблон(ШаблонЗаголовка, НомерДокумента, ДатаДокумента));
		ОблШапка.Параметры.Заполнить(ДанныеПечати);
		
		ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОблШапка,
			ТекущийДокумент);
		
		ТабличныйДокумент.Вывести(ОблШапка);
		ОблШапкаОкончание.Параметры.Заполнить(Шапка);
		ТабличныйДокумент.Присоединить(ОблШапкаОкончание);
		
		ТабличныйДокумент.Вывести(ОблШапкаТаблицы);
		
		ДанныеПечати = Новый Структура;
		ДанныеПечати.Вставить("Стоимость", СтрШаблон(НСтр("ru = 'Стоимость
        	|(%1)'"), Шапка.ВалютаДокумента));
		ОблШапкаТаблицыОкончание.Параметры.Заполнить(ДанныеПечати);
		ТабличныйДокумент.Присоединить(ОблШапкаТаблицыОкончание);
		
		НПП = 0;
		
		Пока ВыборкаДни.Следующий() Цикл
			
			ОблДень.Параметры.Заполнить(ВыборкаДни);
			ТабличныйДокумент.Вывести(ОблДень);
			ОблДеньОкончание.Параметры.Заполнить(ВыборкаДни);
			ТабличныйДокумент.Присоединить(ОблДеньОкончание);
			
			ВыборкаОпераций = ВыборкаДни.Выбрать();
			Пока ВыборкаОпераций.Следующий() Цикл
				
				НПП = НПП + 1;
				
				ДанныеПечати = Новый Структура;
				ДанныеПечати.Вставить("НПП", НПП);
				ОблДетали.Параметры.Заполнить(ВыборкаОпераций);
				ОблДетали.Параметры.Заполнить(ДанныеПечати);
				ТабличныйДокумент.Вывести(ОблДетали);
				ОблДеталиОкончание.Параметры.Заполнить(ВыборкаОпераций);
				ТабличныйДокумент.Присоединить(ОблДеталиОкончание);
				
			КонецЦикла;
			
		КонецЦикла;
		
		ТабличныйДокумент.Вывести(ОблПодвал);
		
		ДанныеПечати = Новый Структура;
		ДанныеПечати.Вставить("Стоимость", Шапка.СуммаДокумента);
		ОблПодвалОкончание.Параметры.Заполнить(ДанныеПечати);
		ТабличныйДокумент.Присоединить(ОблПодвалОкончание);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
			Шапка.Ссылка);
		
	КонецЦикла;
	
	Возврат ТабличныйДокумент;
	
КонецФункции
Показать


Помогите пожалуйста с решением, хочется разобраться в вопросе. Спасибо!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Vlan 36 21.11.24 07:18 Сейчас в теме
(1) Комментарий обычно неограниченной длины. Сделайте в запросе ограничение знаков до 100 и выводите спокойно этот текст.
2. olevlasam 3 19.11.24 21:22 Сейчас в теме
Проверьте в макете параметр [Комментарий] расположен в ОблШапка ?
3. keyn5565` 19 20.11.24 18:49 Сейчас в теме
используй расширения для доработок типовых
4. user1519152 21.11.24 07:07 Сейчас в теме
Обработку полностью приложите как файлик
6. Fil15 3 21.11.24 16:26 Сейчас в теме
Для разьяснения: все значения (в том числе и коментарий) в макете выводятся или в параметрах. Видимо у вас в макете не располодено такого параметра как "Коментарий", заполняются параметры с помощью вот к примеру таких команд:
 ОблШапка.Параметры.Заполнить(Шапка);

ОблШапка - это поле в макете, куда вам в ячейку нуждо добавить параметр.
7. user2107191 21.11.24 16:35 Сейчас в теме
(6)
ОблШапка - это поле в макете
Поле... повбивав би!
8. Fil15 3 21.11.24 16:43 Сейчас в теме
9. Bukaska 140 21.11.24 22:56 Сейчас в теме
(8) Вот именно, а для области свои методы, не как для поля)
10. KOTzilla 23 22.11.24 11:36 Сейчас в теме
Я бы делал через расширение.
Создаем область комментарий на макете, если ее нет

//Получаем эту созданнную область 
ОблКомментарий = Макет.ПолучитьОбласть("Комментарий");   
//Заполняем область
Комментарий = "Мой комментарий";
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Комментарий", Комментарий);
ОблКомментарий.Параметры.Заполнить(СтруктураДанных);
//Выводим Область
ТабличныйДокумент.Вывести(ОблКомментарий);
Показать
11. user2107191 22.11.24 11:40 Сейчас в теме
(10) Прям война и мир. Вместо
ОблКомментарий.Параметры.Комментарий = "Мой комментарий";
громоздить в 4 раза больше строк кода.
12. KOTzilla 23 22.11.24 11:58 Сейчас в теме
(11) я художник я так вижу.
Сам код конечно притянут за уши и показан абстрактный пример. Как мне кажется, комментарий будет передаваться через структуру "ДанныеПечати", поэтому решил на это обратить внимание.
13. user2107191 22.11.24 12:10 Сейчас в теме
(12)
я художник я так вижу.
Чтоб тебя на гражданских самолетах только летчики-истребители катали так, как они видят...
14. KOTzilla 23 22.11.24 12:14 Сейчас в теме
(13) Мне не понятна ваше агрессия и посыл, вы перепутали технический форм с Pikabu. Добро пожаловать в черный список.
15. user1863362 22.11.24 12:23 Сейчас в теме
(14)
Добро пожаловать в черный список.

Картинка с обезъянкой закрывающей глаза.pcx
16. user2107191 22.11.24 12:31 Сейчас в теме
(14)
Добро пожаловать в черный список.

Стой, кто ползёт!? Запретная зона
Здесь не разрешается черту переползать
Ползать здесь не хорошо и даже не законно
Я приказываю вам отсюда отползать
ОТСЮДА ОТПОЛЗАТЬ!
17. user1970338 02.12.24 05:53 Сейчас в теме
Пробовали в макете добавить поле "комментарий",
в модуле менеджера объекта прописать
...
ДанныеПечати.Вставить("Комментарий", Комментарий);
18. user2107191 02.12.24 06:08 Сейчас в теме
(17) Не останавливайтесь.
И никогда (слышите? никогда!) не используйте отладчик!
Просто продолжайте наугад делать какие-то действия, куда-то вставлять какой-то код.
user1863362; orakool; +2 Ответить
19. user1860225 03.12.24 08:54 Сейчас в теме
Я бы сделала в расширении, посмотрела где формируется табличный документ и изменила его в расширении, добавив нужную область.
20. user1970338 06.12.24 03:46 Сейчас в теме
как и писал выше, нужно в макете добавить поле.
в модуле менеджера прописать:
...
//пробуем вставить комментарий

ДанныеПечати.Вставить("Комментарий", Шапка.Комментарий);
ОблПодвал.Параметры.Заполнить(ДанныеПечати);
//конец

ТабличныйДокумент.Вывести(ОблПодвал);

ДанныеПечати = Новый Структура;
ДанныеПечати.Вставить("Стоимость", Шапка.СуммаДокумента);
ОблПодвалОкончание.Параметры.Заполнить(ДанныеПечати);
ТабличныйДокумент.Присоединить(ОблПодвалОкончание);

УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
Шапка.Ссылка);

КонецЦикла;
...
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот