1C-Code → Как сделать → Чем регистр остатков отличается от регистра оборотов
Остатки — когда вопрос «сколько есть сейчас» имеет смысл. Обороты — когда осмыслен только вопрос «сколько было за период». Выбор делается один раз и меняется потом дорого.
// регистр ОСТАТКОВ — есть приход и расход, есть остаток
РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, )
РегистрНакопления.ТоварыНаСкладах.Обороты(&Начало, &Конец, , )
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Начало, &Конец, , , )
// регистр ОБОРОТОВ — только накопление за период
РегистрНакопления.Продажи.Обороты(&Начало, &Конец, , )
Товар на складе — остаток есть. Выручка — остатка нет: «выручка на 15 марта» ничего не значит, значение имеет только «выручка за март». Первое — регистр остатков, второе — оборотов.
Он хранит таблицу итогов, чтобы быстро отвечать на вопрос про остаток на дату. Она занимает место и пересчитывается при записи. Регистр оборотов легче — там итоги нужны только по периодам.
Приход и Расход. У оборотного регистра движения просто складываются, и попытка задать вид движения даст ошибку.
Ошибка выбора обходится дорого: сменить вид регистра на работающей базе значит перенести данные и переписать все запросы к нему. Если сомневаетесь — спросите себя, будет ли кто-нибудь спрашивать «сколько сейчас». Будет — берите остатки, даже если сегодня это кажется избыточным.
Проверить на практике. В тренажёре такой код запускается на настоящем интерпретаторе языка 1С с демонстрационной базой: справочники, документы, регистры. Без установки платформы и без риска для рабочей базы.