Работа с регистрами в 1С:Предприятие 8.3 — одна из ключевых задач для разработчиков, администраторов и опытных пользователей. Эти объекты конфигурации хранят данные о движениях документов, остатках, накоплениях и другой аналитической информации. Однако найти нужный регистр не всегда просто: интерфейс конфигуратора перегружен меню, а названия регистров могут дублироваться в разных подсистемах. В этой статье разберём все возможные способы поиска регистров — от базовых до продвинутых, с учётом особенностей платформы и типичных ошибок.

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

Если вы новичок, начните с первых двух разделов — там описаны простые способы через интерфейс. Опытным пользователям и разработчикам пригодятся разделы про программный поиск и анализ метаданных. В конце статьи вы найдёте уникальный приём для поиска регистров по связанным документам, который редко упоминается в стандартных инструкциях.

1. Поиск регистров через дерево метаданных в конфигураторе

Самый очевидный способ — использовать дерево метаданных в режиме конфигуратора. Этот метод подходит для всех версий 1С:Предприятие 8.3 и не требует знания программирования. Чтобы открыть дерево:

  1. Запустите 1С:Предприятие в режиме Конфигуратор (для этого удерживайте Shift при запуске или выберите пункт в меню запуска).
  2. В левой части окна откроется панель Объекты конфигурации — это и есть дерево метаданных.
  3. Разверните ветку Регистры — здесь будут папки для каждого типа регистров.

Внутри каждой папки регистры сгруппированы по подсистемам (например, «Запасы», «Расчёты с контрагентами»). Чтобы быстрее найти нужный регистр:

  • 🔍 Используйте поиск по дереву: нажмите Ctrl+F и введите часть названия регистра (например, «ОстаткиТоваров»).
  • 📁 Проверьте вложенные подсистемы: некоторые регистры могут быть спрятаны в неочевидных разделах (например, регистры для расчёта зарплаты часто лежат в «Зарплата и кадры»).
  • 🔄 Если дерево не отображается, включите его через меню Вид → Дерево метаданных.
⚠️ Внимание: В крупных конфигурациях (например, 1С:ERP или 1С:Управление холдингом) дерево метаданных может содержать сотни регистров. Не пытайтесь просматривать их все подряд — используйте фильтрацию по имени или типу.
📊 Как часто вы работаете с регистрами в 1С?
Ежедневно
Несколько раз в неделю
Редко, по необходимости
Никогда не работал

2. Быстрый поиск через меню «Все функции»

Если вам нужно найти регистр не в конфигураторе, а в пользовательском режиме (например, чтобы просмотреть движения документа), используйте меню Все функции. Этот способ работает в 1С:Бухгалтерии, 1С:УТ и других типовых конфигурациях:

  1. Откройте в пользовательском режиме.
  2. Нажмите Ctrl+Shift+F12 (или перейдите в Сервис → Все функции).
  3. В поле поиска введите название регистра или часть имени (например, «НакоплениеТоваров»).
  4. В результатах выберите нужный регистр и откройте его форму.

Преимущество этого метода — возможность просматривать данные регистра без прав конфигуратора. Однако учтите:

  • 🔐 Доступ к некоторым регистрам может быть ограничен правами пользователя.
  • 📊 В меню «Все функции» отображаются только те регистры, для которых предусмотрены формы просмотра.
  • 🔧 Регистры бухгалтерии часто скрыты — для их просмотра может потребоваться переход в Операции → Бухгалтерский учёт.
💡

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

3. Поиск регистров по связанным документам

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

  1. Откройте документ в пользовательском режиме (например, «Приходный ордер на товары»).
  2. Нажмите кнопку Движения (или Ещё → Движения документа).
  3. В открывшемся окне вы увидите список регистров, которые затрагивает этот документ. Кликните по названию регистра, чтобы открыть его форму.

Этот метод особенно полезен, если:

  • 📦 Вы не знаете точного названия регистра, но понимаете, какой бизнес-процесс он обслуживает.
  • 🔄 Нужно проверить, какие регистры обновляет конкретный документ (например, при отладке ошибок проводок).
  • 🔍 Вы ищете регистр накопления для анализа остатков по определённому товару или контрагенту.

Пример: Если вам нужен регистр остатков товаров на складе, откройте документ Перемещение товаров, посмотрите его движения — там будет регистр накопления типа «ОстаткиТоваров» или «ТоварыНаСкладах».

⚠️ Внимание: Не все документы отображают движения в пользовательском режиме. В некоторых конфигурациях (например, 1С:ЗУП) для просмотра движений требуются права администратора.

4. Программный поиск регистров (для разработчиков)

