Просмотр данных регистра сведений: пять рабочих способов

· 9 мин

Содержание

Данные регистра сведений в 1С 8.3 быстрее всего открыть через главное меню → Все функции → Регистры сведений. Если команды Все функции в меню нет, её включают в настройках за полминуты. Это самый прямой путь: регистр открывается списком записей, как обычный справочник.

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

Из чего состоит регистр и что в нём видно

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

  • 📐 Измерения — ключ записи. По ним ищут и отбирают: валюта, номенклатура, организация, сотрудник.
  • 📊 Ресурсы — значения, которые регистр хранит: курс, цена, ставка, процент.
  • 🏷️ Реквизиты — дополнительные поля-пометки, по которым не отбирают.

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

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

Ещё одно деление — независимый регистр и подчинённый регистратору. У подчинённого каждая запись привязана к документу-регистратору (поле Регистратор), и напрямую её не отредактируешь — только через проведение документа. У независимого записи заводятся вручную или обработкой.

В форме списка это видно сразу: колонки измерений и ресурсов идут первыми, у периодического регистра добавляется колонка Период, у подчинённого — Регистратор. Количество записей оценивают по полосе прокрутки или выгрузив список в табличный документ. Если колонок слишком много и нужные теряются, лишние прячут через настройку формы.

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

Открываем регистр списком через «Все функции»

Самый быстрый просмотр в режиме «1С:Предприятие» — открыть регистр как список записей.

  1. Нажмите кнопку главного меню — в интерфейсе «Такси» это значок со стрелкой вниз в левом верхнем углу.
  2. Выберите пункт Все функции.
  3. В дереве объектов раскройте ветку Регистры сведений.
  4. Найдите нужный регистр по имени и откройте двойным щелчком.

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

Если пункта Все функции в меню нет, его надо включить:

Включаем команду «Все функции»
Выполнено: 0 / 4

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

У многих регистров в типовых конфигурациях есть и «штатная» команда открытия в разделах. Например, курсы валют в 1С:Бухгалтерии открываются из Справочники → Валюты → Загрузить курсы валют и далее по ссылке к истории курса. Но путь через Все функции универсален и работает для любого регистра.

Консоль запросов: отбор и выборка записей

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

В части типовых конфигураций консоль встроена: Все функции → Стандартные → Консоль запросов. Если встроенной нет, берут внешнюю обработку консоли запросов (распространяется в составе инструментов разработчика) и открывают через Файл → Открыть.

Простейший запрос — выбрать все записи регистра:

ВЫБРАТЬ
    *
ИЗ
    РегистрСведений.КурсыВалют

Отбор по значению измерения задают через параметр:

ВЫБРАТЬ
    КурсыВалют.Период,
    КурсыВалют.Валюта,
    КурсыВалют.Курс,
    КурсыВалют.Кратность
ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют
ГДЕ
    КурсыВалют.Валюта = &Валюта
УПОРЯДОЧИТЬ ПО
    КурсыВалют.Период

Параметр &Валюта задаётся в консоли отдельным полем перед запуском — туда подставляется ссылка на нужный элемент справочника.

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

ВЫБРАТЬ
    СрезПоследних.Валюта,
    СрезПоследних.Курс
ИЗ
    РегистрСведений.КурсыВалют.СрезПоследних(&НаДату, ) КАК СрезПоследних

СрезПоследних(&НаДату, ) возвращает по одной последней записи на дату для каждой комбинации измерений. Второй параметр в скобках — условие отбора, его можно оставить пустым. Есть и зеркальная таблица СрезПервых — первая запись на дату.

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

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

Структура и данные через конфигуратор

Конфигуратор показывает не сами записи, а устройство регистра — и это нужно, чтобы правильно строить отбор.

Откройте конфигуратор, в дереве конфигурации раскройте Регистры сведений и выберите нужный. В окне редактирования видно:

  • вкладку Данные — состав измерений, ресурсов и реквизитов с их типами;
  • свойство Периодичность — непериодический, в пределах секунды, дня, месяца, квартала, года;
  • свойство Режим записи — независимый или подчинение регистратору;
  • ведущие измерения и признак индексирования — от них зависит скорость отбора.

Сами данные конфигуратор напрямую не открывает. Чтобы посмотреть значения из конфигуратора, запускают базу в режиме отладки (Отладка → Начать отладку или F5) и уже в запущенном «1С:Предприятии» смотрят регистр списком либо через консоль запросов.

Для разовой проверки значения прямо во время отладки подойдёт табло или окно Вычислить выражение: на остановке в точке останова впишите выражение с обращением к менеджеру регистра и получите значение. Это способ для разработчика, когда код уже выполняется и нужно увидеть, что реально лежит в регистре на этот момент.

