1. EvaMendes 12.10.18 16:27 Сейчас в теме

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

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

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

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

Кнопка = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Печать;
Если ПроверяемыйСтатус = Ложь Тогда
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Удалить(Кнопка);
КонецЕсли;
EvaMendes; catena; +2 Ответить
9. EvaMendes 15.10.18 14:21 Сейчас в теме
(7) Эта идея кажется мне шикарной! Не нужно добавлять код во все ПФ, добавить только на форму элемента и списка. Я, правда, думала, что скажут правильнее править где-то в подписках на событие
10. user614822 15.10.18 15:00 Сейчас в теме
(9) Она шикарной только кажется...
Подписки на события для печати не применяют, ибо нету такого отслеживаемого события в 1С. А преимущество подписок - не нужно коробить конфигурацию...
В случае же с кнопкой на форме если не сделать это в расширении, то усложнится процесс обновления конфигурации. Это так называемая "ломка конфы" может слететь при неграмотном обновлении.
12. catena 96 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) к сожалению, ну или к счастью, моя конфигурация только издалека напоминает типовую....
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день