К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как проверить регистр сведений в 1С

Как проверить регистр сведений в 1С: просмотр записей, отборы, запросы, консоль кода, поиск дублей и битых данных. Пошаговые инструкции и типичные ошибки.

Регистр сведений в 1С хранит информацию в виде записей с измерениями и ресурсами — курсы валют, цены номенклатуры, штрихкоды, настройки учета. Проверка регистра нужна, когда отчеты показывают неверные данные, документ не проводится из-за «неуникальной записи» или после обмена возникают дубли. В зависимости от задачи проверку выполняют в пользовательском режиме, через запросы или программно.

Перед началом работы важно понять, что именно проверяем: наличие конкретной записи, корректность значений ресурсов, отсутствие дублей по измерениям или целостность связей с другими объектами. От этого зависит выбор инструмента — простой просмотр списка, универсальный отчет, консоль запросов или обработка на встроенном языке.

Все действия, описанные ниже, безопасны при работе в режиме чтения. Любое изменение или удаление записей регистра выполняйте только на копии базы или после создания резервной копии, особенно если регистр участвует в обменах и подключен к регламентным заданиям.

Определите тип регистра и что именно нужно проверить

Регистры сведений делятся на периодические и непериодические, независимые и подчиненные регистратору. От этого зависит набор стандартных полей: у периодического есть поле «Период», у подчиненного — «Регистратор», и записи такого регистра нельзя редактировать напрямую, только через документ.

Сформулируйте задачу конкретно. Типичные варианты: проверить, есть ли запись с нужным значением измерения; найти дубли, из-за которых возникает ошибка уникальности; убедиться, что ресурсы заполнены; найти записи с битыми ссылками (объект не найден); сравнить данные регистра с данными документов или другого регистра.

Структуру регистра — состав измерений, ресурсов и реквизитов — смотрите в конфигураторе: дерево конфигурации, ветка «Регистры сведений». Если конфигуратор недоступен, состав полей виден при настройке отбора в форме списка или в универсальном отчете.

Как открыть и просмотреть записи регистра в пользовательском режиме

Самый быстрый способ — команда «Все функции». Откройте главное меню, выберите «Все функции» (если пункт скрыт, включите его в настройках: Сервис — Параметры — Отображать команду «Все функции»). В дереве найдите «Регистры сведений» и нужный регистр — откроется форма списка со всеми записями.

Во многих конфигурациях регистры выведены в интерфейс: курсы валют, штрихкоды номенклатуры, адреса и контакты, настройки учета. Тогда проще открыть регистр через стандартный раздел меню — там же доступны удобные отборы и связанные команды.

В форме списка используйте отбор (кнопка «Найти» или настройка списка через «Еще»): укажите значение измерения, период или условие на ресурс. Для периодического регистра включите отображение истории или откройте запись на конкретную дату, чтобы увидеть актуальное значение.

Просмотр регистра через «Все функции»
  1. 1
    Откройте главное меню и включите отображение команды «Все функции» в параметрах
  2. 2
    В дереве разверните «Регистры сведений» и выберите нужный регистр
  3. 3
    В форме списка настройте отбор по измерениям или периоду
  4. 4
    Проверьте значения ресурсов и наличие ожидаемых записей
  5. 5
    При необходимости выгрузите список в табличный документ для анализа

Проверка регистра через универсальный отчет и запросы

Когда нужно не просто посмотреть записи, а проанализировать их, используйте «Универсальный отчет» (доступен в большинстве типовых конфигураций). Выберите тип объекта «Регистр сведений», укажите регистр, добавьте группировки по измерениям и поля ресурсов. Отчет покажет количество записей в разрезах и поможет заметить пропуски и аномальные значения.

Для гибкого анализа подходит консоль запросов — внешняя обработка или встроенный инструмент в некоторых конфигурациях. Запрос позволяет объединить регистр со справочниками, посчитать количество записей по измерениям и найти проблемные места.

Пример запроса для поиска дублей по измерениям независимого регистра: сгруппируйте записи по измерениям и отберите группы, где количество больше одного (в независимом регистре комбинация измерений должна быть уникальной, но после некорректных обменов или загрузок встречаются нарушения в связанных данных).

bsl
ВЫБРАТЬ
	Измерение1,
	КОЛИЧЕСТВО(<em>) КАК Количество
ИЗ
	РегистрСведений.ИмяРегистра
СГРУППИРОВАТЬ ПО
	Измерение1
ИМЕЮЩИЕ
	КОЛИЧЕСТВО(</em>) > 1

Программная проверка через консоль кода

Если регистр большой или проверку нужно выполнять регулярно, удобнее написать код в консоли кода (обработка для выполнения произвольного кода на встроенном языке). Через менеджер регистра можно получить набор записей, применить отбор и пройтись по записям в цикле.

Типовой прием: создать набор записей через РегистрыСведений.ИмяРегистра.СоздатьНаборЗаписей(), установить отбор по измерению, прочитать набор и проверить значения ресурсов. Для периодических регистров используйте срез последних — СрезПоследних в запросе или метод ПолучитьПоследнее менеджера регистра.

Для поиска битых ссылок проверяйте, что значения ссылочных измерений существуют в базе: запросом с левым соединением к таблице справочника и условием «ЕСТЬ NULL» на основную таблицу справочника. Такие записи — частая причина ошибок в отчетах и обменах.

