Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

При записи программно созданного документа КорректировкаРегистров чистятся движения

При записи программно созданного документа КорректировкаРегистров чистятся движения
Я
   IvanGorbunov
 
26.11.18 - 15:58
УТ 11.4.5 (8.3.10.2561)
Создаю программно документ Корректировка регистров, добавляю движения, но при записи движения пропадают
Вот код:

    //инициализируем создание документа

    ДокКорректировка = Документы.КорректировкаРегистров.СоздатьДокумент();
    ДокКорректировка.Ответственный = Пользователи.ТекущийПользователь();
    ДокКорректировка.Дата          = Дата;
    
    //таб.часть с названиями регистров

    СтрокаТаблицаРегистров = ДокКорректировка.ТаблицаРегистров.Добавить();
    СтрокаТаблицаРегистров.Имя = "ВыручкаИСебестоимостьПродаж";

    //записываем документ

    ДокКорректировка.Записать();
    
    нбВыручкаИСебестоимостьПродаж = ДокКорректировка.Движения.ВыручкаИСебестоимостьПродаж;
    нбВыручкаИСебестоимостьПродаж.Записывать = Истина;

    //добавляем одну запись    

    НовДвижение = нбВыручкаИСебестоимостьПродаж.Добавить();
    НовДвижение.Активность  = Истина;
    НовДвижение.Регистратор = ДокКорректировка.Ссылка;

    //пишем запись с движением

    нбВыручкаИСебестоимостьПродаж.Записать();

    //снова записываем документ (без этого тоже движения пустые)

    ДокКорректировка.Записать();
 
 
   Cyberhawk
 
1 - 26.11.18 - 15:59
Не делай так
   Cyberhawk
 
2 - 26.11.18 - 16:01
Ты выбери что-то одно - или использовать независимый НЗ (и тогда записывать тоже отдельно), или использовать коллекцию движений документа.
   IvanGorbunov
 
3 - 26.11.18 - 16:25
(2) Почему такой код не работает?) Не создает записи, ошибками не ругается
    НаборВыручкаИСебестоимостьПродаж = РегистрыНакопления.ВыручкаИСебестоимостьПродаж.СоздатьНаборЗаписей();
    НаборВыручкаИСебестоимостьПродаж.Отбор.Регистратор.Установить(Регистратор.Ссылка);
    
    НаборВыручкаИСебестоимостьПродаж.Записывать = Истина;
    
    НовДвижение = НаборВыручкаИСебестоимостьПродаж.Добавить();
    НовДвижение.Активность   = Истина;
    НовДвижение.РасчетПартий = Истина;
    
    НаборВыручкаИСебестоимостьПродаж.Записать();
   Михаил Козлов
 
4 - 26.11.18 - 16:43
(3) Не используйте набор записей регистра: сформируйте нужны движения и запишите документ.
Т.е. вместо набора используйте Движения.ВыручкаИСебестоимостьПродаж.
   IvanGorbunov
 
5 - 26.11.18 - 16:49
(4) та не получается никак, вот так пробую - ничего.

    НаборВыручкаИСебестоимостьПродаж = Регистратор.Движения.ВыручкаИСебестоимостьПродаж;
        
    НаборВыручкаИСебестоимостьПродаж.Записывать = Истина;
        
    НовДвижение = НаборВыручкаИСебестоимостьПродаж.Добавить();
    НовДвижение.Активность   = Истина;
    НовДвижение.РасчетПартий = Истина;
    
    Регистратор.Записать();
   youalex
 
6 - 26.11.18 - 16:56
Регистратор.Движения.Записать()
   Cyberhawk
 
7 - 26.11.18 - 17:04
(3) Отказ пади взводится, а ты не видишь. ЖР хоть глянь, если уровень регистрации максимальный

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует