Имя: Пароль:
1C
1С v8
Принудительная регистрация движений по документу в плане обмена
0 Анатоль
 
17.04.15
13:06
Есть такой программный код:

        ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, ДокументСсылка);
        
        Если ДокументСсылка.Проведен Тогда
            // теперь нужно зарегистрировать все движения документа
            ДокОбъект = ДокументСсылка.ПолучитьОбъект();
            
            Для Каждого ТаблицаДвижений из ДокОбъект.Движения Цикл
                ТаблицаДвижений.Прочитать();
                // здесь получаем набор записей регистра с установленным отбором по регистратору
                Если ТаблицаДвижений.Количество() > 0 Тогда
                    ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, ТаблицаДвижений);
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;


проблема в том, что регистрируются не все записи по документу, а только одна - первая

где я ошибся?
1 Анатоль
 
17.04.15
13:06
релиз 1С:Предприятие 8.2 (8.2.19.83)
2 Torquader
 
17.04.15
13:48
Так по регистру, насколько я помню, каждую запись отдельно нужно регистрировать - иначе там какие-то проблемы с отбором потом.
3 Анатоль
 
17.04.15
13:50
(2) Когда я пытался каждую запись в отдельности регистрировать как раз и были проблемы с отбором :)
4 Анатоль
 
17.04.15
13:53
ТаблицаДвижений - имеет тип Набор записей с установленным отбором по регистратору. По документации вроде так и должно быть.
5 Анатоль
 
17.04.15
14:10
Разобрался - всё-таки код правильно работает, и всё что надо регистрирует.
6 Serg_1960
 
17.04.15
14:19
Я бы порекомендовал проверять движения на предмет вхождения в состав плана обмена

ДвиженияДокумента = Объект.Движения;
Для каждого Движение из ДвиженияДокумента цикл
   Движение.Прочитать();
   Если ПланОбмена.Метаданные().Состав.Содержит(Движение.Метаданные()) Тогда
      ПланыОбмена.ЗарегистрироватьИзменения(ПланОбменаВыбор,Движение);
   КонецЕсли;
КонецЦикла;
7 Лефмихалыч
 
17.04.15
14:21
етить, у вас тут накурено!
регистры мигрируюти регистрируются наборами записей, а не отдельными записями. При чем не просто наборами записей. при этом регистры накопления мигрируют наборами с отбором по регистратору, а регистры сведений мигрируют наборами по значениям измерений, у которых установлено свойство "Основной отбор".
8 Лефмихалыч
 
17.04.15
14:23
так что вот это "проблема в том, что регистрируются не все записи по документу, а только одна - первая " - вранье. Такое технически не возможно.
9 Анатоль
 
17.04.15
15:00
(7) (8)  Полностью согласен. Так всё и происходит.
Меня смутило то, что в зарегистрированных объектах по регистру я видел только один набор записей, а не много записей.
Но уже разобрался
10 Torquader
 
17.04.15
15:31
Ещё можно открыть консоль запросов и посмотреть, что живёт в таблице регистрации.