Имя: Пароль:
1C
1С v8
Движения в подписке на событие
0 NickAn
 
06.08.11
00:21
Есть подписка на событие при проведении. Добавляются управленческие движения. Движения формируются анализируя уже готовые по типовой конфе.
Раньше чтобы прочитать движения делал вот такой цикл

Для Н = 0 По Источник.Движения.Количество()-1 Цикл
           Если Источник.Движения[Н].Количество() > 0 Тогда
               Источник.Движения[Н].Записать();
           Иначе
               Источник.Движения[Н].Прочитать();
               Источник.Движения[Н].Записать();
           КонецЕсли;
       КонецЦикла;

Раньше все работало, но вот в документе возврат товара от покупателя получилась проблемка, когда товар вернули по ордерной схеме. Стала пропадать строка прихода товара обратно по партии.
Выяснил, долго смотря код проведения, что вначале делается запись по возврату по ордеру, а потом делается всякий там анализ, и перед добавлением еще строки делается прочитать() и добавляется еще одна строка, которая возвращает проданную партию.
Но тот код который написан выше определяет, что запись в регистре уже есть и делает запись удаляет вторую строку партии.
Вопрос: как можно обойти эту ситуацию. В кратце как узнать что регистр уже читался и дописывался?
1 AlexNew
 
06.08.11
00:24
(0) Почитать про перевод на 8.2?
2 kotletka
 
06.08.11
00:26
допили регистр как вариант
3 NickAn
 
06.08.11
00:34
(1) и что я должен об это знать. Я уже много чего читал о переводе.
4 NickAn
 
06.08.11
01:44
Для Н = 0 По Источник.Движения.Количество()-1 Цикл
       Если Источник.Движения[Н].Количество() > 0 Тогда
           мТаблицаДвижений = Источник.Движения[Н].Выгрузить();
           Источник.Движения[Н].Прочитать();
           Источник.Движения[Н].Записать();
           
           Если Источник.Движения[Н].Количество() = 0 Тогда
               Источник.Движения[Н].Загрузить(мТаблицаДвижений);
               Источник.Движения[Н].Записать();
           КонецЕсли;
       Иначе
           Источник.Движения[Н].Прочитать();
           Источник.Движения[Н].Записать();
       КонецЕсли;
   КонецЦикла;

Сделал так.