Имя: Пароль:
1C
1С v8
Запись в регистры сведений в модуле проведения документа
0 ssvdm
 
20.09.13
11:39
Всех приветствую!

Товарищи, подскажите правильный путь.
Самописная конфигурация, переношу базу с 7ки на 8.2 попутно пытаясь использовать всё вкусное, что появилось в 8.
Обычное приложение, Сервер приложений 32бит, 8.2.18.109, PostgreSQL 9

    тз = Запрос.Выполнить().Выгрузить();
    Движения.МойРегистр.Записывать = Истина;
    Движения.МойРегистр.Загрузить(тз);

Работает, но в случае больших движений, больше 10000 строк, клиент валится с ошибкой "Недостаточно памяти на сервере 1с предприятия".
При том, что памяти на сервере 4 гигабайта, это выделенная машина, и сеанс ни разу не скушал больше 140 мегабайт.

Ок, пытаюсь записать движения порциями:

    выб = Запрос.Выполнить().Выбрать();
    й = 0;
    Движения.МойРегистр.Записывать = Истина;
    пока выб.следующий() цикл
        зап = Движения.МойРегистр.Добавить();
        зап.Период = выб.период;
        зап.Регистратор = ЭтотОбъект.Ссылка;
        зап.Измерение = выб.Измерение;
        ...
        й = й + 1;
        если й%1000=0 тогда
            Движения.МойРегистр.записать(Ложь);
        конецЕсли;
    конецЦикла;
    Движения.МойРегистр.записать(Ложь);

Но в регистре после проведения вообще пусто. Чувствую, что делаю что-то не так, но вот что?
Помогите, пожалуйста.
1 Allexe
 
20.09.13
11:46
(0) Попробуй через набор записей

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

Твой код где выполняется вообще? В документе?
2 Allexe
 
20.09.13
11:47
(0) А лучше отладчиком посмотри добавляются записи вообще?
3 ssvdm
 
20.09.13
12:06
(1) Это модуль документа, ОбработкаПроведения
Отладчиком посмотрю, спасибо.

Пока с кодом экспериментировал, пока не было последнего регистр.записать() (который вне цикла), получалось так, что в регистр попадали только записи с последнего прохода цикла.