Отображение команд печати документа в зависимости от условий

1. UtSpar 18.02.20 08:38 Сейчас в теме
Конфигурация на БСП 2.2.
Команды печати в документе добавляются через процедуру модуля менеджера "ДобавитьКомандыПечати".

Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.МенеджерПечати = "Документ._ДемоСчетНаОплатуПокупателю";
    КомандаПечати.Идентификатор = "СчетЗаказ";
    КомандаПечати.Представление = НСтр("ru = 'Счет на оплату'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; 
КонецПроцедуры


Вопрос: Как реализовать отображение разных печатных форм в зависимости от реквизита документа. К примеру если реквизит "Вид документа" = Основной - то одни печатные формы, если "Вид документа" = Дополнительный , то другие печатные формы.

Правильного способа в документации по БСП не нашел. Кто сталкивался, подскажите как лучше это реализовать?
Найденные решения
2. Stref75 18.02.20 09:54 Сейчас в теме
вариант 1 - реализовать логику печати различного макета в зависимости от реквизита в самой команде печати. Т.е. пользователь видит одну команду, а алгоритм в зависимости от реквизита объекта формирует тот или иной макет (думаю наиболее оптимально).
вариант 2 - добавляем команды печати для разных документов, затем на самой форме отлавливаем их в элементах формы, и в зависимости от реквизита объекта, скрываем недопустимые.
вариант 3 - в командах печати делаем проверки на реквизит, и если он не подходит, то просто выводим сообщение пользователю типа "Не для этого типа документа в поле ягодка росла"
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. davealone 152 18.02.20 10:09 Сейчас в теме
(1) Посмотрите, есть ли у добавляемой команды колонка УсловияВидимости - в 2.4 точно есть. Не уверен в 2.2 уже была или нет.
Если есть, то можно задать простые условия на равенство с помощью ДобавитьУсловиеВидимостиКоманды. И этот реквизит должен быть в списках с флагом Использовать всегда, чтобы даже при отключенной видимости был доступен.
6. UtSpar 18.02.20 11:18 Сейчас в теме
(4)Как раз то что нужно, но в 2.2. к сожалению такого параметра еще нет. https://its.1c.ru/db/bsp22doc#content:219:1
Но спасибо, будет где посмотреть.
5. KVIKS 82 18.02.20 10:54 Сейчас в теме
(1)В типовых в процедуре ДобавитьКомандыПечати как раз и ставят условия к примеру на всякие константы и функциональные опции. По идее также можно сделать проверку на реквизит документа, но ДобавитьКомандыПечати - функция общая для списков и для документов, а судя по заданию видимость там может отличаться. 2-й момент это - что показывать если документ новый и реквизит определяется в ходе заполнения? Ничего, а после записи обновлять команды печати? Т.е. состав кнопок не определить - остается только менять сами процедуры печати, т.е. кнопку видно, но 1 документ печатается нормально, а второму пустой бланк, в зависимости от реквизита.
7. UtSpar 18.02.20 11:22 Сейчас в теме
(5)Спасибо, оставлю две команды, так у меня реквизит всего два значения может иметь, а уже при нажатии обрабатывать и выводить сообщение в случае ошибки.
2. Stref75 18.02.20 09:54 Сейчас в теме
вариант 1 - реализовать логику печати различного макета в зависимости от реквизита в самой команде печати. Т.е. пользователь видит одну команду, а алгоритм в зависимости от реквизита объекта формирует тот или иной макет (думаю наиболее оптимально).
вариант 2 - добавляем команды печати для разных документов, затем на самой форме отлавливаем их в элементах формы, и в зависимости от реквизита объекта, скрываем недопустимые.
вариант 3 - в командах печати делаем проверки на реквизит, и если он не подходит, то просто выводим сообщение пользователю типа "Не для этого типа документа в поле ягодка росла"
8. UtSpar 18.02.20 11:23 Сейчас в теме
(2) 3 вариант то что нужно, спасибо!
9. user_2010 580 04.05.21 16:31 Сейчас в теме
(2)
интересно, как реализовать путнкт 2? в какой процедуре и как скрыть печ формы?

вариант 2 - добавляем команды печати для разных документов, затем на самой форме отлавливаем их в элементах формы, и в зависимости от реквизита объекта, скрываем недопустимые.
3. user633533_encantado 10 18.02.20 10:08 Сейчас в теме
В типовых как раз 3 вариант реализован, если форма не подходящая, то выходит сообщение. А сами команды не фильтруются.
Оставьте свое сообщение
Вопросы с вознаграждением