Если вы занимаетесь разработкой или отладкой, можно найти регистры с помощью встроенного языка 1С. Ниже приведены полезные запросы и методы:

4.1. Поиск по имени через Метаданные

Используйте следующий код для поиска регистра по части имени:

Процедура НайтиРегистрПоИмени(ЧастьИмени)

Метаданные = Метаданные.ПолучитьМетаданные();

Для Каждого Регистр Из Метаданные.Регистры Цикл

Если Найти(НижнийРег(Регистр.Имя), НижнийРег(ЧастьИмени)) > 0 Тогда

Сообщить("Найден регистр: " + Регистр.Имя + " (Тип: " + Регистр.ТипОписания() + ")");

КонецЕсли;

КонецЦикла;

КонецПроцедуры

4.2. Поиск регистров, используемых в документе

Чтобы узнать, какие регистры затрагивает конкретный документ:

Док = Документы.ПриходныйОрдерНаТовары.СоздатьДокумент();

Движения = Док.ПолучитьДвижения();

Для Каждого Движение Из Движения Цикл

Сообщить("Регистр: " + Движение.Регистр.Имя);

КонецЦикла;

4.3. Поиск по типу регистра

Если нужно найти все регистры определённого типа (например, регистры накопления):

Метаданные = Метаданные.ПолучитьМетаданные();

РегистрыНакопления = Метаданные.РегистрыНакопления;

Для Каждого Регистр Из РегистрыНакопления Цикл

Сообщить(Регистр.Имя);

КонецЦикла;

Эти методы полезны для:

  • 🔧 Автоматизации проверок при обновлении конфигурации.
  • 🐞 Отладки ошибок, связанных с движениями документов.
  • 📂 Создания отчётов по структуре метаданных.
⚠️ Внимание: При работе с метаданными через код учитывайте, что некоторые объекты могут быть недоступны в пользовательском режиме. Для полного доступа используйте Конфигуратор с правами администратора.

☑️ Подготовка к программному поиску регистров

Выполнено: 0 / 4

5. Поиск регистров через отчёты и обработки

Многие типовые конфигурации содержат встроенные отчёты, которые позволяют анализировать данные регистров без прямого доступа к ним. Например:

  • 📊 Отчёт «Анализ субконто»1С:Бухгалтерии) показывает данные регистров бухгалтерии.
  • 📦 Отчёт «Остатки товаров» использует регистры накопления для отображения складских остатков.
  • 💰 Отчёт «Взаиморасчёты с контрагентами» работает с регистрами расчётов.

Чтобы найти регистр через отчёт:

  1. Откройте нужный отчёт (например, Операции → Отчёты → Анализ субконто).
  2. Настройте отборы так, чтобы отчёт отображал данные, связанные с искомым регистром.
  3. Посмотрите настройки отчёта (кнопка Настройки) — там может быть указано, какой регистр используется как источник данных.

В некоторых конфигурациях (например, 1С:ERP) есть специализированные обработки для анализа регистров:

  • 🛠️ Универсальный отчёт по регистрам — позволяет строить произвольные выборки.
  • 🔍 Просмотр движений документа — показывает все регистры, которые затрагивает документ.

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

6. Анализ структуры базы данных (для опытных пользователей)

Для глубокого анализа регистров можно использовать прямой доступ к таблицам базы данных. Этот метод требует знаний SQL и прав доступа к СУБД (например, Microsoft SQL Server или PostgreSQL). Регистры в хранятся в таблицах с префиксами:

Тип регистра Префикс таблицы Пример имени таблицы
Регистр сведений _InfoRg _InfoRg12345 (где 12345 — ID регистра)
Регистр накопления _AccumRg _AccumRg67890
Регистр бухгалтерии _AccRg _AccRg54321
Регистр расчётов _CalcRg _CalcRg98765

Чтобы найти таблицу регистра:

  1. Подключитесь к базе данных через SQL Management Studio или pgAdmin.
  2. Выполните запрос для поиска таблиц по префиксу:
    SELECT * FROM INFORMATION_SCHEMA.TABLES
    

    WHERE TABLE_NAME LIKE '_AccumRg%'

  3. По ID таблицы (цифры в конце имени) найдите соответствующий регистр в метаданных.

Этот метод полезен для:

  • 🔧 Оптимизации производительности (анализ индексов, размеров таблиц).
  • 🐞 Диагностики ошибок блокировок или повреждения данных.
  • 📊 Создания внешних отчётов с использованием SQL.
⚠️ Внимание: Прямая работа с таблицами базы данных может привести к повреждению данных. Не изменяйте таблицы регистров вручную — используйте только для чтения!
Как узнать ID регистра по имени таблицы?

