Имя: Пароль:
1C
1С v8
Как получить доступ к созданным строкам движения в ОбрПроведения?
0 Andy MilkyWay
 
22.08.12
13:58
Конф.УТ лдя Украины, плат. 8.2. Мне нужно в ОбработкеПроведения сформировать движение по регистру сведений на основе только что сформированных движений по другому регистру Продажи. В типовой процедуре по обработке движений происходит следующее:

НаборДвижений = Движения.Продажи;
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
....
//здесь происходит заполнение ТаблицыДвижений
....
НаборДвижений.мПериод = Дата;
НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
Движения.Продажи.ВыполнитьДвижения();


Когда в отладчики смотрю, что хранится в Движения.Продажи.мТаблицаДвижений - там пусто. По другим элементам Движения в соответ. таблице присутствуют строки. Значение реквизита Движения.Продажи.Записывать=ложь. Однако, когда заканчивается обработкаПроведения и документ уже сохранен, то записи в регистре Продажи появляются. Пробовал сделать после отработки типовой процедуры

Движения.Продажи.Записывать=Истина;
Движения.Продажи.Записать();

- не помогает. Как же получить в процессе обработки проведения доступ к уже подготовленным строкам Движения.Продажи.мТаблицаДвижений?
1 Boleev
 
22.08.12
14:00
НаборЗаписей = РегистрыНакопления.Продажи.СоздатьНаборЗаписей();
           НаборЗаписей.Отбор.Регистратор.Значение = Ссылка;
           НаборЗаписей.Прочитать();
           ТЗ = НаборЗаписей.Выгрузить();
2 Andy MilkyWay
 
22.08.12
14:01
(1) О! Спасибо, сейчас попробую
3 Andy MilkyWay
 
22.08.12
14:04
(1) нет, не сработало: точно так же пустая ТЗ получается :(
4 Andy MilkyWay
 
22.08.12
14:06
(2) как я понимаю, здесь мы считываем строки регистра, которые уже сохранены в БД при предыдущем проведении. А они-то еще не сохранены в этом сеансе проведения, наверное?
5 Михаил Козлов
 
22.08.12
14:12
(3) И не получится: набор еще не записан в БД.
Кажется, НаборДвижений.Выгрузить()
6 Aprobator
 
22.08.12
14:15
(1) прочитать незаписанные движения будет довольно проблематично.
7 Andy MilkyWay
 
22.08.12
14:16
(5) Класс! Так - получилось, гран мерси!
2 + 2 = 3.9999999999999999999999999999999...