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