Где увидеть данные регистров 1С 8.3: от «Всех функций» до отладчика

· 9 мин

Содержание

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

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

Какие бывают регистры и что в них лежит

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

В 1С 8.3 четыре вида регистров:

ВидЧто хранитПример в типовыхЧто спрашивают у регистра
📘 Регистр сведенийЗначения во времени или без негоКурсы валют, цены номенклатуры, учётная политикаКакое значение действует на дату
📦 Регистр накопленияПриход и расход количества и суммТовары на складах, взаиморасчётыОстаток и обороты за период
📒 Регистр бухгалтерииПроводки по плану счетовХозрасчетный в Бухгалтерии 3.0Сальдо и обороты по счёту и субконто
🧮 Регистр расчётаНачисления с периодами действияНачисления и удержания в ЗУПФактический период, база расчёта

У регистров накопления есть два подвида:

  • 📊 остатков — хранит и движения, и итоги, умеет отдавать остаток на дату;
  • 🔄 оборотов — только обороты за период, остатков у него нет.

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

От вида регистра зависит, как его смотреть. Записи подчинённого регистра в списке руками не поправить, а у оборотного регистра бесполезно искать остатки.

Просмотр регистров в режиме «Предприятие»

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

Способ 1. Список записей через «Все функции»

  1. Нажмите кнопку главного меню (три полоски в левом верхнем углу) → Сервис → Параметры.
  2. Установите флажок «Отображать команду “Все функции”» и нажмите Применить.
  3. Откройте Главное меню → Все функции.
  4. Раскройте ветку нужного вида регистров и дважды щёлкните по регистру.

В списке видны все записи: период, регистратор, вид движения (приход или расход), измерения и ресурсы. Через меню Ещё можно задать отбор, например по номенклатуре или складу, и добавить скрытые колонки.

Отбор по колонке Регистратор быстро показывает, что сделал конкретный документ. Но удобнее зайти со стороны самого документа — это способ 2.

Способ 2. Движения документа

В форме проведённого документа нажмите кнопку ДтКт («Показать проводки и другие движения документа»). Откроется окно с вкладками: по одной на каждый регистр, куда документ записал данные. В Бухгалтерии 3.0 первая вкладка — проводки по регистру Хозрасчетный.

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

Способ 3. Универсальный отчёт

В Бухгалтерии 3.0 он лежит в Отчеты → Стандартные отчеты → Универсальный отчет. В шапке выбирают:

  • тип объекта — регистр накопления, сведений или бухгалтерии;
  • сам регистр;
  • таблицу — например, «Остатки», «Обороты», «Остатки и обороты» или срез последних для регистра сведений;
  • период.

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

СпособКогда выбратьОграничение
Все функцииПосмотреть сырые записи, найти конкретную строкуНет остатков на дату
Движения документаРазобрать один документТолько по одному документу
Универсальный отчётОстатки, обороты, срезы с группировкамиНет произвольных условий и соединений

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

Когда отчёта мало, берут консоль запросов. Это внешняя обработка .epf: её выпускают для каждой версии платформы, она входит в состав стандартных обработок с диска ИТС. Открывают через Главное меню → Файл → Открыть.

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

Виртуальные таблицы регистров

Регистр редко читают «как есть». Вместо этого обращаются к виртуальным таблицам — платформа сама считает итоги.

РегистрВиртуальные таблицы
Сведений (периодический)СрезПоследних, СрезПервых
Накопления остатковОстатки, Обороты, ОстаткиИОбороты
Накопления оборотовОбороты
БухгалтерииОстатки, Обороты, ОстаткиИОбороты, ОборотыДтКт, ДвиженияССубконто

Пример 1. Курс валюты на дату

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

Параметр &НаДату задаётся на вкладке параметров консоли. Срез последних вернёт по каждой валюте последнюю запись с датой не позже указанной.

Пример 2. Сальдо по счёту в Бухгалтерии 3.0

ВЫБРАТЬ
	Остатки.Счет,
	Остатки.Субконто1 КАК Контрагент,
	Остатки.СуммаОстатокДт,
	Остатки.СуммаОстатокКт
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(
		&НаДату,
		Счет В ИЕРАРХИИ (&Счет),
		,
		Организация = &Организация) КАК Остатки

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

Ловушка с границей периода

Остатки на дату 01.03 считаются на начало этой даты: движения, сделанные в ту же секунду, в остаток не входят. Если нужен остаток с учётом всех операций дня, передайте конец дня. Например, в параметре укажите 31.03 23:59:59 или в коде задайте границу с видом «включая»:

Запрос.УстановитьПараметр("НаДату",
	Новый Граница(КонецДня(Дата), ВидГраницы.Включая));

Из-за этой разницы новички часто видят расхождение между консолью и оборотно-сальдовой ведомостью.

