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 111 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 98 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С
Москва
зарплата от 200 000 руб.
Полный день

Ведущий программист 1С
Нижний Новгород
зарплата от 100 000 руб.
Полный день

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

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

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