К статье
Практический материал

Разработка и Конфигурация · 10 мин

Измерения в 1С: что это такое и как с ними работать

Измерения в 1С — что это такое, где применяются в регистрах сведений и накопления, как добавить измерение и избежать типичных ошибок при настройке.

Измерения в 1С — это аналитические разрезы, по которым система хранит и группирует данные в регистрах. Проще говоря, измерение отвечает на вопрос «в разрезе чего мы учитываем информацию»: по каким товарам, по каким складам, по каким сотрудникам или организациям. Без измерений регистр превратился бы в единственную строку итогов, из которой нельзя понять, что именно стоит за цифрой.

Термин «измерение» чаще всего встречается при работе с регистрами сведений и регистрами накопления, но концепция применима и к аналитике в целом. Например, в регистре сведений «Цены номенклатуры» измерениями обычно выступают номенклатура и тип цен: каждая запись хранит цену конкретного товара по конкретному типу цен. В регистре накопления «Товары на складах» измерения — номенклатура и склад, а ресурс — количество.

Понимание измерений критично для разработчиков, внедренцев и продвинутых пользователей: от правильного выбора измерений зависят скорость отчётов, корректность остатков и возможность получать нужную аналитику без доработок. Ошибка на этапе проектирования — например, лишнее измерение или его отсутствие — потом дорого исправляется, потому что требует переноса накопленных данных.

Что такое измерение и чем оно отличается от ресурса и реквизита

В структуре регистра 1С есть три типа полей: измерения, ресурсы и реквизиты. Измерения определяют аналитику учёта — «в разрезе чего». Ресурсы — это числовые показатели, которые учитываются: количество, сумма, вес. Реквизиты — дополнительная справочная информация о движении, которая не участвует в итогах и не является аналитикой.

Ключевое отличие: совокупность значений измерений формирует уникальный ключ записи. В регистре сведений не может быть двух записей с одинаковым набором измерений (и периодом, если регистр периодический). В регистре накопления итоги хранятся именно по комбинациям измерений. Реквизиты же могут повторяться сколько угодно и никак не влияют на уникальность.

Практический пример: регистр накопления «Продажи». Измерения — номенклатура, контрагент, организация. Ресурсы — количество и сумма. Реквизит — менеджер. Если сделать менеджера измерением, итоги будут дробиться по каждому менеджеру, таблица итогов вырастет, а проверить «сколько всего продано товара» станет чуть дороже по производительности. Если же оставить его реквизитом, получить продажи по менеджеру можно будет только запросом по таблице движений, а не из итогов.

Где используются измерения: регистры сведений и накопления

В регистрах сведений измерения задают составную ключевую структуру хранимой информации. Классические примеры типовых конфигураций: «Курсы валют» (измерение — валюта), «Цены номенклатуры» (номенклатура, тип цен), «Штрихкоды номенклатуры» (штрихкод как измерение, номенклатура — ресурс или реквизит в зависимости от конфигурации). Записывая значение ресурса, вы фактически говорите: «для такой-то комбинации измерений действует такое-то значение».

В регистрах накопления измерения определяют разрезы остатков и оборотов. Для регистра остатков система автоматически поддерживает таблицу итогов по каждой комбинации измерений, поэтому виртуальная таблица «Остатки» возвращает данные быстро. Для оборотных регистров и регистров оборотов аналогично работают виртуальные таблицы «Обороты».

Измерения в планах счетов и планах видов расчёта

Похожая роль у субконто в планах счетов: субконто — это аналитические разрезы бухгалтерского учёта, концептуально близкие к измерениям. В планах видов расчёта аналогом выступают базовые виды расчёта и измерения регистров расчёта (например, сотрудник и организация в регистре начислений). Поняв логику измерений, легче освоить и эти механизмы.

Как выбрать состав измерений при проектировании

Главный принцип: измерением должен быть только тот разрез, по которому реально нужны итоги или уникальность записи. Каждое лишнее измерение умножает количество комбинаций в таблице итогов и замедляет запись и пересчёт итогов. Каждое недостающее измерение приводит к тому, что данные склеиваются в одну строку и разделить их потом невозможно.

Полезный приём — сформулировать вопросы, на которые регистр обязан отвечать. Если бизнес спрашивает «сколько товара на каждом складе» — склад обязан быть измерением. Если вопрос «сколько товара в каждой ячейке склада» появляется регулярно — ячейку тоже придётся сделать измерением, а не реквизитом. Если вопрос возникает раз в год, возможно, дешевле считать его запросом по таблице движений.

Маршрут решения

Как выбрать действие

Нужны быстрые итоги по разрезу (остатки, обороты) в отчётах и проведенииДелайте разрез измерением регистра
Разрез нужен только как справочная информация о движенииОставьте его реквизитом — итоги не раздуваются
Значение должно быть уникально в комбинации с другими полями (например, штрихкод)Сделайте его измерением регистра сведений
Разрез имеет сотни тысяч значений и итоги по нему не нужныНе выносите в измерения — используйте реквизит и индексирование

Как добавить измерение в конфигураторе

Добавление измерения выполняется в конфигураторе и требует монопольного доступа к базе при обновлении конфигурации базы данных. Для типовой конфигурации на поддержке изменение структуры регистра снимет объект с поддержки — учитывайте это при обновлениях.

Порядок действий
  1. 1
    Откройте конфигуратор и найдите нужный регистр в дереве конфигурации
  2. 2
    Перейдите на вкладку «Данные» и добавьте новое измерение, задав имя и тип (обычно ссылка на справочник)
  3. 3
    Укажите признаки: для регистра сведений — «Ведущее», если запись теряет смысл без объекта; для регистра накопления проверьте, что измерение участвует в итогах
  4. 4
    Обновите конфигурацию базы данных (F7), согласившись с реструктуризацией
  5. 5
    Проверьте движения документов: в процедуре проведения заполните новое измерение, иначе оно останется пустым
  6. 6
    Перепроведите документы за нужный период, чтобы движения получили значения нового измерения

После добавления измерения в регистр накопления существующие итоги не пересчитаются сами по себе: старые записи движений содержат пустое значение нового измерения. Чтобы аналитика стала корректной, нужно перепровести документы — удобнее всего через обработку «Проведение по партиям» в типовых решениях или групповое перепроведение.

Измерения в запросах и отчётах

При написании запросов измерения доступны как поля виртуальных таблиц. Для регистра остатков «ТоварыНаСкладах» виртуальная таблица «Остатки» вернёт по одной строке на каждую комбинацию измерений с ненулевым остатком. Условия по измерениям правильно накладывать в параметрах виртуальной таблицы, а не в секции ГДЕ — так запрос отработает быстрее, потому что отбор выполнится на уровне таблицы итогов.

bsl
ВЫБРАТЬ

	Остатки.Номенклатура КАК Номенклатура,

	Остатки.Склад КАК Склад,

	Остатки.КоличествоОстаток КАК Остаток

ИЗ

	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК Остатки

В отчётах на СКД измерения автоматически становятся доступными полями группировки и отбора. Если в отчёте нужен разрез, которого нет среди измерений, придётся соединять таблицу итогов с таблицей движений по реквизиту — это заметно тяжелее для больших баз. Это ещё один аргумент заранее продумывать состав измерений.

Типичные ошибки и ограничения

Типичные ошибки
01
Добавление измерения без перепроведения документов — в отчётах появляются строки с пустой аналитикой и «потерянные» остатки
02
Избыточные измерения (например, документ-регистратор как измерение регистра остатков) — таблица итогов раздувается, проведение замедляется
03
Хранение аналитики в реквизите при потребности в итогах — отчёты вынуждены читать всю таблицу движений
04
Изменение типа измерения на несовместимый — потеря данных при реструктуризации
05
Отбор по измерению в секции ГДЕ вместо параметров виртуальной таблицы — запрос читает лишние данные

Ещё одна частая проблема — незаполненные измерения в движениях. Если в модуле проведения забыть присвоить значение измерению, движение запишется с пустой ссылкой, и остаток «повиснет» на пустой аналитике. Найти такие ошибки помогает отчёт по регистру с группировкой по измерениям: строки с пустыми значениями сразу видны.

Как проверить корректность настройки

Контрольные точки

Как проверить результат

Отчёт по регистру в разрезе всех измерений
Норма

Нет строк с пустыми значениями измерений

Тревожный признак

Строки с пустой аналитикой — движения записаны неполностью

Сверка остатков с учётными данными
Норма

Остатки по регистру совпадают с первичкой и смежными регистрами

Тревожный признак

Расхождения после добавления измерения — документы не перепроведены

Скорость проведения документов
Норма

Время проведения не выросло заметно после изменения структуры

Тревожный признак

Резкое замедление — вероятно, лишнее измерение раздуло итоги

Уникальность записей регистра сведений
Норма

Система не даёт создать дубль по комбинации измерений

Тревожный признак

Дубли возможны — ключевой разрез вынесен в реквизиты

Частые вопросы

Чем измерение отличается от субконто?

Субконто — аналитический разрез плана счетов в бухгалтерском учёте, измерение — разрез регистра. Концептуально они решают одну задачу (аналитика учёта), но применяются к разным объектам метаданных и настраиваются отдельно.

Можно ли удалить измерение из регистра с данными?

Технически да, но при реструктуризации данные по этому разрезу будут безвозвратно потеряны, а итоги пересчитаны. Перед удалением сделайте резервную копию и убедитесь, что ни один документ, отчёт и обмен не используют это измерение.

Сколько измерений можно добавить в регистр?

Жёсткий технический лимит существует, но на практике упираются в производительность раньше: каждое измерение увеличивает таблицу итогов. Обычно оптимально 2–5 измерений; большее количество требует обоснования реальной потребностью в итогах по каждому разрезу.

Почему после добавления измерения в отчёте пустые строки?

Старые движения содержат пустое значение нового измерения. Нужно дозаполнить процедуру проведения и перепровести документы за весь период, по которому строятся отчёты.

Можно ли изменить состав измерений в типовой конфигурации без снятия с поддержки?

Нет, изменение структуры регистра относится к доработке конфигурации и снимает объект с полной поддержки. Альтернатива — хранить дополнительную аналитику в отдельном самостоятельном регистре сведений или через дополнительные реквизиты и сведения.

Итог

Что важно запомнить

Измерение — это аналитический разрез регистра, формирующий ключ записи и структуру итогов. Выбирайте измерения по реальным потребностям отчётности, изменяйте структуру только с резервной копией и всегда перепроводите документы после добавления нового измерения.