Условия по измерениям пишите внутри параметров виртуальной таблицы, а не в ГДЕ. Так платформа сначала отберёт нужное, а потом посчитает итоги. На большой базе разница в скорости бывает в разы.

Отладчик: что записывает документ при проведении

Список и консоль показывают уже записанные данные. Если надо увидеть, что документ собирается записать, или понять, почему движения пустые, нужен отладчик.

  1. Откройте конфигуратор и найдите модуль объекта документа (в дереве конфигурации: документ → Открыть модуль объекта).
  2. Найдите процедуру ОбработкаПроведения и поставьте точку останова клавишей F9 в конце процедуры, до записи движений.
  3. Запустите базу из конфигуратора в режиме отладки: Отладка → Начать отладку → 1С:Предприятие (или F5).
  4. Проведите документ. Выполнение остановится на точке.
  5. Выделите выражение и нажмите Shift+F9 — откроется окно «Вычислить выражение».

Что вычислять:

  • 📝 Движения.ТоварыНаСкладах.Выгрузить() — набор записей регистра в виде таблицы значений. Имя регистра подставьте своё; посмотреть его можно в дереве конфигурации.
  • 🔍 Запрос.Выполнить().Выгрузить() — результат запроса, которым модуль собирает данные для движений.
  • 📋 Движения.ТоварыНаСкладах.Количество() — сколько строк набрано.

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

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

В типовых конфигурациях на БСП движения часто формирует не модуль документа, а общие модули проведения. Если в ОбработкаПроведения только вызов общей процедуры, зайдите в неё через F11 (шаг с заходом).

Регистры в конфигураторе: структура и таблицы базы

Конфигуратор данных регистров не показывает. Зато в нём видна структура, без которой запрос не составить.

Откройте ветку Регистры сведений (или накопления, бухгалтерии) в дереве конфигурации и дважды щёлкните по регистру. На вкладках окна свойств смотрят:

  • 🧩 измерения — разрезы учёта (склад, номенклатура, организация);
  • 💰 ресурсы — числа, которые суммируются (количество, сумма);
  • 🏷 реквизиты — дополнительные поля без итогов;
  • ⏱ периодичность и режим записи — для регистров сведений;
  • 📑 регистраторы — какие документы пишут движения.

Обратная задача — по имени таблицы в СУБД найти регистр. Она возникает, когда в журнале SQL или в технологическом журнале видно _AccumRg1234, а что это — непонятно. Платформа хранит регистры в таблицах с префиксами:

Префикс таблицыЧто хранит
_AccumRgДвижения регистра накопления
_AccumRgTИтоги регистра накопления
_InfoRgЗаписи регистра сведений
_AccRgПроводки регистра бухгалтерии

Соответствие имён метаданных и таблиц даёт функция ПолучитьСтруктуруХраненияБазыДанных(). Её результат — таблица значений, удобнее всего смотреть в отладчике или вывести консолью кода.

Не правьте таблицы регистров прямыми запросами к SQL. Платформа не узнает об изменениях: итоги разойдутся с движениями, а кеш данных останется старым. Читать через СУБД можно, менять — только средствами 1С.

Когда данные в регистре выглядят неправильно

Остаток в консоли не совпадает с ведомостью

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

Остатки «плывут», хотя движения правильные

Регистр остатков хранит итоги отдельно от движений. Если итоги испортились после сбоя, виртуальная таблица Остатки выдаст неверную цифру, а сырые движения будут в порядке.

Как исправить:

  1. Сделайте резервную копию базы .
  2. Откройте Все функции → Стандартные → Управление итогами.
  3. Выполните пересчёт итогов по нужному регистру.

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

Регистра нет в «Все функции»

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

Консоль пишет «Поле не найдено»

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

Диагностика: выберите симптом

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

Можно ли поправить запись регистра прямо в списке?
Только у регистра сведений с независимым режимом записи. Записи, подчинённые регистратору, меняются через документ: исправьте его и проведите заново.
Чем регистр накопления отличается от регистра бухгалтерии?
Регистр накопления хранит приход и расход по измерениям. Регистр бухгалтерии хранит проводки: у каждой записи есть счёт дебета и кредита, субконто и сумма.
Почему в «Все функции» нет регистров расчёта?
Они есть только в конфигурациях с расчётом зарплаты, например в ЗУП. В Бухгалтерии такой ветки может не быть вовсе.
Нужна ли консоль запросов, если есть универсальный отчёт?
Для остатков и оборотов с группировками отчёта хватает. Консоль нужна, когда требуется соединить два регистра, задать нестандартное условие или проверить запрос перед вставкой в код.
Видно ли в регистре, кто сделал запись?
В самом регистре — нет. Автора смотрят по документу-регистратору или в журнале регистрации.