Ребят, привет. Вопрос; Есть процедура ДействияФормыПечать(Кнопка), и есть функция Печать(), которая заполняет макет данными. Когда жму на кнопку печать и выбираю нужную мне из списка, макет не выводится (хотя через точку остановы проверяю выборку функции,данные выбираются корректно). В чем я ошибся?
Процедура ДействияФормыПечать(Кнопка)
// Вставить содержимое обработчика.
Если не Событие = Справочники.СобытияПечати.НайтиПоКоду("000000017") тогда
Предупреждение("Печать этой формы возможна только для события ""Печать накладной""!");
Возврат;
КонецЕсли;
ПечатьНакладной();
КонецПроцедуры
Функция ПечатьНакладной()
ТабДок = Новый ТабличныйДокумент;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
//Получим макет
Макет = ПолучитьМакет("МакетНакладной");
//Получим области макета
ОбластьШапкаТаб = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрокаТаб = Макет.ПолучитьОбласть("Строка");
ОбластьПодСтрокойТаб = Макет.ПолучитьОбласть("ПодСтрокой");
ОбластьПодвалТаб = Макет.ПолучитьОбласть("Подвал");
//ТабДок.Вывести(ОбластьШапкаТаб);
//Заполнение таблицы
Для каждого СтрокаНом из Товары цикл
ОбластьСтрокаТаб.Параметры.Наименование = СтрокаНом.Товар;
ОбластьСтрокаТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Размещение = СтрокаНом.Корпус;
ОбластьПодСтрокойТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Дата = Сред(Сокрлп(Дата),1,10);
КонецЦикла;
Возврат ТабДок;
ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
КонецФункции
ПоказатьПо теме из базы знаний
- Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП
- Печать макета MS Word в любом документе с помощью БСП
- Вывод печатных форм по документу "Прием на работу"(или по справочнику "Сотрудник") с возможностью ручного редактирования и добавления новых макетов MS Word
- Полезный код для программистов 1С (часть 3). Подготовка печатных форм + подсистема Управление печатью (БСП)
- Печать в docx методами БСП без COM объекта
Найденные решения
Решение:
Процедура ДействияФормыПечать(Кнопка)
// Вставить содержимое обработчика.
Если не Событие = Справочники.СобытияПечати.НайтиПоКоду("000000017") тогда
Предупреждение("Печать этой формы возможна только для события ""Печать накладной""!");
Возврат;
КонецЕсли;
ПечатьНакладной();
КонецПроцедуры
Процедура ПечатьНакладной()
ТабДок = Новый ТабличныйДокумент;
//Получим макет
Макет = ПолучитьМакет("МакетНакладной");
//Получим области макета
ОбластьШапкаТаб = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрокаТаб = Макет.ПолучитьОбласть("Строка");
ОбластьПодСтрокойТаб = Макет.ПолучитьОбласть("ПодСтрокой");
ОбластьПодвалТаб = Макет.ПолучитьОбласть("Подвал");
//ТабДок.Вывести(ОбластьШапкаТаб);
//Заполнение таблицы
Для каждого СтрокаНом из Товары цикл
ОбластьСтрокаТаб.Параметры.Наименование = СтрокаНом.Товар;
ОбластьСтрокаТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Размещение = СтрокаНом.Корпус;
ОбластьПодСтрокойТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Дата = Сред(Сокрлп(Дата),1,10);
ТабДок.Вывести(ОбластьСтрокаТаб);
КонецЦикла;
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
ТабДок.ТолькоПросмотр = Истина;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.Показать("Макет");
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ТабДок.Вывести не отработают, так как находятся после Возврат.
В цикле идет заполнение параметров, но не происходит ТабДок.Вывести. Нужно выводить так же внутри цикла.
Возврат ТабДок;
ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
ТабДок.Вывести не отработают, так как находятся после Возврат.
В цикле идет заполнение параметров, но не происходит ТабДок.Вывести. Нужно выводить так же внутри цикла.
(3) Закинул Вывести в цикл, но без изменений, макет так и не выводится
Для каждого СтрокаНом из Товары цикл
ОбластьСтрокаТаб.Параметры.Наименование = СтрокаНом.Товар;
ОбластьСтрокаТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Размещение = СтрокаНом.Корпус;
ОбластьПодСтрокойТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Дата = Сред(Сокрлп(Дата),1,10);
ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
КонецЦикла;
Возврат ТабДок;
КонецФункции
Показать
(6) и вывод областей нужно не такое.
Как-то так:
Как-то так:
ТабДок.Вывести(ОбластьШапкаТаб);
Для каждого СтрокаНом из Товары цикл
ОбластьСтрокаТаб.Параметры.Наименование = СтрокаНом.Товар;
ОбластьСтрокаТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Размещение = СтрокаНом.Корпус;
ОбластьПодСтрокойТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Дата = Сред(Сокрлп(Дата),1,10);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
КонецЦикла;
ТабДок.Вывести(ОбластьПодвалТаб);
Возврат ТабДок;
КонецФункции
Показать
(2) Воврат ТабДок есть; ))
КонецЦикла;
[/1C-CODE]
КонецЦикла;
[1C-CODE]Возврат ТабДок; /////////////////////////////////////////
ТабДок.Вывести(ОбластьШапкаТаб);
ТабДок.Вывести(ОбластьСтрокаТаб);
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
КонецФункции
Решение:
Процедура ДействияФормыПечать(Кнопка)
// Вставить содержимое обработчика.
Если не Событие = Справочники.СобытияПечати.НайтиПоКоду("000000017") тогда
Предупреждение("Печать этой формы возможна только для события ""Печать накладной""!");
Возврат;
КонецЕсли;
ПечатьНакладной();
КонецПроцедуры
Процедура ПечатьНакладной()
ТабДок = Новый ТабличныйДокумент;
//Получим макет
Макет = ПолучитьМакет("МакетНакладной");
//Получим области макета
ОбластьШапкаТаб = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрокаТаб = Макет.ПолучитьОбласть("Строка");
ОбластьПодСтрокойТаб = Макет.ПолучитьОбласть("ПодСтрокой");
ОбластьПодвалТаб = Макет.ПолучитьОбласть("Подвал");
//ТабДок.Вывести(ОбластьШапкаТаб);
//Заполнение таблицы
Для каждого СтрокаНом из Товары цикл
ОбластьСтрокаТаб.Параметры.Наименование = СтрокаНом.Товар;
ОбластьСтрокаТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Размещение = СтрокаНом.Корпус;
ОбластьПодСтрокойТаб.Параметры.Адрес = СтрокаНом.Адрес;
ОбластьПодСтрокойТаб.Параметры.Дата = Сред(Сокрлп(Дата),1,10);
ТабДок.Вывести(ОбластьСтрокаТаб);
КонецЦикла;
ТабДок.Вывести(ОбластьПодСтрокойТаб);
ТабДок.Вывести(ОбластьПодвалТаб);
ТабДок.ТолькоПросмотр = Истина;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.Показать("Макет");
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот