Запрет печати документа по условию (обычные формы)

1. EvaMendes 12.10.18 16:27 Сейчас в теме
Доброго времени суток! подскажите, пожалуйста, как быть: нужно запретить формирование любых печатных форм из реализации при наступлении некоторого условия (Заполнение/незаполнение реквизита или согласование). Как запретить любую возможную печать конкретного документа любому пользователю (УТ 10.3)?
Пробовала в процедуре Печать() ставить ограничение, но тогда в любом случае печатаются внешние печатные формы, а этого не должно быть.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alex-l19041 8 12.10.18 16:31 Сейчас в теме
при добавлении внеш печатной формы в справочник можно добавить отбор, когда эта форма доступна
+
3. iliya2009 12.10.18 16:33 Сейчас в теме
Добрый день!

Пока приходит в голову в ставка в каждую печатную форму следующего кода:

Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект.Реквизит) Тогда
Сообщить("Не заполнено поле ...");
Возврат Неопределено;
КонецЕсли;
+
4. YannikAlx 43 12.10.18 16:36 Сейчас в теме
Если речь идет о защите от несанкционированного доступа,
Если речь идет о принципиальном запрете , то без запрета подключения внешних печ. форм он невозможен.
Потому как если пользователь сможет подключить внешнюю обработку или печ форму - он все равно напечатает
alex-l19041; +1
8. EvaMendes 15.10.18 14:19 Сейчас в теме
(4)нужно чтобы менеджеры не смогли напечатать никаких печатных форм конкретного документа пока не заполнен соответствующий реквизит документа. Есть несколько филиалов, которые все работают в одной базе и разрабатывают свои формы
+
5. YannikAlx 43 12.10.18 16:38 Сейчас в теме
Если же речь всего лишь о незаполнении реквизита - то проверку необходимо заводить во все подключенные внешние печатные формы
+
6. config 187 12.10.18 17:00 Сейчас в теме
В процедуре Печать() и нужно запрещать.
А для ВПФ (для каждой из них) эти запреты нужно продублировать в ту же процедуру Печать()
+
7. Spirit007 12.10.18 17:03 Сейчас в теме
Как вариант при открытии формы накладной и при изменении проверяемого реквизита вставить процедуру проверки, например удалять кнопку печати:

Кнопка = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать;
Если ПроверяемыйСтатус = Ложь Тогда
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(Кнопка);
КонецЕсли;
EvaMendes; catena; +2
9. EvaMendes 15.10.18 14:21 Сейчас в теме
(7) Эта идея кажется мне шикарной! Не нужно добавлять код во все ПФ, добавить только на форму элемента и списка. Я, правда, думала, что скажут правильнее править где-то в подписках на событие
+
10. YannikAlx 43 15.10.18 15:00 Сейчас в теме
(9) Она шикарной только кажется...
Подписки на события для печати не применяют, ибо нету такого отслеживаемого события в 1С. А преимущество подписок - не нужно коробить конфигурацию...
В случае же с кнопкой на форме если не сделать это в расширении, то усложнится процесс обновления конфигурации. Это так называемая "ломка конфы" может слететь при неграмотном обновлении.
+
12. catena 110 16.10.18 06:15 Сейчас в теме
(10)Альтернатива - "ломка" процедуры печать(), то же самое внедрение в текст, но приводящее к необходимости отслеживания всех ВПФ. Блокировка кнопки в данном случае менее болезненно ИМХО.
+
11. Spirit007 15.10.18 21:51 Сейчас в теме
Если УТ 10.3 на поддержке, значит у конфигурации режим совместимости 8.2 -никаких расширений быть не может. Если не хочется ломать форму на поддержке, то можно копированием с основной создать новую форму и назначить ее основной формой объекта и ее уже изменять. При обновлении на новый релиз не забывать менять основную форму с типовой на свою.
+
13. EvaMendes 16.10.18 15:29 Сейчас в теме
(11)
(10) к сожалению, ну или к счастью, моя конфигурация только издалека напоминает типовую....
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот