Согласованная сумма документа
Читают тему
Вход в личный кабинет
Для получения доступа к форуму необходимо
авторизоваться
или
зарегистрироваться
на сайте.
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке
выскочила таблица "Введите согласованную сумму".
Можно рассказать порядок действий при работе с данной таблицей.
Прикрепленные файлы
Если повесить на запись или проведение ЗН "значимое событие", можно ли не дать пользователю записать/провести ЗН если превышена согласованная сумма.
За что отвечают пункты в "значимых событиях" : "Выполнять действия в транзакции", "В случае исключения прерывать выполнение", "В случае исключения продолжать выполнение"
Идея вызвать исключение и не дать провести документ если превышена согласованная сумма.
Совершенно верно, данная строка не влияет на проведение документа.
Значимые события Вы можете настроить по своему усмотрению, мы предоставляем только механизм значимых событий, а настраивает их для проведения специалист, который разбирается в языке программирования 1С. Сотрудники компании 1С-Рарус не оказывают консультации по программированию на платформе 1С. Возможно, кто-то из участников форума даст Вам совет, это не запрещается правилами форума.
1. Если повесить на запись или проведение ЗН "значимое событие", можно ли не дать пользователю записать/провести ЗН если превышена согласованная сумма?
2. За что отвечают пункты в "значимых событиях" : "Выполнять действия в транзакции", "В случае исключения прерывать выполнение", "В случае исключения продолжать выполнение"?
Ни на один вы не ответили. Я не просил привести примеры кода, не просил показать как можно это сделать и пр. Опять ответ без ответа. Мы сделали, а как это работает - догадайся сам.
1. с помощью значимых событий можно сделать указанные Вами настройки
2. Выполнять действия в транзакции - все действия значимого события выполняются в рамках одной транзакции. Если в одном из действий произойдет ошибка, то транзакция будет отменена. В случае исключения прерывать выполнение - в случае возникновения ошибки в одном из действий, дальнейшие действия выполнятся не будут. Однако, результат работы предыдущих действий отменен не будет. В случае исключения продолжить выполнение - в случае возникновения ошибки в одном из действий, это действие будет проигнорировано, а выполнение действий продолжится.
1. с помощью значимых событий можно сделать указанные Вами настройки
Мне тоже стало интересно, можно ли прервать запись или проведение документа через значимые события (хотя с точки зрения быстродействия, на мой взгляд, это существенно выгоднее делать напрямую в модуле).
С настройками значимого события все довольно однозначно - на событие "ПриЗаписи" заказ-наряда вешаем условие, что состояние равно "Выполнен". А вот с действием на него возникает проблема. Во-первых, очевидно, что единственным подходящим нам видом действия является "Прочее" (т. е. выполнение произвольного кода).
Далее же нужно определиться со способом прерывания процесса записи. Наиболее красивым решением было бы из нашего произвольного кода перевести флаг "Отказ" процедуры "ПриЗаписи" в состояние "Истина". Однако в конечном итоге произвольный код выполняется в контексте процедуры "ВыполнитьПрочееДействие" общего модуля "сбСобытия":
Выполняется эта процедура уже после обработчиков "ПриЗаписи" и "ОбработкаПроведения". Поэтому на флаг "Отказ", равно как и на ход записи или проведения документа, мы из нее повлиять не можем. Максимум, что мы можем отсюда выжать - это объект документа, вызвавшего значимое событие:
Поэтому с моей точки зрения, реализовать с помощью значимых событий дополнительные проверки при записи или проведении документа невозможно. Хотя, вполне вероятно, я что-то упускаю из вида.