
В системе 1С:Предприятие регистры представляют собой специализированные объекты метаданных, предназначенные для хранения информации, необходимой для ведения учета. Существует несколько типов регистров: накопления, бухгалтерии, сведений и расчета. Каждый из них решает строго определенные задачи и имеет уникальные правила обработки данных.
Регистры накопления отвечают за количественно-суммовой учет. Они делятся на приходные, расходные и балансные. Взаимодействие с ними требует точного понимания механизма движения ресурсов: например, при оформлении документа «Поступление товаров» данные записываются в регистр накопления с видом движения «Приход», что влияет на остатки и доступность ресурсов для других операций.
Регистры сведений используются для хранения неагрегированной информации, связанной с объектами учета: ставки НДС, курсы валют, настройки пользователей и пр. Они не ведут учет остатков, но критичны для формирования корректных бизнес-правил. Важно соблюдать принцип актуальности записей: каждая запись должна быть валидна на определенный момент времени, иначе система может использовать устаревшие значения при расчетах.
Регистры расчета применяются в подсистемах расчета зарплаты и налогов. Они поддерживают механизм периодических и событийных расчетов. Использование подобных регистров требует понимания порядка их пересчета, регламентов и структуры зависимости между записями. Неправильная настройка может привести к ошибкам при начислении заработной платы и формировании отчетности.
Регистры бухгалтерии отражают проводки по счетам бухгалтерского учета. Они автоматически заполняются при проведении документов, связанных с финансовыми операциями. Разработка планов счетов и контроль корреспонденций на этом уровне требует строгого соблюдения логики бухгалтерского учета и синхронизации с другими регистрами.
Грамотная настройка и использование регистров обеспечивает точность учета, корректное формирование отчетности и стабильную работу прикладного решения. При разработке необходимо строго придерживаться концепции разделения данных по типам учета и исключать дублирование информации между регистрами.
Как выбрать тип регистра: накопления, сведений или бухгалтерии

Регистры накопления используются, если требуется контролировать остатки и обороты. Они применяются для учета товаров, денежных средств, расчетов с контрагентами. Например, для ведения остатков на складе или контроля дебиторской задолженности следует создать регистр накопления с типом «Остатки» или «Обороты» в зависимости от задачи. При необходимости движения по субконто – использовать измерения, отражающие аналитики учета.
Регистр сведений подходит для хранения параметров, не связанных с количественными изменениями. Его используют для записи настроек, параметров расчета зарплаты, информации о графиках работы, лимитах, курсах валют. Структура регистра сведений задается с учетом периодичности, состава измерений и ресурсов. Если параметр может меняться во времени, необходимо указать периодичность и использовать актуальные значения.
Бухгалтерские регистры предназначены для отражения операций в проводках. Выбираются в случае, если данные должны участвовать в формировании бухгалтерской или налоговой отчетности. Для их использования необходимо наличие соответствующего плана счетов. Регистр бухгалтерии требует точного указания счетов, субконто и правильной настройки корреспонденции. Применим при автоматизации операций, попадающих в баланс и отчет о прибылях и убытках.
Выбор типа регистра зависит от цели: фиксируются ли количественные показатели, описательные параметры или требуется формировать проводки. Нельзя использовать регистр сведений для учета остатков, как и регистр накопления – для хранения справочной информации. Бухгалтерский регистр должен использоваться только там, где есть обязательства по отражению операций в бухгалтерском учете.
Назначение измерений и ресурсов в регистрах накопления

Измерения в регистрах накопления используются для группировки и идентификации записей. Они определяют уникальность каждой строки в регистре. От набора измерений зависит логика накопления остатков и корректность аналитики.
- Измерения должны соответствовать аналитике, по которой требуется получать остатки. Например, для учета товаров – это склад, номенклатура, характеристика; для взаиморасчетов – контрагент, договор.
- Чем больше измерений, тем выше детализация данных, но и выше нагрузка при расчётах. Не следует включать лишние аналитики, не задействованные в отчетах или расчетах.
- Измерения влияют на периодичность и скорость агрегации. При использовании оборотов по сложной структуре измерений могут возникать задержки при формировании отчетов.
Ресурсы – числовые поля, в которых хранятся значения, подлежащие накоплению. Они изменяются при проведении документов и участвуют в расчетах остатков и оборотов.
- Ресурсы определяют, какие именно данные регистрируются: количество, сумма, себестоимость, остаток.
- При проектировании важно четко разграничивать ресурсы и реквизиты. Ресурсы участвуют в расчетах, реквизиты – вспомогательная информация.
- Все ресурсы должны иметь однозначную интерпретацию: «КоличествоОстаток» – для текущего остатка, «СуммаОборот» – для анализа движений за период.
Ошибки в определении измерений и ресурсов приводят к искажению данных: некорректные остатки, дублирование записей, невозможность построения отчетов. Перед созданием регистра необходимо чётко описать бизнес-задачу, определить необходимые срезы аналитики и формулы расчета ресурсов.
Особенности настройки периодичности в регистрах сведений

Периодичность в регистрах сведений определяет, как часто система будет фиксировать новые значения. От правильного выбора зависит корректность аналитики, объем хранимых данных и производительность системы.
При создании регистра сведений в конфигураторе 1С необходимо задать одно из следующих значений периодичности: «Мгновенно», «Секунда», «Минута», «Час», «День», «Месяц», «Квартал», «Год». Выбор зависит от характера данных. Например, для фиксации остатков по складу на конец дня достаточно «День», а для учёта температурных показателей оборудования – «Минута» или «Секунда».
Периодичность влияет на уникальность записи. Если указана «Месяц», то в рамках одного месяца нельзя записать две строки с одинаковыми измерениями и временем. При ошибочном выборе периодичности возможны проблемы при записи новых данных, особенно при автоматическом заполнении с интервалом меньше заданного.

При изменении периодичности в уже существующем регистре возникает потребность в пересчете данных или удалении записей, не соответствующих новой структуре. Автоматическая конвертация не выполняется. Важно заранее анализировать требования к аналитике, чтобы избежать пересоздания регистра.
В отчетах с использованием регистра сведений периодичность определяет доступную детализацию. Например, если установлен уровень «Месяц», то сформировать отчет по дням невозможно без дополнительной обработки или дублирующего регистра с другой периодичностью.
Рекомендуется избегать чрезмерно мелкой периодичности без необходимости, так как это увеличивает объем данных и может повлиять на скорость выборок. Оптимальный подход – использовать минимально необходимую детализацию с учетом бизнес-задач и частоты изменений информации.
Регистры бухгалтерии: правила формирования проводок

Регистры бухгалтерии в 1С предназначены для хранения бухгалтерских проводок. Они фиксируют движение по счетам плана счетов с детализацией по субконто, количеству и валюте. Каждый регистр содержит набор измерений, ресурсов и реквизитов. Формирование записей в регистре требует точного соответствия правилам учета и структуре плана счетов.
Проводки создаются документами, в которых реализована процедура формирования движений. Используется метод `Движения.Бухгалтерия.Добавить()`, в котором необходимо указать счет дебета, счет кредита, сумму, субконто, количество и валюту, если они заданы в плане счетов. Указание корреспондирующих счетов производится вручную или на основе настроек в виде ссылок на регламентированные операции.
Для правильной генерации движений необходимо учитывать активность счета (активный, пассивный или активно-пассивный) и структуру субконто. Ошибки в сопоставлении субконто приводят к отказу при проведении документа. Порядок субконто в методе `Добавить()` должен соответствовать определению счета в плане счетов.
Записи в регистре формируются только при включенной галке «Формировать бухгалтерские проводки» в свойствах документа. При необходимости записи можно формировать вручную через код модуля объекта. При этом важно использовать методы `НачатьЗаполнение()`, `Добавить()`, `Записать()` для правильного сохранения движений.
Контроль целостности проводок осуществляется с помощью обработки «Анализ проводок». Также важно использовать транзакции (`НачатьТранзакцию()` и `ЗафиксироватьТранзакцию()`), чтобы избежать частично записанных данных при сбоях.
Как организовать отбор и агрегирование данных из регистров

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

Каждый регистр в 1С напрямую влияет на нагрузку на СУБД. При проектировании структуры данных необходимо учитывать, что накопление большого количества записей в регистрах с высокой частотой обновлений может привести к росту времени выборки и увеличению времени записи.
Регистры накопления с измерениями высокой кардинальности (например, ссылающиеся на документы, пользователей или товары в большом количестве) создают фрагментацию индексов и замедляют агрегацию. Использование таких измерений должно быть обосновано. При необходимости можно разделить регистр на несколько специализированных с меньшим набором измерений.
Регистр сведений, используемый как кэш, требует контроля за частотой обновлений. Постоянная перезапись данных вызывает рост журналов транзакций и увеличение объема хранения. Эффективнее использовать регистры сведений с периодичностью хранения и ограничением актуальности.
В регистрах бухгалтерии особенно важно ограничивать количество аналитик. Избыточные измерения создают избыточные индексы, что увеличивает объем таблиц на диске и замедляет операции закрытия периода. Оптимальным считается использование не более четырёх аналитик на уровне регистровых записей.
Для регистров с большим объемом данных критично наличие правильных индексов. Неиспользуемые измерения в запросах не должны индексироваться. Создание составных индексов по часто используемым комбинациям измерений и ресурсов позволяет значительно сократить время выборки.
Регулярное архивирование и удаление неактуальных данных снижает объем хранения и уменьшает нагрузку на сервер. Для этого можно использовать обработку пакетного удаления или периодическое перемещение в внешние хранилища.
Оптимизация регистров требует анализа реальных сценариев использования. Настройка регламентных заданий для обслуживания индексов и мониторинг производительности по журналу регистрации позволяют своевременно выявлять узкие места и корректировать структуру регистров.
