()
Подскажите, в чем ошибся?
Ошибка может быть где угодно. Я бы сделал это в обработчике ПередЗаписью
На 1С вот так написано про ЭТО
Что важно понимать, находясь в этом обработчике? Данные, доступные через основной реквизит формы Объект, «мертвы». Мертвы в том смысле, что их изменение не даст никакого результата. Их можно только анализировать.
При этом также нужно понимать, что эти данные – не то, что будет записано в информационную базу. Это то, что «приехало» с клиента и «пережило» проверку заполнения. Поэтому и анализировать их можно только с точки зрения того, «а что же было».
А записан в информационную базу будет ТекущийОбъект. Отсюда еще два замечания:
Если нужно принять решение о том, можно записывать данные или нельзя, нужно анализировать ТекущийОбъект.
Если нужно модифицировать записываемые данные (например, дописать служебную информацию в реквизиты), использовать нужно ТекущийОбъект.
Все попытки изменить данные через реквизит формы Объект ни к чему не приведут. В информационную базу эти данные записаны не будут, а перед тем как форма «поедет» обратно на клиент, ее данные будут замещены данными записанного в информационную базу объекта. Таким образом, все изменения, внесенные в Объект, пропадут.
Также нужно понимать, что все действия, выполняемые в этом обработчике (отказ от записи, изменение данных объекта), должны быть связаны именно с тем фактом, что данные записываются именно из формы. При программной записи объекта (методом объекта) форма будет отсутствовать, следовательно, и это событие вызываться не будет.
Поэтому если какие-либо алгоритмы должны выполняться при любом способе записи данных объекта, а не только при записи из формы, их следует размещать в обработчике события объекта (Перед записью), а не в обработчике события формы.