Регистры накопления и сведений 1С решают разные задачи: накопление хранит числовые движения и позволяет получать остатки или обороты, а регистр сведений хранит значения свойств в разрезах, при необходимости с периодичностью и историей. Остаток товара относится к накоплению, актуальная цена или настройка обычно относится к сведениям.
У обоих объектов есть измерения, ресурсы и реквизиты, но смысл различается. В накоплении ресурс является числовой величиной движения: количество, сумма, вес. Записи часто создаются при проведении документа и связаны с регистратором. Регистр сведений описывает сочетание значений и может быть независимым или подчинённым регистратору. Периодический регистр позволяет получать состояние на момент через срез. Перед созданием объекта выпишите три реальных вопроса отчёта и ожидаемую гранулярность данных. Это быстро показывает лишние измерения и неверный выбор вида регистра.
Приход, расход, остатки и обороты числовых ресурсов.
Цена, статус, курс, настройка или характеристика.
Разрезы, по которым требуется уникальность и аналитика.

Регистры накопления и сведений 1С в запросах
Для склада используйте виртуальную таблицу Остатки регистра накопления, а для цены на дату виртуальную таблицу СрезПоследних периодического регистра сведений. Эти таблицы учитывают структуру платформы и обычно лучше прямого чтения всех физических записей с ручным вычислением состояния.
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Склад,
Остатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварныеЗапасы.Остатки(
&Момент,
Склад = &Склад
) КАК Остатки
ГДЕ
Остатки.КоличествоОстаток <> 0- Запрос возвращает остаток на выбранный момент по складу
- Платформа использует виртуальную таблицу и рассчитанные итоги регистра
Для цены запросите РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Момент, ВидЦен = &ВидЦен). Отборы передавайте в параметры виртуальной таблицы, когда это соответствует задаче, чтобы платформа раньше ограничила данные. Не считайте остаток суммой всех записей без учёта вида движения, периода и итогов. У оборотного регистра нет осмысленного остатка, только величина оборота.
Сравнение объектов
| Элемент | Что означает | Что делать |
|---|---|---|
| Складской остаток | Регистр накопления остатков | Количество по товару и складу |
| Продажи за месяц | Регистр накопления оборотов | Сумма и количество продаж |
| Цена на дату | Периодический регистр сведений | Срез последних по виду цены |
| Настройка пользователя | Непериодический регистр сведений | Значение по пользователю |
| История статусов | Периодический регистр сведений | Срез и интервалы по объекту |
Измерения влияют на уникальность и способ получения данных, поэтому не добавляйте каждое поле как измерение. Реквизит хранит дополнительную информацию записи и обычно не задаёт основной разрез итогов. В накоплении выбирайте вид Остатки, когда приход и расход формируют состояние, и Обороты, когда имеет смысл только поток за период. Ошибка модели данных потом проявляется в сложных запросах и неверных итогах.

Практика: остатки ТоварныеЗапасы и СрезПоследних по ценам на одну дату
Соберите в учебной базе два объекта: регистр накопления остатков ТоварныеЗапасы и периодический регистр сведений ЦеныНоменклатуры. Проведите приход и расход, внесите две записи цены на разные даты, а потом получите остаток и цену на один и тот же момент в консоли запросов. Успех выглядит так: КоличествоОстаток сходится с приходом минус расход, а СрезПоследних отдаёт одну строку на пару Номенклатура и ВидЦен.
- Регистр ТоварныеЗапасы. Создайте регистр накопления вида Остатки с измерениями Номенклатура и Склад и ресурсом Количество. В дереве объекта конфигуратора появятся виртуальные таблицы Остатки и ОстаткиИОбороты.
- Движения приход и расход. Заведите документ и в модуле проведения запишите движение Приход на 10 единиц и Расход на 4 по одному складу. Откройте список движений регистра: у каждой записи видны регистратор, период и вид движения.
- Регистр ЦеныНоменклатуры. Создайте периодический регистр сведений с измерениями Номенклатура и ВидЦен и ресурсом Цена, периодичность поставьте в пределах дня. Внесите две записи по одному товару на разные даты, например 100 и 120.
- Запрос остатков на момент. В консоли запросов выберите Номенклатуру, Склад и КоличествоОстаток из РегистрНакопления.ТоварныеЗапасы.Остатки(&Момент, Склад = &Склад) с условием КоличествоОстаток <> 0. На дату после обоих документов должно вернуться 6 единиц по указанному складу.
- Срез последних цен. Тем же параметром &Момент запросите РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Момент, ВидЦен = &ВидЦен). Подставьте дату между двумя записями: срез обязан вернуть более раннюю цену 100, а не последнюю запись регистра.
Сломайте условие намеренно: уберите параметр &Момент из вызова виртуальной таблицы Остатки и выполните запрос заново. Платформа отдаст остаток на текущий момент, и число разойдётся с ручной проверкой по документам, хотя ошибки в консоли не будет. Потом уберите Склад из измерений регистра: разрез по складу пропадёт, останется общее количество по номенклатуре. Верните измерение и параметр и убедитесь, что прежние 6 единиц по складу вернулись.
Дальше добавьте третий объект: регистр накопления вида Обороты для продаж за месяц. Убедитесь, что остатка у него нет, есть только сумма и количество за период, поэтому виртуальная таблица называется Обороты. Затем заведите непериодический регистр сведений для настройки пользователя, где измерение одно, а ресурс строковый. Когда три модели соберутся, выведите остатки отчётом на СКД и сверьте итоги с результатом консоли запросов.
Частые ошибки и почему они появляются
Новичок иногда создаёт регистр сведений для складского остатка и вручную перезаписывает число. При одновременной работе это создаёт гонки и теряет историю движений. Обратная ошибка: использовать накопление для строковой настройки, где нет числового движения. Третья проблема состоит в прямом чтении записей вместо подходящей виртуальной таблицы.
Спросите, нужен остаток на момент или только оборот за период.
Оставьте разрезы, которые определяют смысл и уникальность записи.
Передавайте дату в Остатки или СрезПоследних и проверяйте границы.
Самопроверка
Чем регистр накопления отличается от регистра сведений в 1С?
Регистр накопления хранит числовые движения и позволяет получить остатки или обороты, а регистр сведений хранит значения свойств в разрезах измерений. Накопление отвечает на вопрос, сколько стало, сведения на вопрос, какое значение действует. Измерения, ресурсы и реквизиты есть у обоих, различается смысл ресурса.
Где хранить остаток товара на складе?
Остаток товара хранят в регистре накопления вида Остатки с измерениями Номенклатура и Склад. Записи создаются при проведении документов и связаны с регистратором, а состояние на дату платформа отдаёт через виртуальную таблицу Остатки. Держать остаток в регистре сведений и перезаписывать число вручную опасно: при одновременной работе появляются гонки и теряется история движений.
Как получить цену на конкретную дату в 1С?
Цену на дату получают из периодического регистра сведений через виртуальную таблицу СрезПоследних, например РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Момент, ВидЦен = &ВидЦен). Срез возвращает последнюю запись, действующую на переданный момент. Отбор по виду цены передавайте параметром виртуальной таблицы, чтобы платформа ограничила данные раньше.
Что такое измерение регистра?
Измерение это разрез, по которому разделяются данные регистра и определяется уникальность записи. По измерениям строятся итоги и отборы, поэтому Номенклатура и Склад в регистре остатков являются измерениями. Поля, которые не задают разрез итогов, обычно делают реквизитами записи.
Когда выбирать вид Обороты вместо Остатков?
Вид Обороты выбирают, когда осмыслен только поток за период: продажи за месяц, начисленные бонусы, отработанные часы. У оборотного регистра нет остатка, есть величина оборота. Если приход и расход формируют текущее состояние, нужен вид Остатки.
Можно ли посчитать остаток суммой всех записей регистра?
Считать остаток простой суммой физических записей не стоит: придётся учитывать вид движения, период и рассчитанные итоги. Виртуальная таблица Остатки делает это сама и опирается на структуру хранения платформы. Прямое чтение всех записей с ручным вычислением состояния обычно медленнее и чаще даёт неверные итоги.
Что делать дальше
Спроектируйте два учебных объекта: остатки по складу и цены по виду цен, затем получите их на одну дату. Общую логику можно тренировать на курсе SQL. Запросы закрепите в введении для начинающих, а вывод данных сделайте по статье про первый отчёт СКД.
