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