Разработка и Конфигурация · 13 мин
Что такое регистр в 1С и как он работает
Что такое регистр в 1С простыми словами: виды регистров (сведений, накопления, расчёта, бухгалтерии), измерения, ресурсы, движения документов и примеры настройки.
Регистр в 1С — это объект конфигурации, предназначенный для хранения накопленных данных: остатков товаров, взаиморасчётов, цен номенклатуры, кадровых сведений и другой информации, которая изменяется во времени. В отличие от справочника, который хранит относительно постоянные данные, регистр фиксирует историю изменений и позволяет получить состояние показателя на любой момент времени.
Практически все учётные данные в типовых конфигурациях в итоге попадают в регистры. Когда вы проводите документ «Поступление товаров», программа не просто сохраняет сам документ — она записывает строки (движения) в регистры накопления «Товары на складах», «Взаиморасчёты с контрагентами» и другие. Отчёты, в свою очередь, читают данные именно из регистров, а не из документов напрямую.
Понимание устройства регистров необходимо и пользователю, и разработчику. Пользователю — чтобы понимать, откуда отчёт берёт цифры и почему они могут расходиться. Разработчику — чтобы правильно проектировать учёт, писать движения документов и оптимизировать запросы.
Зачем нужны регистры и чем они отличаются от справочников и документов
Справочник хранит нормативно-справочную информацию: контрагенты, номенклатура, склады. Документ фиксирует факт хозяйственной операции: приход, продажу, начисление. Регистр отвечает на вопрос «сколько и где» — сколько товара осталось на складе, какой долг у покупателя, какая цена действовала на товар вчера.
Ключевое отличие регистра — измерение времени. Каждая запись регистра либо привязана к моменту времени (периоду), либо к документу, который её создал. Благодаря этому платформа умеет автоматически рассчитывать остатки и обороты за любой период, не перебирая все документы заново.
Ещё одно важное свойство — разделение хранения и представления. Документ — это «источник правды» об операции, а регистр — агрегированное отражение этой операции в учёте. Один документ может делать движения сразу в несколько регистров, и наоборот: один регистр наполняется разными видами документов.
Четыре вида регистров в 1С
Платформа «1С:Предприятие 8» предоставляет четыре вида регистров, каждый под свою задачу. Выбор вида определяет структуру таблиц, поведение при проведении и возможности запросов.
| Вид регистра | Что хранит | Типичные примеры |
|---|---|---|
| Сведений | Значения показателей в разрезе измерений, с периодичностью или без | Цены номенклатуры, курсы валют, штрихкоды, ФИО сотрудников |
| Накопления (остатки) | Остатки: приход и расход сворачиваются в итог | Товары на складах, деньги в кассе, взаиморасчёты |
| Накопления (обороты) | Только обороты за период, без остатка | Объёмы продаж, количество оказанных услуг |
| Расчёта | Результаты периодических расчётов с вытеснением | Начисления зарплаты, отпускные, больничные |
Регистр бухгалтерии в типовых решениях также относится к регистрам — он хранит проводки с привязкой к плану счетов и поддерживает корреспонденцию счетов. По сути это специализированный регистр для бухгалтерского и налогового учёта.
Регистры сведений
Регистр сведений хранит значение показателя в разрезе измерений. Например, регистр «Цены номенклатуры» хранит цену (ресурс) для комбинации «номенклатура + тип цен» (измерения). Если регистр периодический, значение действует с даты записи до следующей записи — так хранится история изменения цен.
Регистры сведений бывают независимыми (записи вводятся вручную или обработкой) и подчинёнными регистратору (записи создаются документом). Периодичность может быть в пределах секунды, дня, месяца и т.д. — от неё зависит точность хранения истории.
Регистры накопления
Регистр накопления вида «Остатки» хранит движения двух типов: приход и расход. Платформа автоматически поддерживает таблицу итогов, поэтому запрос остатка на дату выполняется быстро. Вид «Обороты» хранит только суммы движений без вычисления остатка — он подходит для показателей, где остаток бессмыслен, например для объёма продаж.
Измерения, ресурсы и реквизиты
Структура любого регистра строится из трёх групп полей. Измерения — это разрезы учёта, «координаты» записи: склад, номенклатура, организация, сотрудник. Ресурсы — хранимые значения: количество, сумма, цена. Реквизиты — дополнительная информация о записи, не участвующая в итогах: комментарий, ответственный, номер партии.
Правильный выбор измерений критичен. Каждое измерение увеличивает детализацию итогов: если в регистр «Товары на складах» добавить измерение «Серия», остатки будут храниться по каждой серии отдельно, что замедлит проведение и увеличит объём данных. Измерение стоит добавлять только если по этому разрезу реально нужны итоги в отчётах.
Обратная ошибка — отсутствие нужного измерения. Если взаиморасчёты ведутся в разрезе договоров, а измерение «Договор» в регистре не предусмотрено, получить задолженность по конкретному договору штатными средствами не получится. Изменение состава измерений в действующей базе — серьёзная доработка, требующая переноса данных.
Движения документов и регистратор
Записи в подчинённые регистры создаются при проведении документа — это называется движениями. Документ, создавший записи, называется регистратором, а ссылка на него хранится в служебном поле «Регистратор» каждой записи. При отмене проведения документа его движения удаляются автоматически.
Для разработчика движения формируются в обработчике «ОбработкаПроведения» модуля документа. Типовой подход — заполнить набор записей коллекции «Движения» и присвоить свойству «Записывать» значение Истина. Платформа сама позаботится о транзакции и блокировках.
Движения.ТоварыНаСкладах.Записывать = Истина;
Для Каждого СтрокаТовара Из Товары Цикл
Движение = Движения.ТоварыНаСкладах.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = СтрокаТовара.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = СтрокаТовара.Количество;
КонецЦикла;
Найти, какие регистры затрагивает конкретный документ, можно в пользовательском режиме: откройте проведённый документ и используйте команду перехода к движениям (в типовых интерфейсах — «Ещё → Движения документа» или отчёт по движениям). В конфигураторе связь видна на закладке «Движения» в свойствах документа.
Итоги, границы и производительность
Для регистров накопления платформа хранит отдельную таблицу итогов, которая пересчитывается при проведении документов. Режим итогов влияет на скорость: если отчёты чаще строятся за текущий период, используется режим «быстрых» текущих итогов. В типовых конфигурациях настройки итогов подобраны под штатные сценарии и менять их без необходимости не стоит.
На больших объёмах данных важна дата запрета изменения данных и регулярное закрытие периодов: чем меньше открытый период, тем меньше записей приходится обрабатывать при перепроведении. Также следите за индексированием: измерения регистров индексируются платформой автоматически, но запросы с соединениями по неиндексированным полям могут стать узким местом.
Признак проблем с производительностью регистра — резкое замедление проведения документов и построения отчётов при росте базы. Диагностику начинают с технологического журнала и замера длительных запросов, а не с изменения структуры конфигурации.
Как выбрать вид регистра для своей задачи
При проектировании собственного учёта или доработке конфигурации определяющий вопрос — нужен ли остаток. Если показатель имеет смысл «на дату» (товар на складе, долг клиента), выбирайте регистр накопления вида «Остатки». Если важна только сумма за период (продажи за месяц) — вид «Обороты», он проще и быстрее.
Если нужно хранить значение показателя с историей, но без накопления (цена, ставка, статус), подходит периодический регистр сведений. Если история не нужна — непериодический регистр сведений или реквизит справочника. Для начислений с периодом действия и вытеснением (зарплата, отпуска) предназначен регистр расчёта.
Как выбрать вид регистра
После выбора вида проверьте решение на практике: создайте тестовый документ, сформируйте движения и постройте отчёт по регистру. Если итоги сходятся с ожидаемыми и отчёт строится за приемлемое время — структура выбрана верно.
Как проверить корректность регистра
Остаток = приход минус расход за весь период
Расхождение без объяснимых причин — ищите ручные правки или непроведённые документы
Каждая строка табличной части отражена в регистре с верным видом движения
Часть строк отсутствует или вид движения перепутан
Отчёт за типовой период строится за секунды
Отчёт выполняется минутами — проверяйте параметры виртуальных таблиц и индексы
Частые вопросы о регистрах 1С
Чем регистр отличается от справочника?
Справочник хранит относительно постоянные данные — карточки объектов (контрагенты, товары). Регистр хранит изменяющиеся во времени показатели с историей: остатки, обороты, цены на дату. Один и тот же товар существует в справочнике в единственном экземпляре, а его остатки в регистре меняются с каждым документом.
Можно ли восстановить регистр, если записи повреждены?
Да, если записи подчинены регистратору: достаточно перепровести документы за нужный период, и движения сформируются заново. Для независимых регистров сведений восстановление возможно только из резервной копии, поэтому такие регистры требуют регулярного резервного копирования.
Почему отчёт показывает другие цифры, чем список документов?
Отчёт читает регистры, а не документы. Типичные причины расхождений: непроведённые или помеченные на удаление документы, ручная правка движений, разные отборы по организации или периоду. Начните с отчёта по движениям конкретного документа и сравните их с табличной частью.
Что такое срез последних и когда он нужен?
Срез последних — виртуальная таблица периодического регистра сведений, возвращающая значение, актуальное на указанную дату. Она нужна, чтобы узнать, например, какая цена или какой курс валюты действовали на дату документа, не перебирая всю историю записей вручную.
Влияет ли количество измерений на скорость работы?
Да. Каждое измерение увеличивает детализацию итогов и объём хранимых данных, что замедляет проведение документов и расчёт итогов. Добавляйте измерение только если по этому разрезу действительно нужны остатки или обороты в отчётах.
Можно ли добавить новый регистр в типовую конфигурацию?
Можно, если конфигурация не находится на полной поддержке без возможности изменения, либо через механизм расширений. Перед изменением сделайте резервную копию и учтите, что доработанные объекты потребуют внимания при каждом обновлении конфигурации.
Что важно запомнить
Регистр — основное хранилище учётных данных в 1С: документы пишут в него движения, отчёты читают итоги. Выбирайте вид регистра по задаче: остатки — регистр накопления «Остатки», история значений — периодический регистр сведений. Не правьте записи напрямую, а исправляйте через перепроведение документов.