База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как записать в регистр накоплений без проведения документа в 1С? › Ответ в теме: Как записать в регистр накоплений без проведения документа в 1С?
В 1С 8.x запись регистра накопления без проведения документа делается через создание набора записей регистра и явное заполнение движений, после чего вызов метода Записать().
Пример кода записи регистра накопления без проведения документа:
// Создаем набор записей регистра накопления
НаборЗаписей = РегистрыНакопления.ИмяРегистра.СоздатьНаборЗаписей();
// Очищаем набор перед заполнением
НаборЗаписей.Очистить();
// Устанавливаем признак записи
НаборЗаписей.Записывать = Истина;
// Добавляем движение (пример для прихода)
Движение = НаборЗаписей.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход; // или Расход
Движение.Период = ТекущаяДата(); // или нужная дата
Движение.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Название товара");
Движение.Количество = 10;
Движение.Характеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("Характеристика");
// Записываем набор записей в регистр
НаборЗаписей.Записать();
Обратите внимание:
— В этом примере не используется документ и не вызывается его проведение.
— Важно правильно заполнить все обязательные измерения и ресурсы регистра.
— Если в регистре есть обязательное поле «Регистратор», его тоже нужно заполнить, например, можно создать фиктивный документ или использовать пустой объект.
Если нужно записать с фиктивным регистратором, можно создать пустой объект документа:
ПустойДокумент = Документы.ПустойДокумент.СоздатьДокумент(); ПустойДокумент.Записать(); НаборЗаписей.Регистратор = ПустойДокумент.Ссылка;
Или можно не заполнять, если регистр не требует.
—
Рекомендую посмотреть здесь: