Просмотр данных регистра сведений: пять рабочих способов
Содержание
Данные регистра сведений в 1С 8.3 быстрее всего открыть через главное меню → Все функции → Регистры сведений. Если команды Все функции в меню нет, её включают в настройках за полминуты. Это самый прямой путь: регистр открывается списком записей, как обычный справочник.
Когда записей много или нужен отбор по конкретному значению измерения, одного списка мало. Ниже — четыре других способа посмотреть регистр: консоль запросов, просмотр структуры и данных через конфигуратор, универсальный отчёт и получение среза последних значений. Каждый способ решает свою задачу, и выбирать его стоит под цель.
Из чего состоит регистр и что в нём видно
Регистр сведений хранит данные не строками произвольной структуры, а по жёсткой схеме из трёх видов полей:
- 📐 Измерения — ключ записи. По ним ищут и отбирают: валюта, номенклатура, организация, сотрудник.
- 📊 Ресурсы — значения, которые регистр хранит: курс, цена, ставка, процент.
- 🏷️ Реквизиты — дополнительные поля-пометки, по которым не отбирают.
Комбинация всех измерений (плюс период и регистратор, если они есть) уникальна — двух одинаковых записей в регистре быть не может.
Регистр бывает периодическим и непериодическим. У периодического есть поле Период: регистр хранит историю изменений во времени — например, курсы валют по датам. У непериодического истории нет, запись просто перезаписывается.
Ещё одно деление — независимый регистр и подчинённый регистратору. У подчинённого каждая запись привязана к документу-регистратору (поле Регистратор), и напрямую её не отредактируешь — только через проведение документа. У независимого записи заводятся вручную или обработкой.
В форме списка это видно сразу: колонки измерений и ресурсов идут первыми, у периодического регистра добавляется колонка Период, у подчинённого — Регистратор. Количество записей оценивают по полосе прокрутки или выгрузив список в табличный документ. Если колонок слишком много и нужные теряются, лишние прячут через настройку формы.
Прежде чем искать данные, посмотрите в конфигураторе или в шапке списка, какие у регистра измерения и периодический ли он. От этого зависит, какой отбор сработает и будет ли доступен срез.
Открываем регистр списком через «Все функции»
Самый быстрый просмотр в режиме «1С:Предприятие» — открыть регистр как список записей.
- Нажмите кнопку главного меню — в интерфейсе «Такси» это значок со стрелкой вниз в левом верхнем углу.
- Выберите пункт
Все функции. - В дереве объектов раскройте ветку
Регистры сведений. - Найдите нужный регистр по имени и откройте двойным щелчком.
Откроется форма списка со всеми записями. По колонкам доступны стандартные сортировка и отбор (значок воронки в командной панели списка), поэтому можно сразу отфильтровать записи по значению измерения.
Если пункта Все функции в меню нет, его надо включить:
Команда Все функции доступна пользователю с правами на эти объекты. Если вы работаете под обычной учётной записью без полных прав, часть регистров в списке может не отображаться — это ограничение ролей, а не ошибка.
У многих регистров в типовых конфигурациях есть и «штатная» команда открытия в разделах. Например, курсы валют в 1С:Бухгалтерии открываются из Справочники → Валюты → Загрузить курсы валют и далее по ссылке к истории курса. Но путь через Все функции универсален и работает для любого регистра.
Консоль запросов: отбор и выборка записей
Когда нужен не весь регистр, а записи по условию (одна валюта, одна номенклатура, период), удобнее запрос. Консоль запросов — это обработка, которая выполняет текстовый запрос и показывает результат таблицей.
В части типовых конфигураций консоль встроена: Все функции → Стандартные → Консоль запросов. Если встроенной нет, берут внешнюю обработку
консоли запросов (распространяется в составе инструментов разработчика) и открывают через Файл → Открыть.
Простейший запрос — выбрать все записи регистра:
ВЫБРАТЬ
*
ИЗ
РегистрСведений.КурсыВалют
Отбор по значению измерения задают через параметр:
ВЫБРАТЬ
КурсыВалют.Период,
КурсыВалют.Валюта,
КурсыВалют.Курс,
КурсыВалют.Кратность
ИЗ
РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
КурсыВалют.Валюта = &Валюта
УПОРЯДОЧИТЬ ПО
КурсыВалют.Период
Параметр &Валюта задаётся в консоли отдельным полем перед запуском — туда подставляется ссылка на нужный элемент справочника.
Чтобы вместо всей истории получить значение на конкретную дату, у периодического регистра используют виртуальную таблицу среза:
ВЫБРАТЬ
СрезПоследних.Валюта,
СрезПоследних.Курс
ИЗ
РегистрСведений.КурсыВалют.СрезПоследних(&НаДату, ) КАК СрезПоследних
СрезПоследних(&НаДату, ) возвращает по одной последней записи на дату для каждой комбинации измерений. Второй параметр в скобках — условие отбора, его можно оставить пустым. Есть и зеркальная таблица СрезПервых — первая запись на дату.
Текст запроса не обязательно писать руками. В консоли есть кнопка конструктора запроса: он показывает дерево объектов базы, из которого регистр и его поля перетаскиваются в запрос, а условия и порядок задаются на вкладках мышью. Для разового просмотра это быстрее, а для повторяющейся проверки готовый текст запроса сохраняют в файл и открывают в консоли повторно.
Имя регистра в запросе пишется так же, как оно задано в конфигураторе (синоним в списках может отличаться от имени). Если сомневаетесь в имени — откройте в конструкторе запроса дерево объектов и выберите регистр из списка, тогда имя подставится правильно.
Структура и данные через конфигуратор
Конфигуратор показывает не сами записи, а устройство регистра — и это нужно, чтобы правильно строить отбор.
Откройте конфигуратор, в дереве конфигурации раскройте Регистры сведений и выберите нужный. В окне редактирования видно:
- вкладку
Данные— состав измерений, ресурсов и реквизитов с их типами; - свойство
Периодичность— непериодический, в пределах секунды, дня, месяца, квартала, года; - свойство
Режим записи— независимый или подчинение регистратору; - ведущие измерения и признак индексирования — от них зависит скорость отбора.
Сами данные конфигуратор напрямую не открывает. Чтобы посмотреть значения из конфигуратора, запускают базу в режиме отладки (Отладка → Начать отладку или F5) и уже в запущенном «1С:Предприятии» смотрят регистр списком либо через консоль запросов.
Для разовой проверки значения прямо во время отладки подойдёт табло или окно Вычислить выражение: на остановке в точке останова впишите выражение с обращением к менеджеру регистра и получите значение. Это способ для разработчика, когда код уже выполняется и нужно увидеть, что реально лежит в регистре на этот момент.
У периодического регистра последнюю запись на дату отдаёт метод менеджера ПолучитьПоследнее. Он возвращает структуру ресурсов, а отбор по измерениям задаётся вторым параметром:
Отбор = Новый Структура("Валюта", ВыбраннаяВалюта);
Запись = РегистрыСведений.КурсыВалют.ПолучитьПоследнее('20260101000000', Отбор);
Сообщить("Курс: " + Формат(Запись.Курс, "ЧГ=0"));
Зеркальный метод ПолучитьПервое отдаёт первую запись на дату. Это удобно вписать в табло: подставьте выражение РегистрыСведений.КурсыВалют.ПолучитьПоследнее(...) и раскройте полученную структуру — в ней видно значение каждого ресурса. Так не нужно открывать список или писать запрос, чтобы убедиться, что в регистре лежит именно то, что ожидается.
Запуск в режиме отладки стартует обычный сеанс «1С:Предприятия» от вашего имени. Монопольный доступ к базе для этого не нужен — другие пользователи продолжают работать. Монополия требуется только для изменения структуры конфигурации и загрузки .dt.
Универсальный отчёт — просмотр без запросов
Если запрос писать не хочется, а список неудобен, регистр показывает универсальный отчёт. Он строит таблицу по любому объекту базы, включая регистры сведений, с группировками и отбором мышью.
В 1С:Бухгалтерии 8, 1С:ЗУП и 1С:Управлении торговлей путь к отчёту отличается незначительно:
| Конфигурация | Где открыть универсальный отчёт |
|---|---|
| 1С:Бухгалтерия 3.0 | Отчёты → Универсальный отчёт |
| 1С:ЗУП 3.1 | Администрирование → ... → Универсальный отчёт (раздел с сервисными отчётами) |
| 1С:Управление торговлей 11 | НСИ и администрирование → Универсальный отчёт |
Порядок настройки одинаковый:
- В поле типа объекта выберите
Регистр сведений. - В соседнем поле выберите сам регистр по имени.
- Для таблицы данных укажите основную таблицу регистра либо срез последних — если регистр периодический, срез даст по одной актуальной записи.
- Нажмите
Сформировать.
Через кнопку Настройки добавляют отборы, группировки по измерениям и выбор выводимых колонок. Это удобно, когда нужно свести ресурсы по измерению — например, посмотреть все цены по одной номенклатуре за период или сравнить значения по нескольким организациям в одной таблице. Настроенный вариант отчёта сохраняется, и в следующий раз его открывают готовым, не задавая отборы заново.
Все функции → Регистры сведений. Отбор по колонке — через воронку в командной панели.ГДЕ для отбора, виртуальная таблица СрезПоследних для значения на дату.Отборы, срезы и скорость на больших регистрах
На регистре в сотни тысяч записей способ отбора определяет скорость.
Отбор по измерениям — самый быстрый: измерения индексируются, и платформа сразу отбирает нужные записи. Отбор по ресурсу или реквизиту индекса не использует и идёт медленнее, перебором.
Для периодического регистра почти всегда правильнее брать срез, а не основную таблицу: СрезПоследних возвращает одну актуальную запись на комбинацию измерений, а не всю историю, поэтому результат меньше и строится быстрее. Всю основную таблицу выгружают только когда нужна именно история изменений.
При отборе в срезе условие передают параметром виртуальной таблицы, а не через ГДЕ после выборки:
ВЫБРАТЬ
СрезПоследних.Номенклатура,
СрезПоследних.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&НаДату,
ТипЦен = &ТипЦен) КАК СрезПоследних
Так платформа отберёт записи ещё при построении среза, а не после — это заметно быстрее на большом регистре.
Порядок измерений в регистре тоже важен: отбор, идущий по первому (ведущему) измерению, использует индекс эффективнее, чем отбор по второму-третьему без ограничения первого. Если по какому-то измерению отбирают часто, а оно стоит не первым, разработчик помечает его как индексируемое — тогда отбор по нему тоже пойдёт по индексу.
Ещё один приём для больших периодических регистров — не тянуть лишние поля. В списке и в запросе выводите только нужные колонки: чем меньше ресурсов и реквизитов попадает в выборку, тем быстрее она строится и тем легче читается результат. В универсальном отчёте для этого снимают лишние поля в настройках, а в запросе явно перечисляют колонки вместо ВЫБРАТЬ *.
Отбор по ресурсу (например, «показать все записи, где курс больше 90») регистр выполняет перебором всех строк. На большом регистре это долго. Если такой отбор нужен регулярно, правильнее строить его в отчёте на сервере, а не фильтровать открытый список на клиенте.
Частые вопросы
Чем регистр сведений отличается от регистра накопления?
Почему в регистре нельзя отредактировать строку вручную?
Как посмотреть, каким документом создана запись регистра?
Регистратор со ссылкой на документ. Если колонки не видно, добавьте её через настройку формы списка (меню Ещё → Изменить форму или настройку колонок в командной панели).Регистр периодический, но история не видна — почему?
Можно ли выгрузить данные регистра в таблицу или Excel?
Файл → Сохранить как. Для списка используйте команду вывода в табличный документ в меню Ещё.