Программное создание документа при записи помеченного на удаление документа.

1. Александр Лопатин (lopatin) 229 23.12.16 11:04 Сейчас в теме
Здравствуйте!

Есть документ, помечен на удаление. Жму провести.

В событии модуля объекта документа ПередЗаписью, создают программно другой документ. После отработки события, выдается сообщение "помеченный на удаление документ не может быть проведен".

Вопрос, программное создание другого документа в обработчике ПередЗаписью, отменяется? Залез в в форму списка документа нет. Получается, он не был создан.

Я все правильно, понимаю, этот документ, который создан программно был, ни где потом не вылезет?
Ответы
2. Алекс Кон (alex-l19041) 9 23.12.16 12:21 Сейчас в теме
(1)
Я все правильно, понимаю, этот документ, который создан программно был, ни где потом не вылезет?
- нет. Если создали документ, записали, то не исчезнет. Кроме случая, что это было сделано в транзакции, которую отменили...
3. Александр Лопатин (lopatin) 229 23.12.16 12:26 Сейчас в теме
(2) Обработчик ПередЗаписью отработал с ошибкой. Выдал сообщение и не провел документ, возможно это и было отмена транзакции? Но я документ не могу найти и меня это смущает
4. Евгений Кузнецов (kuzev) 40 23.12.16 12:30 Сейчас в теме
(1)
создают программно другой документ
и записывают?
5. Александр Лопатин (lopatin) 229 23.12.16 12:43 Сейчас в теме
(4) Да другой. И записывают.

приблизительно это выглядит так:

Процедура ПередЗаписью()

СозданныйДокумент = СоздатьДокументДругогоВида();//СозданныйДокумент - реквизит текущего документ

КонецПроцедуры

Функция СоздатьДокументДругогоВида()

СозданныйДокумент = Документы.Док.Создать()

//Заполняем документ

СозданныйДокумент.Записать()

Возврат СозданныйДокумент.Ссылка;

КонецФункции
...Показать Скрыть


Соответсвенно после отработки ПередЗаписью выдается ошибка, Реквизит в нашем документе СозданныйДокумент, который хранит ссылку на создаваемый при записи документ, чист, т.к. запись с проведением не была произведена.

Проверил, запросом: создаваемый документ с кодом, который показывался в отладчике отсутствует, в форме списка отсутствует.
6. Андрей Обухов (Fallen207) 23.12.16 12:45 Сейчас в теме
Вы запись программно созданного документа вызываете? Если приведете примеры Вашего кода - сразу покажу ошибки.
7. Андрей Обухов (Fallen207) 23.12.16 12:49 Сейчас в теме
А если,
СозданныйДокумент.Записать(РежимЗаписиДокумента.Запись);

или
СозданныйДокумент.Записать(РежимЗаписиДокумента.Проведение);


то тоже не создается?
8. Александр Лопатин (lopatin) 229 23.12.16 13:14 Сейчас в теме
При РежимЗаписиДокумента.Запись не появился. Проведение в данном месте не устраивает. На самом деле мне нужно, чтобы при ошибке проведения документ не появился. Просто странная ситуация и хотчется быть уверенным, что не нужно делать дополнительных проверок, чтобы при ошибке проведения не производилось создание документа.
9. Виктор Александров (docerman) 41 23.12.16 13:22 Сейчас в теме
Проведение документа выполняется в транзакции. Обработчик ПередЗаписью тоже в транзакции. Если при проведении была ошибка то транзакция отменяется и соответственно ваш созданный документ тоже отменяется, т.е. в базе его не будет.
Оставьте свое сообщение