Разработка и Конфигурация · 10 мин
Как проверить регистр сведений в 1С
Как проверить регистр сведений в 1С: просмотр записей, отборы, запросы, консоль кода, поиск дублей и битых данных. Пошаговые инструкции и типичные ошибки.
Регистр сведений в 1С хранит информацию в виде записей с измерениями и ресурсами — курсы валют, цены номенклатуры, штрихкоды, настройки учета. Проверка регистра нужна, когда отчеты показывают неверные данные, документ не проводится из-за «неуникальной записи» или после обмена возникают дубли. В зависимости от задачи проверку выполняют в пользовательском режиме, через запросы или программно.
Перед началом работы важно понять, что именно проверяем: наличие конкретной записи, корректность значений ресурсов, отсутствие дублей по измерениям или целостность связей с другими объектами. От этого зависит выбор инструмента — простой просмотр списка, универсальный отчет, консоль запросов или обработка на встроенном языке.
Все действия, описанные ниже, безопасны при работе в режиме чтения. Любое изменение или удаление записей регистра выполняйте только на копии базы или после создания резервной копии, особенно если регистр участвует в обменах и подключен к регламентным заданиям.
Определите тип регистра и что именно нужно проверить
Регистры сведений делятся на периодические и непериодические, независимые и подчиненные регистратору. От этого зависит набор стандартных полей: у периодического есть поле «Период», у подчиненного — «Регистратор», и записи такого регистра нельзя редактировать напрямую, только через документ.
Сформулируйте задачу конкретно. Типичные варианты: проверить, есть ли запись с нужным значением измерения; найти дубли, из-за которых возникает ошибка уникальности; убедиться, что ресурсы заполнены; найти записи с битыми ссылками (объект не найден); сравнить данные регистра с данными документов или другого регистра.
Структуру регистра — состав измерений, ресурсов и реквизитов — смотрите в конфигураторе: дерево конфигурации, ветка «Регистры сведений». Если конфигуратор недоступен, состав полей виден при настройке отбора в форме списка или в универсальном отчете.
Как открыть и просмотреть записи регистра в пользовательском режиме
Самый быстрый способ — команда «Все функции». Откройте главное меню, выберите «Все функции» (если пункт скрыт, включите его в настройках: Сервис — Параметры — Отображать команду «Все функции»). В дереве найдите «Регистры сведений» и нужный регистр — откроется форма списка со всеми записями.
Во многих конфигурациях регистры выведены в интерфейс: курсы валют, штрихкоды номенклатуры, адреса и контакты, настройки учета. Тогда проще открыть регистр через стандартный раздел меню — там же доступны удобные отборы и связанные команды.
В форме списка используйте отбор (кнопка «Найти» или настройка списка через «Еще»): укажите значение измерения, период или условие на ресурс. Для периодического регистра включите отображение истории или откройте запись на конкретную дату, чтобы увидеть актуальное значение.
- 1Откройте главное меню и включите отображение команды «Все функции» в параметрах
- 2В дереве разверните «Регистры сведений» и выберите нужный регистр
- 3В форме списка настройте отбор по измерениям или периоду
- 4Проверьте значения ресурсов и наличие ожидаемых записей
- 5При необходимости выгрузите список в табличный документ для анализа
Проверка регистра через универсальный отчет и запросы
Когда нужно не просто посмотреть записи, а проанализировать их, используйте «Универсальный отчет» (доступен в большинстве типовых конфигураций). Выберите тип объекта «Регистр сведений», укажите регистр, добавьте группировки по измерениям и поля ресурсов. Отчет покажет количество записей в разрезах и поможет заметить пропуски и аномальные значения.
Для гибкого анализа подходит консоль запросов — внешняя обработка или встроенный инструмент в некоторых конфигурациях. Запрос позволяет объединить регистр со справочниками, посчитать количество записей по измерениям и найти проблемные места.
Пример запроса для поиска дублей по измерениям независимого регистра: сгруппируйте записи по измерениям и отберите группы, где количество больше одного (в независимом регистре комбинация измерений должна быть уникальной, но после некорректных обменов или загрузок встречаются нарушения в связанных данных).
ВЫБРАТЬ
Измерение1,
КОЛИЧЕСТВО(<em>) КАК Количество
ИЗ
РегистрСведений.ИмяРегистра
СГРУППИРОВАТЬ ПО
Измерение1
ИМЕЮЩИЕ
КОЛИЧЕСТВО(</em>) > 1Программная проверка через консоль кода
Если регистр большой или проверку нужно выполнять регулярно, удобнее написать код в консоли кода (обработка для выполнения произвольного кода на встроенном языке). Через менеджер регистра можно получить набор записей, применить отбор и пройтись по записям в цикле.
Типовой прием: создать набор записей через РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей(), установить отбор по измерению, прочитать набор и проверить значения ресурсов. Для периодических регистров используйте срез последних — СрезПоследних в запросе или метод ПолучитьПоследнее менеджера регистра.
Для поиска битых ссылок проверяйте, что значения ссылочных измерений существуют в базе: запросом с левым соединением к таблице справочника и условием «ЕСТЬ NULL» на основную таблицу справочника. Такие записи — частая причина ошибок в отчетах и обменах.
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(НоменклатураСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
Сообщить("Цена: " + Запись.Цена + " на " + Запись.Период);
КонецЦикла;Как найти дубли, пропуски и битые ссылки
Дубли в независимом регистре сведений обычно проявляются косвенно: ошибки обмена, несоответствие данных в отчетах, дублирование строк в связанных формах. Найдите их запросом с группировкой по измерениям и условием «ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1» — для периодического регистра добавьте период в группировку.
Пропуски ищут сравнением: выберите из справочника все элементы, для которых нет записи в регистре (левое соединение с условием «ЕСТЬ NULL» по регистру). Например, номенклатура без установленной цены или сотрудник без назначенного графика — типичные причины ошибок при проведении документов.
Битые ссылки возникают после удаления объектов без контроля ссылочной целостности или после обменов. В форме списка они отображаются как «Объект не найден». Запросом с соединением к справочнику такие записи выявляются по NULL в соединяемой таблице.
Как проверить результат
Совпадает с ожидаемым числом объектов в справочнике
Записей меньше — есть пропуски; больше — возможны дубли
Отображаются наименования объектов, ссылки открываются
Текст «Объект не найден» или пустые значения
Запрос с группировкой не возвращает групп больше одной записи
Есть группы с количеством больше одного
Особенности проверки регистров, подчиненных регистратору
Записи подчиненного регистра создаются и удаляются только движениями документов. Поэтому проверка сводится к анализу движений: откройте документ-регистратор, перейдите в его движения по регистру (в форме документа — кнопка перехода к движениям или отчет «Движения документа»).
Если документ проведен, а записей в регистре нет, проверьте: проведен ли документ на самом деле (пометка проведения), включен ли регистр в список движений документа в конфигураторе, не отменено ли проведение обработкой. Если записи есть, а документа нет — это «осиротевшие» движения, признак некорректного удаления документа или сбоя обмена.
Для массовой сверки постройте запрос: левое соединение таблицы регистра с таблицей документов по полю «Регистратор». Записи, где регистратор отсутствует или не проведен, — кандидаты на разбор. Исправлять такие расхождения вручную не следует: сначала восстановите или перепроведите документ.
Типичные ошибки при проверке и их последствия
Распространенная ошибка — проверять периодический регистр без учета периода: пользователь открывает список, не видит запись и делает вывод об отсутствии данных, хотя запись существует на другую дату. Всегда уточняйте дату среза и используйте «Срез последних».
Вторая ошибка — ручное редактирование записей подчиненного регистра через групповую обработку. После этого движения перестают соответствовать документам, отчеты расходятся, а при перепроведении документа изменения затираются. Исправление данных подчиненного регистра выполняется только через документ-регистратор.
Третья ошибка — игнорирование прав доступа. Если записи «не видны», причина может быть в ограничении RLS или отсутствии прав на регистр, а не в отсутствии данных. Проверку целостности выполняйте под полными правами, чтобы исключить ложные выводы.
FAQ
Что важно запомнить
Проверка регистра сведений начинается с определения его типа и задачи. Просмотр — через «Все функции», анализ — через универсальный отчет и запросы, массовые проверки — через консоль кода. Изменять записи напрямую можно только в независимых регистрах и после резервной копии.
Как открыть регистр сведений, если его нет в меню программы?
Используйте команду «Все функции» в главном меню: разверните ветку «Регистры сведений» и выберите нужный. Если команда скрыта, включите ее в настройках: Сервис — Параметры — флажок «Отображать команду Все функции». Для открытия нужны права на просмотр регистра.
Как проверить записи регистра на конкретную дату?
Для периодического регистра используйте виртуальную таблицу «СрезПоследних» в запросе с параметром даты или метод ПолучитьПоследнее менеджера регистра. В форме списка включите отображение истории и отберите записи с периодом не позже нужной даты.
Почему в регистре записи есть, а отчет их не показывает?
Чаще всего причина в ограничении прав (RLS), отборе по периоду в отчете или в том, что отчет строится по другому регистру либо по срезу на другую дату. Проверьте данные под полными правами и сверьте источник данных отчета.
Можно ли удалить дубли записей регистра вручную?
В независимом регистре — да, но только после резервной копии и анализа причины дублей (обычно это некорректная загрузка или обмен). В регистре, подчиненном регистратору, удалять записи вручную нельзя: исправляйте через отмену проведения или перепроведение документов.
Как найти записи регистра без связанного документа?
Постройте запрос с левым соединением таблицы регистра к таблице документов по полю «Регистратор» и отберите строки, где документ отсутствует (ЕСТЬ NULL). Такие «осиротевшие» движения — признак некорректного удаления документов или сбоя обмена, их разбирают восстановлением или перепроведением документов.
Чем проверка регистра сведений отличается от проверки регистра накопления?
Регистр сведений хранит независимые значения без итогов и остатков, поэтому проверяют наличие записей, уникальность измерений и корректность ресурсов. Регистр накопления проверяют по остаткам и оборотам, сверяя итоги с отчетами и контрольными значениями.