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