• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Групповая Печать - Как Получить Макеты Для Печати

  • Автор темы belbuh
  • Дата начала
B

belbuh

Приветствую всех!

Пишу обработку групповой печати документов (см.рис.) для самообучения. Понимаю, что есть готовые решения.
1С 82, БП20.

Проблема: не могу получить список макетов, а точнее их расшифровки для передачи в процедуру УниверсальныеМеханизмы.НапечататьВнешнююФорму.

Приведу ключевые фрагменты кода.

1. Строим дерево макетов.
Код:
Объект = Строка.Ссылка.ПолучитьОбъект();
СтруктураВнутреннихПечатныхФорм = Объект.ПолучитьСтруктуруПечатныхФорм();
ДеревоМакетовПечати = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Объект.Ссылка, СтруктураВнутреннихПечатныхФорм);

2. Ищем в построенном дереве заданное пользователем значение.
Код:
ИскомоеИмя = ЭлементыФормы.СписокМакетов.ТекущаяСтрока.Значение;
СтрМакета = ДеревоМакетов.Строки.Найти(ИскомоеИмя, "Имя");

Найти то я нахожу, но расшифровку не получаю.
расшифровка.png

3. Если все ок, печатаем
Код:
Если (СтрМакета<>Неопределено) И (СтрМакета.Расшифровка<>Неопределено) И (ТипЗнч(СтрМакета.Расшифровка)=Тип("Структура")) Тогда
ПечДокумент = УниверсальныеМеханизмы.НапечататьВнешнююФорму(Строка.Ссылка, СтрМакета.Расшифровка);
УниверсальныеМеханизмы.НапечататьДокумент(ПечДокумент, КолвоЭкз, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(Строка.Ссылка), );
КонецЕсли;

Что надо исправить, чтобы на 2-м этапе получить расшифровку макета?
 

Вложения

  • групп_печать.png
    групп_печать.png
    10,7 КБ · Просмотры: 560
S

SeverBap

А в ДеревоМакетовПечати все данные есть?
 
S

SeverBap

третий пункт заменить на:
Код:
Расшифровка=СтрМакета.Расшифровка;
ОбъектВрем=Строка.Ссылка.ПолучитьОбъект();
Если ТипЗнч(Расшифровка) = Тип("Структура") Тогда
ТабДокумент = НапечататьВнешнююФорму(ОбъектВрем, Расшифровка);
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КолвоЭкз, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ОбъектВрем), ОбъектВрем);
Иначе
ОбъектВрем.Печать(ИскомоеИмя, КолвоЭкз, НаПринтер);
КонецЕсли;
 
Д

Дайнеко

Поясню:
Суть процесса не в том, чтобы твоя процедура сама открывала макет и его печатала.
А вызвала метод Печать() самого объекта, а у он знает что и как печатать
 
S

SeverBap

Поясню:
Суть процесса не в том, чтобы твоя процедура сама открывала макет и его печатала.
А вызвала метод Печать() самого объекта, а у он знает что и как печатать
Все реально, решил ему на инфостарте!
Последний листинг рабочий правда, сначала тут на него наткнулся ...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!