Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Почему каждая следующая запись в регистр накопления то добавляет то удаляет строки?

Почему каждая следующая запись в регистр накопления то добавляет то удаляет строки?
Я
   Serjevski
 
17.07.19 - 18:08
Есть код:

    Записи = РегистрыНакопления.кт_ВзаиморасчетыЭкспедирования.СоздатьНаборЗаписей();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    если ВыборкаДетальныеЗаписи.Количество() = 0 тогда
        Возврат;
    КонецЕсли;
    Записи.Отбор.Регистратор.Установить(Поступление);

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл    
        Зап = Записи.ДобавитьРасход();
        зап.Организация = ВыборкаДетальныеЗаписи.Организация;
        зап.Период = Дата;
        зап.ДоговорСКонтрагентом = ВыборкаДетальныеЗаписи.абрДоговорЗаказчика;
        зап.Контрагент = ВыборкаДетальныеЗаписи.абрЗаказчик;
        зап.ДолгЗаказчика = ВыборкаДетальныеЗаписи.ЗаказчикСумма;
        зап.ЗЭ = ВыборкаДетальныеЗаписи.Ссылка;
    КонецЦикла;
    Записи.Записать(Истина);


Почему то при проведении одного и того же документа, четко и повторяем записи то появляются то исчезают.
Код вызывается из подписки на событие "при записи".

Отладчиком проходил, каждый раз множество Записи содержит одно и то же количество записей.
 
 
   RomanYS
 
1 - 17.07.19 - 18:11
При проведении проводки надо писать через Документ.Движения, а не через СоздатьНабор
   shuhard
 
2 - 17.07.19 - 18:18
(0)[ то появляются то исчезают. ]
так и должно быть
поставь отстановку перед записью регистра
а в (1) ответ как надо
   Serjevski
 
3 - 17.07.19 - 18:29
А разве в подписке Документ.Движения доступны?..
   Serjevski
 
4 - 17.07.19 - 18:34
(2) А почему так и должно быть? В чем логика?
   RomanYS
 
5 - 17.07.19 - 18:36
(3) Конечно. В подписке доступно всё, что доступно в основном обработчике.
   Serjevski
 
6 - 17.07.19 - 19:21
(5) (2) Коллеги, спасибо большое, заработало.
Однако понимания логики не прибавилось.
Эмпирическим путем выяснил что "моргание" записей происходить если вызывать метод Движения.Записать();
Если же его не вызывать обходясь булевым полем Записывать = истина, тогда нормально.

Зачем тогда есть и поле и метод, в чем соль их использования?

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