ID регистра — это цифры в конце имени таблицы (например, для _AccumRg12345 ID равен 12345). Чтобы найти регистр в конфигураторе по ID, используйте метод Метаданные.НайтиПоИдентификатору(12345).

7. Поиск регистров в внешних отчётах и обработках

Если регистр не удаётся найти стандартными способами, проверьте внешние отчёты и обработки, подключённые к конфигурации. Многие компании используют сторонние решения, которые работают с нестандартными регистрами. Чтобы их найти:

  1. Откройте Файл → Открыть в конфигураторе.
  2. Выберите тип файла Внешняя обработка (.epf) или Внешний отчёт (.erf).
  3. Просмотрите код обработки — там могут быть ссылки на регистры, не видно в стандартном интерфейсе.

Примеры внешних обработок, которые часто содержат ссылки на регистры:

  • 📈 Универсальные отчёты по регистрам (например, «Отчёт по регистру накопления»).
  • 🔄 Обработки переноса данных между регистрами.
  • 🛠️ Инструменты для исправления движений (например, «Почистка регистров»).

Если вы не уверены, какой регистр используется в обработке, поищите в её коде строки вида:

Регистр = Метаданные.РегистрыНакопления.ОстаткиТоваров;

8. Типичные ошибки при поиске регистров и как их избежать

Даже опытные пользователи иногда сталкиваются с трудностями при поиске регистров. Вот наиболее распространённые ошибки и способы их решения:

Ошибка Причина Решение
Регистр не находится через «Все функции» Отсутствуют права доступа или форма просмотра Используйте конфигуратор или программный поиск
В дереве метаданных нет папки «Регистры» Открыта база в пользовательском режиме, а не в конфигураторе Запустите с удержанием Shift для входа в конфигуратор
При поиске по документу не отображаются движения Документ не проведён или движения отключены Проверьте статус документа и настройки прав
SQL-запрос не возвращает данные регистра Неверный префикс таблицы или отсутствуют права на чтение Уточните префикс в документации или используйте INFORMATION_SCHEMA

Дополнительные советы:

  • 🔍 Если регистр «исчез» после обновления конфигурации, проверьте журнал обновлений — возможно, он был переименован или перенесён в другую подсистему.
  • 📁 В крупных базах используйте поиск по синонимам: некоторые регистры имеют альтернативные имена (например, «ТоварыНаСкладах» и «ОстаткиНоменклатуры»).
  • 🔄 Если регистр найден, но данные в нём неактуальны, проверьте периодичность обновления (например, регистры сведений могут обновляться раз в день).
💡

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

FAQ: Частые вопросы о поиске регистров в 1С

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

Откройте документ в пользовательском режиме, нажмите Движения (или Ещё → Движения документа). В списке движений будут указаны все регистры, которые затрагивает этот документ. Кликните по названию регистра, чтобы открыть его форму.

Можно ли найти регистр по названию колонки в отчёте?

Да, но это требует анализа. Откройте настройки отчёта (Настройки → Показатели) и посмотрите, какие поля используются. Если поле связано с регистром, там будет указано его имя. Альтернативно можно воспользоваться консолью запросов (в конфигураторе) и выполнить запрос к метаданным, чтобы найти регистр по имени поля.

Почему в меню «Все функции» не отображаются регистры бухгалтерии?

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

  1. Открыть Операции → Бухгалтерский учёт → Проводки и посмотреть, какие регистры используются.
  2. Использовать отчёт Анализ субконто — он работает напрямую с регистрами бухгалтерии.
Как экспортировать данные регистра в Excel?

Есть несколько способов:

  1. Откройте регистр через Все функции, выделите данные и скопируйте в Excel (Ctrl+C → Ctrl+V).
  2. Используйте внешнюю обработку (например, «Выгрузка в Excel» из каталога ).
  3. Напишите запрос на встроенном языке и экспортируйте результат с помощью метода ЗаписатьExcel.

Пример кода для экспорта:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрНакопления.ОстаткиТоваров";

Результат = Запрос.Выполнить();

Результат.Выгрузить(Новый ЗаписьДанныхExcel("C:\temp\Остатки.xlsx"));

Можно ли восстановить удалённый регистр?

Если регистр был удалён в конфигураторе, его можно восстановить только из резервной копии или файла конфигурации (.cf). Для этого:

  1. Откройте резервную копию в конфигураторе.
  2. Найдите регистр в дереве метаданных и экспортируйте его в файл (Файл → Сохранить как...).
  3. Импортируйте регистр в текущую конфигурацию (Файл → Открыть...).

Если резервной копии нет, восстановить регистр невозможно — придётся создавать его заново.