bsl
НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Номенклатура.Установить(НоменклатураСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
	Сообщить("Цена: " + Запись.Цена + " на " + Запись.Период);
КонецЦикла;

Как найти дубли, пропуски и битые ссылки

Дубли в независимом регистре сведений обычно проявляются косвенно: ошибки обмена, несоответствие данных в отчетах, дублирование строк в связанных формах. Найдите их запросом с группировкой по измерениям и условием «ИМЕЮЩИЕ КОЛИЧЕСТВО(*) > 1» — для периодического регистра добавьте период в группировку.

Пропуски ищут сравнением: выберите из справочника все элементы, для которых нет записи в регистре (левое соединение с условием «ЕСТЬ NULL» по регистру). Например, номенклатура без установленной цены или сотрудник без назначенного графика — типичные причины ошибок при проведении документов.

Битые ссылки возникают после удаления объектов без контроля ссылочной целостности или после обменов. В форме списка они отображаются как «Объект не найден». Запросом с соединением к справочнику такие записи выявляются по NULL в соединяемой таблице.

Контрольные точки

Как проверить результат

Количество записей после отбора
Норма

Совпадает с ожидаемым числом объектов в справочнике

Тревожный признак

Записей меньше — есть пропуски; больше — возможны дубли

Значения ссылочных измерений
Норма

Отображаются наименования объектов, ссылки открываются

Тревожный признак

Текст «Объект не найден» или пустые значения

Уникальность комбинаций измерений
Норма

Запрос с группировкой не возвращает групп больше одной записи

Тревожный признак

Есть группы с количеством больше одного

Особенности проверки регистров, подчиненных регистратору

Записи подчиненного регистра создаются и удаляются только движениями документов. Поэтому проверка сводится к анализу движений: откройте документ-регистратор, перейдите в его движения по регистру (в форме документа — кнопка перехода к движениям или отчет «Движения документа»).

Если документ проведен, а записей в регистре нет, проверьте: проведен ли документ на самом деле (пометка проведения), включен ли регистр в список движений документа в конфигураторе, не отменено ли проведение обработкой. Если записи есть, а документа нет — это «осиротевшие» движения, признак некорректного удаления документа или сбоя обмена.

Для массовой сверки постройте запрос: левое соединение таблицы регистра с таблицей документов по полю «Регистратор». Записи, где регистратор отсутствует или не проведен, — кандидаты на разбор. Исправлять такие расхождения вручную не следует: сначала восстановите или перепроведите документ.

Типичные ошибки при проверке и их последствия

Распространенная ошибка — проверять периодический регистр без учета периода: пользователь открывает список, не видит запись и делает вывод об отсутствии данных, хотя запись существует на другую дату. Всегда уточняйте дату среза и используйте «Срез последних».

Вторая ошибка — ручное редактирование записей подчиненного регистра через групповую обработку. После этого движения перестают соответствовать документам, отчеты расходятся, а при перепроведении документа изменения затираются. Исправление данных подчиненного регистра выполняется только через документ-регистратор.

Третья ошибка — игнорирование прав доступа. Если записи «не видны», причина может быть в ограничении RLS или отсутствии прав на регистр, а не в отсутствии данных. Проверку целостности выполняйте под полными правами, чтобы исключить ложные выводы.

Типичные ошибки
01
Проверка периодического регистра без указания даты — ложный вывод об отсутствии записей
02
Ручное изменение записей регистра, подчиненного регистратору, — рассинхронизация с документами
03
Проверка под ограниченными правами — часть записей скрыта RLS, выводы неверны
04
Удаление дублей без анализа обменов — расхождения возвращаются после следующей синхронизации

FAQ

Итог

Что важно запомнить

Проверка регистра сведений начинается с определения его типа и задачи. Просмотр — через «Все функции», анализ — через универсальный отчет и запросы, массовые проверки — через консоль кода. Изменять записи напрямую можно только в независимых регистрах и после резервной копии.

Как открыть регистр сведений, если его нет в меню программы?

Используйте команду «Все функции» в главном меню: разверните ветку «Регистры сведений» и выберите нужный. Если команда скрыта, включите ее в настройках: Сервис — Параметры — флажок «Отображать команду Все функции». Для открытия нужны права на просмотр регистра.

Как проверить записи регистра на конкретную дату?

Для периодического регистра используйте виртуальную таблицу «СрезПоследних» в запросе с параметром даты или метод ПолучитьПоследнее менеджера регистра. В форме списка включите отображение истории и отберите записи с периодом не позже нужной даты.

Почему в регистре записи есть, а отчет их не показывает?

Чаще всего причина в ограничении прав (RLS), отборе по периоду в отчете или в том, что отчет строится по другому регистру либо по срезу на другую дату. Проверьте данные под полными правами и сверьте источник данных отчета.

Можно ли удалить дубли записей регистра вручную?

В независимом регистре — да, но только после резервной копии и анализа причины дублей (обычно это некорректная загрузка или обмен). В регистре, подчиненном регистратору, удалять записи вручную нельзя: исправляйте через отмену проведения или перепроведение документов.

Как найти записи регистра без связанного документа?

Постройте запрос с левым соединением таблицы регистра к таблице документов по полю «Регистратор» и отберите строки, где документ отсутствует (ЕСТЬ NULL). Такие «осиротевшие» движения — признак некорректного удаления документов или сбоя обмена, их разбирают восстановлением или перепроведением документов.

Чем проверка регистра сведений отличается от проверки регистра накопления?

Регистр сведений хранит независимые значения без итогов и остатков, поэтому проверяют наличие записей, уникальность измерений и корректность ресурсов. Регистр накопления проверяют по остаткам и оборотам, сверяя итоги с отчетами и контрольными значениями.