Запрет создания на основание (не в ОбработкеЗаполнения)

1. Fe9_min 50 24.03.21 15:09 Сейчас в теме
День добрый!
Платформа 8.3.17.1851.
Есть необходимость запретить создавать ряд документов на основание, например, Поступления товаров и услуг (ПТиУ).
На основание ПТиУ можно создать, к примеру, 5 видов документов.
Вопрос: Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Есть ли общая процедура, которая вызывается между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения".
Ковырялся в управляемых командах и общих модулях "СозданиеНаОсновании...". Ни к чему дельному не привело.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 31 24.03.21 15:31 Сейчас в теме
(1) ПриСоздании, ПередСозданием вызываются
между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения".
6. Fe9_min 50 24.03.21 16:40 Сейчас в теме
(2)
ПриСоздании, ПередСозданием вызываются

можно пожалуйста скриншот этих процедур / функций, и в каких модуля они вызываются (до процедуры "ОбработкаЗаполнения")?
3. DmitriyTih 24.03.21 15:32 Сейчас в теме
(1)Можно попробовать через подписки на события. Подписка выполняется после процедуры "ОбработкаЗаполнения" модуля объекта.
Также можно посмотреть события формы при создании на сервере или перед открытием. Проверять есть ли параметр основание и его тип значение, устанавливать Отказ = истина.
7. Fe9_min 50 24.03.21 16:47 Сейчас в теме
(3)
необходимо ДО процедуры "ОбработкаЗаполнения".
+ ПриСозданиеНаСервере тоже отрабатывает после "ОбработкаЗаполнения".
8. DmitriyTih 24.03.21 16:56 Сейчас в теме
(7)
ПриСозданиеНаСервере тоже отрабатывает после "ОбработкаЗаполнения".

да. Но ваша цель - "запретить создавать ряд документов на основание", поэтому можно пойти чуть другим путем, пусть себе на здоровье отрабатывает "ОбработкаЗаполнения" для всех случаев. Но т.к. эти обработчики событий идут последовательно, т.е. если отработала "Обработказаполнения", то 100% будет отрабатывать "ПриСозданииНаСервере". Вот Вы в "ПриСозданииНаСервере" сделаете необходимые проверки и, если нужно, сделаете отказ. Соответственно документ не создастся, не запишется в базу данных, пользователь получит информацию об ошибке. Может сработать
4. vadim.semyonov.rzn 24.03.21 15:50 Сейчас в теме
(1) Если конфигурация основана на БСП, то команды создания на основании определяются в менеджере создаваемого объекта, функцией ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании). Правильнее в этой функции проверить требуемые права, и, если их нет, то не добавлять команду.
5. Fe9_min 50 24.03.21 16:39 Сейчас в теме
(4) да, это правильно, но условие, по которому решается создавать или не создавать документы на основание - это статус документа, который является записью регистра сведений, а это проблема.
Есть такой вариант: открыть форму документа в момент когда статус разрешает создание на основание (Команды добавятся на форму), пойти налить чай, вернуться и нажать кнопку "Создания на основание". Но в момент наливания воды в кружку - статус документа поменялся другим пользователем, а значит кнопки "Создания на основание" не должно быть. Проблематично учитывать это.
9. DmitriyTih 24.03.21 17:01 Сейчас в теме
Сейчас внимательнее почитал ваш вопрос:
Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Чем подписка на событие не подходит? Добавили объект конфигурации и процедуру для отрабатывания подписки. Код в одном месте, процедура "ОбработкаЗаполнения" в модулях объектов, для которых следует делать дополнительные проверки остается неизменной.
10. Fe9_min 50 24.03.21 17:34 Сейчас в теме
(9)
не подходит это тем, что подписка срабатывает после события, то есть весь код "ОбработкиЗаполнения" должен отработать, а это не оптимально. Не оптимально = не интересно.
12. alxarz 31 24.03.21 18:16 Сейчас в теме
(10) из методических рекомендаций, может это оптимально?
13. DmitriyTih 25.03.21 08:50 Сейчас в теме
(10)Тогда только "ОбработкаЗаполнения" модуля объекта. Других вариантов нет, эта процедура для ваших целей и существует. Остальные варианты не оптимальны. Между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения" нет обработчиков событий.
11. SlavaKron 24.03.21 17:43 Сейчас в теме
По-моему, это решается без кодинга ограничением прав на интерактивное добавление. Если подменю "Создать на основании" платформенное, советующих пунктов и не будет.
Оставьте свое сообщение

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