При записи программно созданного документа КорректировкаРегистров чистятся движения
☑
0
IvanGorbunov
26.11.18
✎
15:58
УТ 11.4.5 (8.3.10.2561)
Создаю программно документ Корректировка регистров, добавляю движения, но при записи движения пропадают
Вот код:
//инициализируем создание документа
ДокКорректировка = Документы.КорректировкаРегистров.СоздатьДокумент();
ДокКорректировка.Ответственный = Пользователи.ТекущийПользователь();
ДокКорректировка.Дата = Дата;
//таб.часть с названиями регистров
СтрокаТаблицаРегистров = ДокКорректировка.ТаблицаРегистров.Добавить();
СтрокаТаблицаРегистров.Имя = "ВыручкаИСебестоимостьПродаж";
//записываем документ
ДокКорректировка.Записать();
нбВыручкаИСебестоимостьПродаж = ДокКорректировка.Движения.ВыручкаИСебестоимостьПродаж;
нбВыручкаИСебестоимостьПродаж.Записывать = Истина;
//добавляем одну запись
НовДвижение = нбВыручкаИСебестоимостьПродаж.Добавить();
НовДвижение.Активность = Истина;
НовДвижение.Регистратор = ДокКорректировка.Ссылка;
//пишем запись с движением
нбВыручкаИСебестоимостьПродаж.Записать();
//снова записываем документ (без этого тоже движения пустые)
ДокКорректировка.Записать();
1
Cyberhawk
26.11.18
✎
15:59
Не делай так
2
Cyberhawk
26.11.18
✎
16:01
Ты выбери что-то одно - или использовать независимый НЗ (и тогда записывать тоже отдельно), или использовать коллекцию движений документа.
3
IvanGorbunov
26.11.18
✎
16:25
(2) Почему такой код не работает?) Не создает записи, ошибками не ругается
НаборВыручкаИСебестоимостьПродаж = РегистрыНакопления.ВыручкаИСебестоимостьПродаж.СоздатьНаборЗаписей();
НаборВыручкаИСебестоимостьПродаж.Отбор.Регистратор.Установить(Регистратор.Ссылка);
НаборВыручкаИСебестоимостьПродаж.Записывать = Истина;
НовДвижение = НаборВыручкаИСебестоимостьПродаж.Добавить();
НовДвижение.Активность = Истина;
НовДвижение.РасчетПартий = Истина;
НаборВыручкаИСебестоимостьПродаж.Записать();
4
Михаил Козлов
26.11.18
✎
16:43
(3) Не используйте набор записей регистра: сформируйте нужны движения и запишите документ.
Т.е. вместо набора используйте Движения.ВыручкаИСебестоимостьПродаж.
5
IvanGorbunov
26.11.18
✎
16:49
(4) та не получается никак, вот так пробую - ничего.
НаборВыручкаИСебестоимостьПродаж = Регистратор.Движения.ВыручкаИСебестоимостьПродаж;
НаборВыручкаИСебестоимостьПродаж.Записывать = Истина;
НовДвижение = НаборВыручкаИСебестоимостьПродаж.Добавить();
НовДвижение.Активность = Истина;
НовДвижение.РасчетПартий = Истина;
Регистратор.Записать();
6
youalex
26.11.18
✎
16:56
Регистратор.Движения.Записать()
7
Cyberhawk
26.11.18
✎
17:04
(3) Отказ пади взводится, а ты не видишь. ЖР хоть глянь, если уровень регистрации максимальный
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн