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