Работа с регистрами в 1С:Предприятие 8.3 — одна из ключевых задач для разработчиков, администраторов и опытных пользователей. Эти объекты конфигурации хранят данные о движениях документов, остатках, накоплениях и другой аналитической информации. Однако найти нужный регистр не всегда просто: интерфейс конфигуратора перегружен меню, а названия регистров могут дублироваться в разных подсистемах. В этой статье разберём все возможные способы поиска регистров — от базовых до продвинутых, с учётом особенностей платформы и типичных ошибок.
Важно понимать, что регистры в 1С делятся на несколько типов: регистры сведений (для хранения справочной информации), регистры накопления (для учёта остатков и оборотов), регистры бухгалтерии (для проводок) и регистры расчётов (для взаимозачётов). Методы их поиска универсальны, но некоторые нюансы зависят от типа. Например, регистры бухгалтерии часто скрыты в подсистеме «Бухгалтерский учёт», а регистры сведений могут быть разбросаны по разным разделам.
Если вы новичок, начните с первых двух разделов — там описаны простые способы через интерфейс. Опытным пользователям и разработчикам пригодятся разделы про программный поиск и анализ метаданных. В конце статьи вы найдёте уникальный приём для поиска регистров по связанным документам, который редко упоминается в стандартных инструкциях.
1. Поиск регистров через дерево метаданных в конфигураторе
Самый очевидный способ — использовать дерево метаданных в режиме конфигуратора. Этот метод подходит для всех версий 1С:Предприятие 8.3 и не требует знания программирования. Чтобы открыть дерево:
- Запустите 1С:Предприятие в режиме
Конфигуратор(для этого удерживайтеShiftпри запуске или выберите пункт в меню запуска). - В левой части окна откроется панель
Объекты конфигурации— это и есть дерево метаданных. - Разверните ветку
Регистры— здесь будут папки для каждого типа регистров.
Внутри каждой папки регистры сгруппированы по подсистемам (например, «Запасы», «Расчёты с контрагентами»). Чтобы быстрее найти нужный регистр:
- 🔍 Используйте поиск по дереву: нажмите
Ctrl+Fи введите часть названия регистра (например, «ОстаткиТоваров»). - 📁 Проверьте вложенные подсистемы: некоторые регистры могут быть спрятаны в неочевидных разделах (например, регистры для расчёта зарплаты часто лежат в «Зарплата и кадры»).
- 🔄 Если дерево не отображается, включите его через меню
Вид → Дерево метаданных.
⚠️ Внимание: В крупных конфигурациях (например, 1С:ERP или 1С:Управление холдингом) дерево метаданных может содержать сотни регистров. Не пытайтесь просматривать их все подряд — используйте фильтрацию по имени или типу.
2. Быстрый поиск через меню «Все функции»
Если вам нужно найти регистр не в конфигураторе, а в пользовательском режиме (например, чтобы просмотреть движения документа), используйте меню Все функции. Этот способ работает в 1С:Бухгалтерии, 1С:УТ и других типовых конфигурациях:
- Откройте 1С в пользовательском режиме.
- Нажмите
Ctrl+Shift+F12(или перейдите вСервис → Все функции). - В поле поиска введите название регистра или часть имени (например, «НакоплениеТоваров»).
- В результатах выберите нужный регистр и откройте его форму.
Преимущество этого метода — возможность просматривать данные регистра без прав конфигуратора. Однако учтите:
- 🔐 Доступ к некоторым регистрам может быть ограничен правами пользователя.
- 📊 В меню «Все функции» отображаются только те регистры, для которых предусмотрены формы просмотра.
- 🔧 Регистры бухгалтерии часто скрыты — для их просмотра может потребоваться переход в
Операции → Бухгалтерский учёт.
Если регистр не находится через «Все функции», попробуйте открыть его через связанный документ: откройте документ (например, «Реализация товаров»), нажмите «Движения» и посмотрите, какие регистры он затрагивает.
3. Поиск регистров по связанным документам
Один из самых эффективных способов — анализ движений документов. Если вы знаете, какой документ работает с нужным регистром (например, «Поступление товаров» влияет на остатки), можно найти регистр через его движения:
- Откройте документ в пользовательском режиме (например, «Приходный ордер на товары»).
- Нажмите кнопку
Движения(илиЕщё → Движения документа). - В открывшемся окне вы увидите список регистров, которые затрагивает этот документ. Кликните по названию регистра, чтобы открыть его форму.
Этот метод особенно полезен, если:
- 📦 Вы не знаете точного названия регистра, но понимаете, какой бизнес-процесс он обслуживает.
- 🔄 Нужно проверить, какие регистры обновляет конкретный документ (например, при отладке ошибок проводок).
- 🔍 Вы ищете регистр накопления для анализа остатков по определённому товару или контрагенту.
Пример: Если вам нужен регистр остатков товаров на складе, откройте документ Перемещение товаров, посмотрите его движения — там будет регистр накопления типа «ОстаткиТоваров» или «ТоварыНаСкладах».
⚠️ Внимание: Не все документы отображают движения в пользовательском режиме. В некоторых конфигурациях (например, 1С:ЗУП) для просмотра движений требуются права администратора.
4. Программный поиск регистров (для разработчиков)
Если вы занимаетесь разработкой или отладкой, можно найти регистры с помощью встроенного языка 1С. Ниже приведены полезные запросы и методы:
4.1. Поиск по имени через Метаданные
Используйте следующий код для поиска регистра по части имени:
Процедура НайтиРегистрПоИмени(ЧастьИмени)
Метаданные = Метаданные.ПолучитьМетаданные();
Для Каждого Регистр Из Метаданные.Регистры Цикл
Если Найти(НижнийРег(Регистр.Имя), НижнийРег(ЧастьИмени)) > 0 Тогда
Сообщить("Найден регистр: " + Регистр.Имя + " (Тип: " + Регистр.ТипОписания() + ")");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
4.2. Поиск регистров, используемых в документе
Чтобы узнать, какие регистры затрагивает конкретный документ:
Док = Документы.ПриходныйОрдерНаТовары.СоздатьДокумент();
Движения = Док.ПолучитьДвижения();
Для Каждого Движение Из Движения Цикл
Сообщить("Регистр: " + Движение.Регистр.Имя);
КонецЦикла;
4.3. Поиск по типу регистра
Если нужно найти все регистры определённого типа (например, регистры накопления):
Метаданные = Метаданные.ПолучитьМетаданные();
РегистрыНакопления = Метаданные.РегистрыНакопления;
Для Каждого Регистр Из РегистрыНакопления Цикл
Сообщить(Регистр.Имя);
КонецЦикла;
Эти методы полезны для:
- 🔧 Автоматизации проверок при обновлении конфигурации.
- 🐞 Отладки ошибок, связанных с движениями документов.
- 📂 Создания отчётов по структуре метаданных.
⚠️ Внимание: При работе с метаданными через код учитывайте, что некоторые объекты могут быть недоступны в пользовательском режиме. Для полного доступа используйте Конфигуратор с правами администратора.
☑️ Подготовка к программному поиску регистров
5. Поиск регистров через отчёты и обработки
Многие типовые конфигурации 1С содержат встроенные отчёты, которые позволяют анализировать данные регистров без прямого доступа к ним. Например:
- 📊 Отчёт «Анализ субконто» (в 1С:Бухгалтерии) показывает данные регистров бухгалтерии.
- 📦 Отчёт «Остатки товаров» использует регистры накопления для отображения складских остатков.
- 💰 Отчёт «Взаиморасчёты с контрагентами» работает с регистрами расчётов.
Чтобы найти регистр через отчёт:
- Откройте нужный отчёт (например,
Операции → Отчёты → Анализ субконто). - Настройте отборы так, чтобы отчёт отображал данные, связанные с искомым регистром.
- Посмотрите настройки отчёта (кнопка
Настройки) — там может быть указано, какой регистр используется как источник данных.
В некоторых конфигурациях (например, 1С:ERP) есть специализированные обработки для анализа регистров:
- 🛠️
Универсальный отчёт по регистрам— позволяет строить произвольные выборки. - 🔍
Просмотр движений документа— показывает все регистры, которые затрагивает документ.
Пример: Если вам нужен регистр, который хранит данные о продажах по менеджерам, откройте отчёт Продажи по менеджерам и посмотрите его настройки — там будет указан регистр накопления или сведений, который используется для хранения этих данных.
6. Анализ структуры базы данных (для опытных пользователей)
Для глубокого анализа регистров можно использовать прямой доступ к таблицам базы данных. Этот метод требует знаний SQL и прав доступа к СУБД (например, Microsoft SQL Server или PostgreSQL). Регистры в 1С хранятся в таблицах с префиксами:
| Тип регистра | Префикс таблицы | Пример имени таблицы |
|---|---|---|
| Регистр сведений | _InfoRg |
_InfoRg12345 (где 12345 — ID регистра) |
| Регистр накопления | _AccumRg |
_AccumRg67890 |
| Регистр бухгалтерии | _AccRg |
_AccRg54321 |
| Регистр расчётов | _CalcRg |
_CalcRg98765 |
Чтобы найти таблицу регистра:
- Подключитесь к базе данных 1С через SQL Management Studio или pgAdmin.
- Выполните запрос для поиска таблиц по префиксу:
SELECT * FROM INFORMATION_SCHEMA.TABLESWHERE TABLE_NAME LIKE '_AccumRg%'
- По ID таблицы (цифры в конце имени) найдите соответствующий регистр в метаданных.
Этот метод полезен для:
- 🔧 Оптимизации производительности (анализ индексов, размеров таблиц).
- 🐞 Диагностики ошибок блокировок или повреждения данных.
- 📊 Создания внешних отчётов с использованием SQL.
⚠️ Внимание: Прямая работа с таблицами базы данных может привести к повреждению данных. Не изменяйте таблицы регистров вручную — используйте только для чтения!
Как узнать ID регистра по имени таблицы?
ID регистра — это цифры в конце имени таблицы (например, для _AccumRg12345 ID равен 12345). Чтобы найти регистр в конфигураторе по ID, используйте метод Метаданные.НайтиПоИдентификатору(12345).
7. Поиск регистров в внешних отчётах и обработках
Если регистр не удаётся найти стандартными способами, проверьте внешние отчёты и обработки, подключённые к конфигурации. Многие компании используют сторонние решения, которые работают с нестандартными регистрами. Чтобы их найти:
- Откройте
Файл → Открытьв конфигураторе. - Выберите тип файла
Внешняя обработка (.epf)илиВнешний отчёт (.erf). - Просмотрите код обработки — там могут быть ссылки на регистры, не видно в стандартном интерфейсе.
Примеры внешних обработок, которые часто содержат ссылки на регистры:
- 📈 Универсальные отчёты по регистрам (например, «Отчёт по регистру накопления»).
- 🔄 Обработки переноса данных между регистрами.
- 🛠️ Инструменты для исправления движений (например, «Почистка регистров»).
Если вы не уверены, какой регистр используется в обработке, поищите в её коде строки вида:
Регистр = Метаданные.РегистрыНакопления.ОстаткиТоваров;
8. Типичные ошибки при поиске регистров и как их избежать
Даже опытные пользователи 1С иногда сталкиваются с трудностями при поиске регистров. Вот наиболее распространённые ошибки и способы их решения:
| Ошибка | Причина | Решение |
|---|---|---|
| Регистр не находится через «Все функции» | Отсутствуют права доступа или форма просмотра | Используйте конфигуратор или программный поиск |
| В дереве метаданных нет папки «Регистры» | Открыта база в пользовательском режиме, а не в конфигураторе | Запустите 1С с удержанием Shift для входа в конфигуратор |
| При поиске по документу не отображаются движения | Документ не проведён или движения отключены | Проверьте статус документа и настройки прав |
| SQL-запрос не возвращает данные регистра | Неверный префикс таблицы или отсутствуют права на чтение | Уточните префикс в документации или используйте INFORMATION_SCHEMA |
Дополнительные советы:
- 🔍 Если регистр «исчез» после обновления конфигурации, проверьте журнал обновлений — возможно, он был переименован или перенесён в другую подсистему.
- 📁 В крупных базах используйте поиск по синонимам: некоторые регистры имеют альтернативные имена (например, «ТоварыНаСкладах» и «ОстаткиНоменклатуры»).
- 🔄 Если регистр найден, но данные в нём неактуальны, проверьте периодичность обновления (например, регистры сведений могут обновляться раз в день).
Если регистр не удаётся найти ни одним из способов, проверьте, не является ли он виртуальным (например, регистр бухгалтерии, который создаётся динамически при проведении документа).
FAQ: Частые вопросы о поиске регистров в 1С
Как найти регистр, если я знаю только документ, который его использует?
Откройте документ в пользовательском режиме, нажмите Движения (или Ещё → Движения документа). В списке движений будут указаны все регистры, которые затрагивает этот документ. Кликните по названию регистра, чтобы открыть его форму.
Можно ли найти регистр по названию колонки в отчёте?
Да, но это требует анализа. Откройте настройки отчёта (Настройки → Показатели) и посмотрите, какие поля используются. Если поле связано с регистром, там будет указано его имя. Альтернативно можно воспользоваться консолью запросов (в конфигураторе) и выполнить запрос к метаданным, чтобы найти регистр по имени поля.
Почему в меню «Все функции» не отображаются регистры бухгалтерии?
Регистры бухгалтерии часто скрыты от прямого доступа, так как работа с ними ведётся через документы и отчёты. Чтобы их увидеть, попробуйте:
- Открыть
Операции → Бухгалтерский учёт → Проводкии посмотреть, какие регистры используются. - Использовать отчёт
Анализ субконто— он работает напрямую с регистрами бухгалтерии.
Как экспортировать данные регистра в Excel?
Есть несколько способов:
- Откройте регистр через
Все функции, выделите данные и скопируйте в Excel (Ctrl+C → Ctrl+V). - Используйте внешнюю обработку (например, «Выгрузка в Excel» из каталога 1С).
- Напишите запрос на встроенном языке и экспортируйте результат с помощью метода
ЗаписатьExcel.
Пример кода для экспорта:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрНакопления.ОстаткиТоваров";
Результат = Запрос.Выполнить();
Результат.Выгрузить(Новый ЗаписьДанныхExcel("C:\temp\Остатки.xlsx"));
Можно ли восстановить удалённый регистр?
Если регистр был удалён в конфигураторе, его можно восстановить только из резервной копии или файла конфигурации (.cf). Для этого:
- Откройте резервную копию в конфигураторе.
- Найдите регистр в дереве метаданных и экспортируйте его в файл (
Файл → Сохранить как...). - Импортируйте регистр в текущую конфигурацию (
Файл → Открыть...).
Если резервной копии нет, восстановить регистр невозможно — придётся создавать его заново.