Разработка и Конфигурация · 11 мин
Измерения и ресурсы в 1С: что это такое и как их использовать
Что такое измерения и ресурсы в регистрах 1С, чем они отличаются, как правильно проектировать структуру регистра и избегать типичных ошибок разработчика.
В регистрах 1С — накопления, сведений, расчёта и бухгалтерии — данные хранятся не просто списком, а в строго заданной структуре. Фундамент этой структуры составляют два вида полей: измерения и ресурсы. Понимание разницы между ними — базовый навык разработчика и внедренца, без которого невозможно правильно спроектировать учёт, построить отчёт или исправить ошибку в движениях документа.
Говоря простым языком, измерения отвечают на вопрос «в каком разрезе хранятся данные», а ресурсы — «какие именно числовые или другие значения мы храним». Например, в регистре остатков товаров измерениями будут «Номенклатура» и «Склад», а ресурсом — «Количество». Каждая запись регистра однозначно определяется комбинацией значений измерений, а ресурсы содержат показатели по этой комбинации.
Ошибка на этапе проектирования — например, поле, помещённое в ресурсы вместо измерений (или наоборот), — приводит к невозможности построить нужные отчёты, дублированию данных и проблемам с производительностью. Исправить структуру регистра после того, как в нём накоплены данные, гораздо сложнее, чем заложить правильную модель сразу.
Что такое измерения и за что они отвечают
Измерение — это реквизит регистра, который определяет аналитический разрез хранения данных. В регистре накопления «Товары на складах» типичные измерения — «Номенклатура» и «Склад». Это значит, что система будет хранить остатки отдельно по каждому товару на каждом складе. Если добавить третье измерение, например «Серия», учёт станет детальнее, но и объём данных вырастет.
Ключевое свойство измерений: совокупность их значений формирует ключ записи. В регистре сведений с режимом «независимый» не может существовать двух записей с одинаковым набором значений измерений на одну дату (для периодических регистров). В регистрах накопления уникальность обеспечивается связкой «регистратор + набор измерений» в рамках одной строки движений.
Измерения участвуют в группировках отчётов, в отборах при получении остатков и оборотов, в условиях виртуальных таблиц. Именно по измерениям строятся итоги регистров накопления, поэтому от грамотного выбора измерений напрямую зависит скорость получения остатков.
Что такое ресурсы и как они ведут себя в итогах
Ресурс — это поле регистра, в котором хранится само значение показателя: количество, сумма, вес, процент. В отличие от измерений, ресурсы не участвуют в формировании ключа записи — они «привязаны» к комбинации измерений как данные к координатам.
Главная особенность ресурсов проявляется в регистрах накопления: по ним система автоматически рассчитывает итоги. Для регистра остатков хранятся текущие остатки по каждому ресурсу в разрезе измерений, для регистра оборотов — суммы за период. Когда вы в отчёте группируете данные по складу, ресурсы суммируются по всем товарам этого склада.
Тип ресурса чаще всего числовой, но это не обязательно: в регистрах сведений ресурсом может быть строка, дата, булево или ссылка. Например, в регистре сведений «Курсы валют» измерение — «Валюта», а ресурс — «Курс» (число). В регистре «Ответственные лица» ресурсом может быть ссылка на физическое лицо.
Реквизиты: третий вид полей регистра
Помимо измерений и ресурсов, у регистра есть реквизиты — вспомогательные поля, которые не влияют ни на ключ записи, ни на итоги. Реквизит нужен, когда значение требуется хранить вместе с движением, но по нему не нужно группировать данные и получать остатки. Классический пример — поле «Комментарий» или «Документ-основание» в движениях.
Разница принципиальна: если поле вынести в реквизиты, отбор по нему в виртуальных таблицах остатков работать не будет, а обращение к нему потребует соединения с таблицей движений, что замедляет запрос. Поэтому часто используемые в отборах поля следует делать измерениями, а редко нужные — реквизитами.
| Критерий | Измерение | Ресурс | Реквизит |
|---|---|---|---|
| Роль | Разрез учёта, ключ записи | Хранимый показатель | Дополнительная информация |
| Итоги | По ним группируются | Суммируются автоматически | В итогах не участвуют |
| Отбор в виртуальных таблицах | Да, эффективно | Ограниченно | Нет |
| Пример | Номенклатура, склад | Количество, сумма | Комментарий, автор строки |
Как выбрать: измерение, ресурс или реквизит
При проектировании регистра задайте себе три вопроса о каждом поле. Первый: нужно ли получать остатки или итоги в разрезе этого поля? Если да — это измерение. Второй: является ли значение количественным показателем, который суммируется? Если да — это ресурс. Третий: поле нужно только для справки в конкретной строке движения? Тогда это реквизит.
Типичная дилемма — поле «Организация». Если компания ведёт учёт по нескольким юрлицам и отчёты строятся по каждой, «Организация» обязательно должна быть измерением. Если база однофирменная, поле можно вынести в реквизиты или не добавлять вовсе, сэкономив на размере индексов.
Обратная ошибка — помещение в измерения всего подряд «про запас». Каждое лишнее измерение увеличивает таблицу итогов, замедляет проведение документов и расчёт остатков. Измерение должно отвечать на реальный вопрос учёта, а не на гипотетический.
Как выбрать тип поля
Особенности в разных видах регистров
Регистры накопления
В регистрах накопления вида «Остатки» ресурсы изменяются движениями «Приход» и «Расход», и система поддерживает таблицу итогов для быстрого получения остатков на дату. В регистрах вида «Обороты» понятия прихода и расхода нет — значения ресурсов просто суммируются за период. Здесь измерения определяют, в каких разрезах будут считаться обороты.
Регистры сведений
В регистрах сведений ресурсы не суммируются — это просто значения, действующие для данной комбинации измерений (и периода, если регистр периодический). Пример: «Цены номенклатуры» — измерение «Номенклатура», ресурс «Цена». Здесь измерение однозначно определяет, чью цену мы храним, а ресурс — само значение.
Регистры расчёта и бухгалтерии
В регистрах расчёта измерениями обычно являются сотрудник и организация (или физическое лицо), а ресурсами — результат расчёта, отработанные дни, база. В регистре бухгалтерии роль измерений играют счёт и субконто, а ресурсами выступают сумма, количество и валютная сумма — с разделением по дебету и кредиту.
Типичные ошибки при работе с измерениями и ресурсами
Самая частая ошибка — размещение суммового показателя в измерениях. Например, если «Сумму продажи» сделать измерением, то каждая новая сумма создаст отдельную строку итогов, отчёты перестанут суммировать продажи, а таблица итогов раздуется до бессмысленных размеров.
Вторая распространённая проблема — незаполненные измерения. Если документ проводится, не заполняя какое-то измерение, в регистре появляются записи с пустым значением. Остатки «повисают» на пустом складе или пустой номенклатуре, и сверка с учётными данными показывает расхождения. Проверяйте заполненность измерений в модуле проведения или настройками проверки заполнения.
Третья ошибка — попытка хранить в ресурсе ссылочное значение, по которому потом нужно строить отборы. Ссылка в ресурсе регистра сведений — нормально, но в регистре накопления аналитику лучше выносить в измерения, иначе отчёты придётся строить соединениями с таблицей движений.
Как проверить структуру и данные регистра
После проектирования или изменения регистра проверьте его поведение на тестовых данных. Проведите документ, откройте движения и убедитесь, что все измерения заполнены осмысленными значениями, а ресурсы содержат ожидаемые числа. Затем постройте отчёт по регистру или запрос к виртуальной таблице остатков и сверьте результат с ожидаемым.
Полезно проверить уникальность: попробуйте программно создать две записи регистра сведений с одинаковыми измерениями — система должна либо перезаписать существующую, либо выдать ошибку (в зависимости от режима). Это подтвердит, что ключевые поля определены правильно.
Как проверить результат
Все измерения содержат осмысленные значения
Есть записи с пустыми измерениями
Остатки группируются по измерениям и суммируются ресурсы
Каждая строка отдельная, суммы не сворачиваются
Отчёт формируется быстро на рабочем объёме данных
Заметные задержки даже на небольших данных
Остатки регистра совпадают с первичными документами
Расхождения, «зависшие» суммы
FAQ
Чем измерение отличается от ресурса простыми словами?
Измерение — это «координата» данных: по какому товару, складу или контрагенту ведётся учёт. Ресурс — само значение в этой координате: сколько товара, на какую сумму. В отчёте измерения становятся строками и колонками группировки, а ресурсы — суммируемыми числами в ячейках.
Можно ли изменить состав измерений в регистре, где уже есть данные?
Технически платформа позволяет это сделать, но с рисками. Добавление измерения приведёт к тому, что старые записи получат пустое значение нового поля, удаление измерения может вызвать конфликт уникальности и потерю данных при реструктуризации. Перед изменением сделайте резервную копию и протестируйте обновление на копии базы.
Сколько измерений может быть у регистра?
Платформа накладывает технические ограничения на количество полей, но практический предел наступает раньше: каждое измерение увеличивает таблицу итогов и замедляет проведение. Обычно оптимально от двух до пяти измерений, отвечающих реальным аналитическим задачам. Если измерений больше десятка — стоит пересмотреть модель учёта.
Почему в отчёте суммы не группируются, а выводятся отдельными строками?
Чаще всего причина в том, что суммируемый показатель ошибочно создан как измерение, а не как ресурс, либо в запросе поле ресурса включено в группировку. Проверьте структуру регистра в конфигураторе и секцию группировок в запросе или схеме компоновки данных.
Что делать, если в регистре появились записи с пустыми измерениями?
Сначала найдите документы-источники через отчёт по движениям с отбором по пустому значению измерения. Затем исправьте модуль проведения, добавив проверку заполненности, и перепроведите проблемные документы. Если записей много, может понадобиться обработка для массового исправления.
Когда поле лучше сделать реквизитом, а не измерением?
Когда значение нужно только для справки в конкретной строке движения и по нему не планируются отборы, группировки и получение остатков. Примеры: комментарий, автор изменения, номер внешнего документа. Это экономит место в индексах и не раздувает таблицу итогов.
Что важно запомнить
Измерения задают разрезы учёта и формируют ключ записи, ресурсы хранят суммируемые показатели, реквизиты — справочную информацию строки. Правильный выбор типа поля определяется тем, нужны ли по нему итоги и отборы. Ошибки в структуре регистра дорого исправлять после накопления данных, поэтому проектируйте регистр исходя из реальных задач отчётности.