Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 июл 2022, 22:41

Реализовать выбор макета

Автор Keswin, 23 дек 2018, 21:26

0 Пользователей и 1 гость просматривают эту тему.

Keswin

Доброго времени суток. Передо мной стоит задача Автоматически выбирать нужный макет для печати в зависимости от одного из реквизитов этого макета. человеческим языком я делаю следующее: получаю и заполняю макет с этим всё ок, потом провожу процедуру если один из реквизитов заполненного макета такой то, то надо вывести на печать такой то макет, если реквизит другой, то вывести на печать другой макет. Столкнулся с проблемой что программа не определяет переменную область макета.
строчка выглядит так:
Макет = ПолучитьМакетНаСервере("Акт_для печати");
   Если ОбластьМакета.Параметры.ПредставлениеПоставщика = "нужный мне реквизит" тогда;
    Макет = ПолучитьМакетНаСервере("Акт_для_печати1") иначе;
    Макет = ПолучитьМакетНаСервере("Акт_для_печати");
выдает ошибку "Переменная не определена (ОбластьМакета)"
понимаю что сделал неправильно, но не знаю как сделать по другому, посоветуйте что нибудь пожалуйста.

Каримдат

Если Реквизит = Ложь Тогда
Макет                   = ПолучитьМакетНаСервере("Акт_для_печати1");
ОбластьНоменклатура     = МакетОбласть.Области.НоменклатураСЦеной;
Иначе
Макет = ПолучитьМакетНаСервере("Акт_для_печати");
ОбластьНоменклатура     = МакетОбласть.Области.Номенклатура;
КонецЕсли;

у меня вот так работает.

Luzer1C

Сперва нужно определить какой макет использовать, а уже потом ОбластьМакета получать. А то у Вас все наоборот.
Если "нужный мне реквизит" = "Какому-то значению" Тогда
Макет = ПолучитьМакетНаСервере("Акт_для печати");
Иначе
Макет = ПолучитьМакетНаСервере("Акт_для печати1");
КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
ОбластьМакета.Параметры.ПредставлениеПоставщика = "нужный мне реквизит";

Как-то так.
Халамбалам.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск