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_yanchenko.a 19 12.10.18 16:36 Сейчас в теме
Если речь идет о защите от несанкционированного доступа,
Если речь идет о принципиальном запрете , то без запрета подключения внешних печ. форм он невозможен.
Потому как если пользователь сможет подключить внешнюю обработку или печ форму - он все равно напечатает
alex-l19041; +1 Ответить
8. EvaMendes 15.10.18 14:19 Сейчас в теме
(4)нужно чтобы менеджеры не смогли напечатать никаких печатных форм конкретного документа пока не заполнен соответствующий реквизит документа. Есть несколько филиалов, которые все работают в одной базе и разрабатывают свои формы
5. user614822_yanchenko.a 19 12.10.18 16:38 Сейчас в теме
Если же речь всего лишь о незаполнении реквизита - то проверку необходимо заводить во все подключенные внешние печатные формы
6. config 100 12.10.18 17:00 Сейчас в теме
В процедуре Печать() и нужно запрещать.
А для ВПФ (для каждой из них) эти запреты нужно продублировать в ту же процедуру Печать()
7. Spirit007 12.10.18 17:03 Сейчас в теме
Как вариант при открытии формы накладной и при изменении проверяемого реквизита вставить процедуру проверки, например удалять кнопку печати:

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

Вакансии

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

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

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

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

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