Программирование 1с 8.3

1. user2069136 16.04.24 15:38 Сейчас в теме
Помогите пожалуйста. Стоит учебная задача, нужно в документе Перемещение товаров, сделать настройку, чтобы при записи документа, создавался документ Списание на расходы и заполнялся данными из первого документа, так же, сделать так, чтобы если первый документ проводится, помечается на удаление, записывается, второй документ делает тоже самое.
Я добавил реквизит второго документа в первый, вынес его на форму. В процедуре ПриЗаписи в модуле объекта, написал такой код =
Источник = Ссылка;
	Если  СвязанныйДокумент.Ссылка.Пустая() Тогда 
	СвязанныйДокумент = Документы.ВнутреннееПотребление.СоздатьДокумент();	
	СвязанныйДокумент.Организация = Источник.Организация;
	СвязанныйДокумент.Склад = Источник.СкладПолучатель;

Но почему при попытки записи выдает ошибку Элемент не выбран!
Посмотрел в отладчике, в Реквизит "Связанный документ", почему то ничего не попадает, подскажите, что делать.
По теме из базы знаний
Найденные решения
6. jmw 60 17.04.24 04:34 Сейчас в теме
Может лучше использовать обработчик подписки на события.
Скажем, ПриЗаписи будет обрабатываться только при удачной записи объекта. Следовательно, можно создавать и записывать второй документ или перезаполнять данными из первого.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. newlogin1 16.04.24 15:54 Сейчас в теме
(1)СвязанныйДокумент - ссылка, Документы.ВнутреннееПотребление.СоздатьДокумент() - ДокументОбъект.
Правильно будет вот так
СвязанныйОбъект = Документы.ВнутреннееПотребление.СоздатьДокумент();
СвязанныйОбъект.Записать();
СвязанныйДокумент = СвязанныйОбъект.Ссылка;
3. user2069136 16.04.24 16:24 Сейчас в теме
(2)
1)Источник = Ссылка;
2)Если СвязанныйДокумент.Ссылка.Пустая() Тогда
3)СвязанныйОбъект = Документы.ВнутреннееПотребление.СоздатьДокумент();
4)СвязанныйОбъект.Записать();
5) СвязанныйДокумент = СвязанныйОбъект.Ссылка
На 4 строчке Выдает такую ошибку.

Значение поля "Дата" не может быть пустой датой
5. Vovan1975 13 16.04.24 18:47 Сейчас в теме
(3)обязательные реквизиты для заполнения в документе это номер и дата. То что они вроде как бы "сами" заполняются в пользовательском режиме - это иллюзия.
4. Vovan1975 13 16.04.24 18:43 Сейчас в теме
ну во первых событие "ПриЗаписи" происходит после записи документа поэтому твое присвоение новосозданного документа не работает.
во-вторых я бы использовал в такой ситуации механизм заполнения по основанию
в третьих для заполнения ревизита придется использовать событие "ПередЗаписью" на сервере, оно уже идет в транзакции записи документа, там нужно создать подчиненный док и записать его чтобы получить ссылку, а проведение/распроведение/перезаполнение уже или в событии "ПриЗаписи".
6. jmw 60 17.04.24 04:34 Сейчас в теме
Может лучше использовать обработчик подписки на события.
Скажем, ПриЗаписи будет обрабатываться только при удачной записи объекта. Следовательно, можно создавать и записывать второй документ или перезаполнять данными из первого.
7. user2069136 17.04.24 09:05 Сейчас в теме
(6)
Всем спасибо большое! Разобрался!
Оставьте свое сообщение

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