У периодического регистра последнюю запись на дату отдаёт метод менеджера ПолучитьПоследнее. Он возвращает структуру ресурсов, а отбор по измерениям задаётся вторым параметром:

Отбор = Новый Структура("Валюта", ВыбраннаяВалюта);
Запись = РегистрыСведений.КурсыВалют.ПолучитьПоследнее('20260101000000', Отбор);
Сообщить("Курс: " + Формат(Запись.Курс, "ЧГ=0"));

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

Запуск в режиме отладки стартует обычный сеанс «1С:Предприятия» от вашего имени. Монопольный доступ к базе для этого не нужен — другие пользователи продолжают работать. Монополия требуется только для изменения структуры конфигурации и загрузки .dt.

Универсальный отчёт — просмотр без запросов

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

В 1С:Бухгалтерии 8, 1С:ЗУП и 1С:Управлении торговлей путь к отчёту отличается незначительно:

КонфигурацияГде открыть универсальный отчёт
1С:Бухгалтерия 3.0Отчёты → Универсальный отчёт
1С:ЗУП 3.1Администрирование → ... → Универсальный отчёт (раздел с сервисными отчётами)
1С:Управление торговлей 11НСИ и администрирование → Универсальный отчёт

Порядок настройки одинаковый:

  1. В поле типа объекта выберите Регистр сведений.
  2. В соседнем поле выберите сам регистр по имени.
  3. Для таблицы данных укажите основную таблицу регистра либо срез последних — если регистр периодический, срез даст по одной актуальной записи.
  4. Нажмите Сформировать.

Через кнопку Настройки добавляют отборы, группировки по измерениям и выбор выводимых колонок. Это удобно, когда нужно свести ресурсы по измерению — например, посмотреть все цены по одной номенклатуре за период или сравнить значения по нескольким организациям в одной таблице. Настроенный вариант отчёта сохраняется, и в следующий раз его открывают готовым, не задавая отборы заново.

Каким способом смотреть регистр?

Отборы, срезы и скорость на больших регистрах

На регистре в сотни тысяч записей способ отбора определяет скорость.

Отбор по измерениям — самый быстрый: измерения индексируются, и платформа сразу отбирает нужные записи. Отбор по ресурсу или реквизиту индекса не использует и идёт медленнее, перебором.

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

При отборе в срезе условие передают параметром виртуальной таблицы, а не через ГДЕ после выборки:

ВЫБРАТЬ
    СрезПоследних.Номенклатура,
    СрезПоследних.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
        &НаДату,
        ТипЦен = &ТипЦен) КАК СрезПоследних

Так платформа отберёт записи ещё при построении среза, а не после — это заметно быстрее на большом регистре.

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

Ещё один приём для больших периодических регистров — не тянуть лишние поля. В списке и в запросе выводите только нужные колонки: чем меньше ресурсов и реквизитов попадает в выборку, тем быстрее она строится и тем легче читается результат. В универсальном отчёте для этого снимают лишние поля в настройках, а в запросе явно перечисляют колонки вместо ВЫБРАТЬ *.

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

Частые вопросы

Чем регистр сведений отличается от регистра накопления?
Регистр сведений хранит значения «как есть» на момент записи (курс, цена, ставка) и перезаписывает их. Регистр накопления копит обороты и считает остатки (приход-расход), значения в нём складываются. Для «текущего состояния чего-либо» — сведений, для «сколько накопилось» — накопления.
Почему в регистре нельзя отредактировать строку вручную?
Скорее всего, регистр подчинён регистратору — его записи создаёт документ при проведении. Чтобы изменить такие данные, правят и перепроводят документ-регистратор, а не саму строку регистра. Прямое редактирование доступно только у независимых регистров.
Как посмотреть, каким документом создана запись регистра?
У регистра, подчинённого регистратору, в списке есть колонка Регистратор со ссылкой на документ. Если колонки не видно, добавьте её через настройку формы списка (меню Ещё → Изменить форму или настройку колонок в командной панели).
Регистр периодический, но история не видна — почему?
Проверьте, не открыт ли срез вместо основной таблицы: срез показывает по одной последней записи на дату, а не всю историю. Для просмотра всех изменений откройте регистр списком или запросите основную таблицу регистра без среза.
Можно ли выгрузить данные регистра в таблицу или Excel?
Да. Из списка или из результата консоли запросов и универсального отчёта данные выводятся в табличный документ, который сохраняется в формат Excel через Файл → Сохранить как. Для списка используйте команду вывода в табличный документ в меню Ещё.