Имя: Пароль:
1C
1С v8
Запись в РС работает по разному для разных документов
0 PuhUfa
 
02.06.17
16:44
Жутко туплю, подскажите в какую сторону еще копать...
Есть РС "СписанныеТовары" подчиненный регистратору с периодичностью по его позиции.
В обработке проведения документа есть код:

    НаборДвижений = Движения.СписанныеТовары;
    // Получим таблицу значений, совпадающую со струкутрой набора записей регистра.
    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.Очистить();
    // Заполним таблицу движений.
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ТаблицаПоТоварам, ТаблицаДвижений);
    // Недостающие поля.
    Инд = 0;
    Для каждого Строка Из ТаблицаДвижений Цикл
        Инд = Инд+1;
        Строка.НомерСтрокиДокумента = Инд;
    КонецЦикла;
    ТаблицаДвижений.ЗаполнитьЗначения(Дата,   "Период");
    ТаблицаДвижений.ЗаполнитьЗначения(Ссылка, "Регистратор");
    ТаблицаДвижений.ЗаполнитьЗначения(Истина, "Активность");
    НаборДвижений.мПериод          = Дата;
    НаборДвижений.мТаблицаДвижений = ТаблицаДвижений;
    Если Не Отказ Тогда
        Движения.СписанныеТовары.ВыполнитьДвижения();
    КонецЕсли;

ВыполнитьДвижения() - экспортная процедура в модуле набора записей РС где происходит заполнение ресурсов.
Этот код работает и при проведении документа запись в РС делается.
Теперь беру другой документ, отмечаю, что он тоже теперь делает движения по этому РС. Копирую вышеуказанный код в ОбработкуПроведения, документ проводиться, но запись в РС не появляется. Ошибок не выскакивает. Отладчиком все проходится и показывает, что все ресурсы заполняются.
Если же в конце вышеуказанного кода дописать
НаборДвижений.Записать();
то и для второго документа запись в РС делается.
Почему для первого документа запись записывается сама, а для второго нужно принудительно записывать? Где то какую то галочку забыл поставить? Направьте на светлую сторону. Спс.
1 Serg_1960
 
02.06.17
16:54
Пятница, вечер, жесть.
2 Letum
 
02.06.17
16:54
Свойства документа смотри внимательнее
3 Serg_1960
 
02.06.17
17:03
Свойство "Запись движений при проведении" в значение "Записывать модифицированные".
4 PuhUfa
 
02.06.17
17:09
(2)(3) Спасибо вам огромное!!! Это то что доктор прописал!!!
5 Serg_1960
 
02.06.17
17:12
И кстати: Период и Активность записываются в самом модуле регистра при вызове ВыполнитьДвижения(). В частности, для этого используется мПериод.
6 PuhUfa
 
02.06.17
17:22
(5) Это код БИТовцев как и конфа, я на это даже пока не смотрю...

Перем мПериод          Экспорт; // Период движений
Перем мТаблицаДвижений Экспорт; // Таблица движений

// Выполняет движения по регистру.
//
// Параметры:
//  Нет.
//
Процедура ВыполнитьДвижения() Экспорт

    мТаблицаДвижений.ЗаполнитьЗначения( мПериод, "Период");
    мТаблицаДвижений.ЗаполнитьЗначения( Истина,  "Активность");

    ОбщегоНазначения.ВыполнитьДвижениеПоРегистру(ЭтотОбъект);

КонецПроцедуры // ВыполнитьДвижения()