1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем belbuh, 5 сен 2013.

  1. belbuh

    belbuh New Member

    Репутация:
    0
    Регистрация:
    5 сен 2013
    Сообщения:
    1
    Симпатии:
    0
    Приветствую всех!

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

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

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

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

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

    Вложения:

  2. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    А в ДеревоМакетовПечати все данные есть?
     
  3. SeverBap

    SeverBap Well-Known Member

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

    Дайнеко Well-Known Member

    Репутация:
    0
    Регистрация:
    19 ноя 2009
    Сообщения:
    951
    Симпатии:
    0
    Поясню:
    Суть процесса не в том, чтобы твоя процедура сама открывала макет и его печатала.
    А вызвала метод Печать() самого объекта, а у он знает что и как печатать
     
  5. SeverBap

    SeverBap Well-Known Member

    Репутация:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    451
    Симпатии:
    0
    Все реально, решил ему на инфостарте!
    Последний листинг рабочий правда, сначала тут на него наткнулся ...
     
Загрузка...

Поделиться этой страницей