Запрет создания на основание (не в ОбработкеЗаполнения)
День добрый!
Платформа 8.3.17.1851.
Есть необходимость запретить создавать ряд документов на основание, например, Поступления товаров и услуг (ПТиУ).
На основание ПТиУ можно создать, к примеру, 5 видов документов.
Вопрос: Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Есть ли общая процедура, которая вызывается между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения".
Ковырялся в управляемых командах и общих модулях "СозданиеНаОсновании...". Ни к чему дельному не привело.
Платформа 8.3.17.1851.
Есть необходимость запретить создавать ряд документов на основание, например, Поступления товаров и услуг (ПТиУ).
На основание ПТиУ можно создать, к примеру, 5 видов документов.
Вопрос: Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Есть ли общая процедура, которая вызывается между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения".
Ковырялся в управляемых командах и общих модулях "СозданиеНаОсновании...". Ни к чему дельному не привело.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Можно попробовать через подписки на события. Подписка выполняется после процедуры "ОбработкаЗаполнения" модуля объекта.
Также можно посмотреть события формы при создании на сервере или перед открытием. Проверять есть ли параметр основание и его тип значение, устанавливать Отказ = истина.
Также можно посмотреть события формы при создании на сервере или перед открытием. Проверять есть ли параметр основание и его тип значение, устанавливать Отказ = истина.
(7)
да. Но ваша цель - "запретить создавать ряд документов на основание", поэтому можно пойти чуть другим путем, пусть себе на здоровье отрабатывает "ОбработкаЗаполнения" для всех случаев. Но т.к. эти обработчики событий идут последовательно, т.е. если отработала "Обработказаполнения", то 100% будет отрабатывать "ПриСозданииНаСервере". Вот Вы в "ПриСозданииНаСервере" сделаете необходимые проверки и, если нужно, сделаете отказ. Соответственно документ не создастся, не запишется в базу данных, пользователь получит информацию об ошибке. Может сработать
ПриСозданиеНаСервере тоже отрабатывает после "ОбработкаЗаполнения".
да. Но ваша цель - "запретить создавать ряд документов на основание", поэтому можно пойти чуть другим путем, пусть себе на здоровье отрабатывает "ОбработкаЗаполнения" для всех случаев. Но т.к. эти обработчики событий идут последовательно, т.е. если отработала "Обработказаполнения", то 100% будет отрабатывать "ПриСозданииНаСервере". Вот Вы в "ПриСозданииНаСервере" сделаете необходимые проверки и, если нужно, сделаете отказ. Соответственно документ не создастся, не запишется в базу данных, пользователь получит информацию об ошибке. Может сработать
(1) Если конфигурация основана на БСП, то команды создания на основании определяются в менеджере создаваемого объекта, функцией ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании). Правильнее в этой функции проверить требуемые права, и, если их нет, то не добавлять команду.
(4) да, это правильно, но условие, по которому решается создавать или не создавать документы на основание - это статус документа, который является записью регистра сведений, а это проблема.
Есть такой вариант: открыть форму документа в момент когда статус разрешает создание на основание (Команды добавятся на форму), пойти налить чай, вернуться и нажать кнопку "Создания на основание". Но в момент наливания воды в кружку - статус документа поменялся другим пользователем, а значит кнопки "Создания на основание" не должно быть. Проблематично учитывать это.
Есть такой вариант: открыть форму документа в момент когда статус разрешает создание на основание (Команды добавятся на форму), пойти налить чай, вернуться и нажать кнопку "Создания на основание". Но в момент наливания воды в кружку - статус документа поменялся другим пользователем, а значит кнопки "Создания на основание" не должно быть. Проблематично учитывать это.
Сейчас внимательнее почитал ваш вопрос:
Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Чем подписка на событие не подходит? Добавили объект конфигурации и процедуру для отрабатывания подписки. Код в одном месте, процедура "ОбработкаЗаполнения" в модулях объектов, для которых следует делать дополнительные проверки остается неизменной.
Можно ли реализовать этот запрет, но не в "ОбработкеЗаполнения" каждого модуля объекта создаваемого документа?
Чем подписка на событие не подходит? Добавили объект конфигурации и процедуру для отрабатывания подписки. Код в одном месте, процедура "ОбработкаЗаполнения" в модулях объектов, для которых следует делать дополнительные проверки остается неизменной.
(10)Тогда только "ОбработкаЗаполнения" модуля объекта. Других вариантов нет, эта процедура для ваших целей и существует. Остальные варианты не оптимальны. Между нажатием на кнопку "Создать на основание -> Документ X" и процедурой "ОбработкаЗаполнения" нет обработчиков событий.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот