Разработка и Конфигурация · 10 мин
Измерения в 1С: что это такое и как с ними работать
Измерения в 1С — что это такое, где применяются в регистрах сведений и накопления, как добавить измерение и избежать типичных ошибок при настройке.
Измерения в 1С — это аналитические разрезы, по которым система хранит и группирует данные в регистрах. Проще говоря, измерение отвечает на вопрос «в разрезе чего мы учитываем информацию»: по каким товарам, по каким складам, по каким сотрудникам или организациям. Без измерений регистр превратился бы в единственную строку итогов, из которой нельзя понять, что именно стоит за цифрой.
Термин «измерение» чаще всего встречается при работе с регистрами сведений и регистрами накопления, но концепция применима и к аналитике в целом. Например, в регистре сведений «Цены номенклатуры» измерениями обычно выступают номенклатура и тип цен: каждая запись хранит цену конкретного товара по конкретному типу цен. В регистре накопления «Товары на складах» измерения — номенклатура и склад, а ресурс — количество.
Понимание измерений критично для разработчиков, внедренцев и продвинутых пользователей: от правильного выбора измерений зависят скорость отчётов, корректность остатков и возможность получать нужную аналитику без доработок. Ошибка на этапе проектирования — например, лишнее измерение или его отсутствие — потом дорого исправляется, потому что требует переноса накопленных данных.
Что такое измерение и чем оно отличается от ресурса и реквизита
В структуре регистра 1С есть три типа полей: измерения, ресурсы и реквизиты. Измерения определяют аналитику учёта — «в разрезе чего». Ресурсы — это числовые показатели, которые учитываются: количество, сумма, вес. Реквизиты — дополнительная справочная информация о движении, которая не участвует в итогах и не является аналитикой.
Ключевое отличие: совокупность значений измерений формирует уникальный ключ записи. В регистре сведений не может быть двух записей с одинаковым набором измерений (и периодом, если регистр периодический). В регистре накопления итоги хранятся именно по комбинациям измерений. Реквизиты же могут повторяться сколько угодно и никак не влияют на уникальность.
Практический пример: регистр накопления «Продажи». Измерения — номенклатура, контрагент, организация. Ресурсы — количество и сумма. Реквизит — менеджер. Если сделать менеджера измерением, итоги будут дробиться по каждому менеджеру, таблица итогов вырастет, а проверить «сколько всего продано товара» станет чуть дороже по производительности. Если же оставить его реквизитом, получить продажи по менеджеру можно будет только запросом по таблице движений, а не из итогов.
Где используются измерения: регистры сведений и накопления
В регистрах сведений измерения задают составную ключевую структуру хранимой информации. Классические примеры типовых конфигураций: «Курсы валют» (измерение — валюта), «Цены номенклатуры» (номенклатура, тип цен), «Штрихкоды номенклатуры» (штрихкод как измерение, номенклатура — ресурс или реквизит в зависимости от конфигурации). Записывая значение ресурса, вы фактически говорите: «для такой-то комбинации измерений действует такое-то значение».
В регистрах накопления измерения определяют разрезы остатков и оборотов. Для регистра остатков система автоматически поддерживает таблицу итогов по каждой комбинации измерений, поэтому виртуальная таблица «Остатки» возвращает данные быстро. Для оборотных регистров и регистров оборотов аналогично работают виртуальные таблицы «Обороты».
Измерения в планах счетов и планах видов расчёта
Похожая роль у субконто в планах счетов: субконто — это аналитические разрезы бухгалтерского учёта, концептуально близкие к измерениям. В планах видов расчёта аналогом выступают базовые виды расчёта и измерения регистров расчёта (например, сотрудник и организация в регистре начислений). Поняв логику измерений, легче освоить и эти механизмы.
Как выбрать состав измерений при проектировании
Главный принцип: измерением должен быть только тот разрез, по которому реально нужны итоги или уникальность записи. Каждое лишнее измерение умножает количество комбинаций в таблице итогов и замедляет запись и пересчёт итогов. Каждое недостающее измерение приводит к тому, что данные склеиваются в одну строку и разделить их потом невозможно.
Полезный приём — сформулировать вопросы, на которые регистр обязан отвечать. Если бизнес спрашивает «сколько товара на каждом складе» — склад обязан быть измерением. Если вопрос «сколько товара в каждой ячейке склада» появляется регулярно — ячейку тоже придётся сделать измерением, а не реквизитом. Если вопрос возникает раз в год, возможно, дешевле считать его запросом по таблице движений.
Как выбрать действие
Как добавить измерение в конфигураторе
Добавление измерения выполняется в конфигураторе и требует монопольного доступа к базе при обновлении конфигурации базы данных. Для типовой конфигурации на поддержке изменение структуры регистра снимет объект с поддержки — учитывайте это при обновлениях.
- 1Откройте конфигуратор и найдите нужный регистр в дереве конфигурации
- 2Перейдите на вкладку «Данные» и добавьте новое измерение, задав имя и тип (обычно ссылка на справочник)
- 3Укажите признаки: для регистра сведений — «Ведущее», если запись теряет смысл без объекта; для регистра накопления проверьте, что измерение участвует в итогах
- 4Обновите конфигурацию базы данных (F7), согласившись с реструктуризацией
- 5Проверьте движения документов: в процедуре проведения заполните новое измерение, иначе оно останется пустым
- 6Перепроведите документы за нужный период, чтобы движения получили значения нового измерения
После добавления измерения в регистр накопления существующие итоги не пересчитаются сами по себе: старые записи движений содержат пустое значение нового измерения. Чтобы аналитика стала корректной, нужно перепровести документы — удобнее всего через обработку «Проведение по партиям» в типовых решениях или групповое перепроведение.
Измерения в запросах и отчётах
При написании запросов измерения доступны как поля виртуальных таблиц. Для регистра остатков «ТоварыНаСкладах» виртуальная таблица «Остатки» вернёт по одной строке на каждую комбинацию измерений с ненулевым остатком. Условия по измерениям правильно накладывать в параметрах виртуальной таблицы, а не в секции ГДЕ — так запрос отработает быстрее, потому что отбор выполнится на уровне таблицы итогов.
ВЫБРАТЬ
Остатки.Номенклатура КАК Номенклатура,
Остатки.Склад КАК Склад,
Остатки.КоличествоОстаток КАК Остаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, Склад = &Склад) КАК ОстаткиВ отчётах на СКД измерения автоматически становятся доступными полями группировки и отбора. Если в отчёте нужен разрез, которого нет среди измерений, придётся соединять таблицу итогов с таблицей движений по реквизиту — это заметно тяжелее для больших баз. Это ещё один аргумент заранее продумывать состав измерений.
Типичные ошибки и ограничения
Ещё одна частая проблема — незаполненные измерения в движениях. Если в модуле проведения забыть присвоить значение измерению, движение запишется с пустой ссылкой, и остаток «повиснет» на пустой аналитике. Найти такие ошибки помогает отчёт по регистру с группировкой по измерениям: строки с пустыми значениями сразу видны.
Как проверить корректность настройки
Как проверить результат
Нет строк с пустыми значениями измерений
Строки с пустой аналитикой — движения записаны неполностью
Остатки по регистру совпадают с первичкой и смежными регистрами
Расхождения после добавления измерения — документы не перепроведены
Время проведения не выросло заметно после изменения структуры
Резкое замедление — вероятно, лишнее измерение раздуло итоги
Система не даёт создать дубль по комбинации измерений
Дубли возможны — ключевой разрез вынесен в реквизиты
Частые вопросы
Чем измерение отличается от субконто?
Субконто — аналитический разрез плана счетов в бухгалтерском учёте, измерение — разрез регистра. Концептуально они решают одну задачу (аналитика учёта), но применяются к разным объектам метаданных и настраиваются отдельно.
Можно ли удалить измерение из регистра с данными?
Технически да, но при реструктуризации данные по этому разрезу будут безвозвратно потеряны, а итоги пересчитаны. Перед удалением сделайте резервную копию и убедитесь, что ни один документ, отчёт и обмен не используют это измерение.
Сколько измерений можно добавить в регистр?
Жёсткий технический лимит существует, но на практике упираются в производительность раньше: каждое измерение увеличивает таблицу итогов. Обычно оптимально 2–5 измерений; большее количество требует обоснования реальной потребностью в итогах по каждому разрезу.
Почему после добавления измерения в отчёте пустые строки?
Старые движения содержат пустое значение нового измерения. Нужно дозаполнить процедуру проведения и перепровести документы за весь период, по которому строятся отчёты.
Можно ли изменить состав измерений в типовой конфигурации без снятия с поддержки?
Нет, изменение структуры регистра относится к доработке конфигурации и снимает объект с полной поддержки. Альтернатива — хранить дополнительную аналитику в отдельном самостоятельном регистре сведений или через дополнительные реквизиты и сведения.
Что важно запомнить
Измерение — это аналитический разрез регистра, формирующий ключ записи и структуру итогов. Выбирайте измерения по реальным потребностям отчётности, изменяйте структуру только с резервной копией и всегда перепроводите документы после добавления нового измерения.