-

Регистратор в запросе 1С

0
32645
30.03.2021 Айдар Фархутдинов

Содержание:

1.       Что такое регистратор в 1С 8.3?

2.       Отбор записей с конкретным типом регистратора в запросе  

 

1.    Что такое регистратор в 1С 8.3?


В данной статье будет рассмотрен принцип работы регистратора в 1С 8.3, в том числе поговори о том, как работать с ним в запросах, как правильно отбирать в запросе нужный тип регистратора.


Вначале дадим четкое определение понятию регистратора. Итак, регистратор – это некий документ, который создаёт записи в регистре сведений, точнее – документ, который владеет записями регистра.


Следующее понятие, которое также следует определить – запись. Это некоторый элемент в данных, которые находятся в регистре; поля с их значениями.


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


· регистр бухгалтерии – некий объект, в котором хранятся данные для бухгалтерского учёта. Благодаря этому объекту проводится аналитический учёт: многоуровневый и многомерный;

· регистр накопления – объект, в котором хранится информация о содержании материальных средств (деньги, продукция, материалы и так далее); с помощью этого объекта автоматизируются направления складского учёта, планирования и так далее.

· регистр расчёта – объект, в котором хранятся записи по видам расчёта и промежуточные данные, а также результаты расчетов;

· регистр сведений – объект, в котором хранятся различные данные, в виде резерва (валютные курсы, цены на предприятии и так далее).  

 

2.    Отбор записей с конкретным типом регистратора в запросе


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


Выбор конкретного типа регистратора

Рис. 1 Выбор конкретного типа регистратора

 

Итак, рассмотрим подробнее: первые 2 варианта – с использованием оператора «ССЫЛКА» или функции «ТИПЗНАЧЕНИЯ». Но с помощью «ВЫРАЗИТЬ» значение будет приведено лишь к одному из типов, как показано на скриншоте ниже:


ВЫРАЗИТЬ для приведения значения к определенному типу регистратора

Рис. 2 ВЫРАЗИТЬ для приведения значения к определенному типу регистратора


По сути, как видим, оператор не выполнит отбор. Чтобы отбор, всё же, выполнился, необходимо установить отбор в графе «ГДЕ».


Также не «отбрасывает» ненужные соединения, а только прибавляет отбор с фильтрацией по типу оператор «ССЫЛКА» (проверяем при помощи консоли, во вкладке просмотра плана запроса). В операторе «ВЫРАЗИТЬ» чётко видим, что поле имеет не составной тип, а лишь точную ссылку, так что ненужных соединений не будет. Но, в «ССЫЛКА» существует некоторая специфика, рассмотрим её на скриншоте ниже:


Специфика оператора «ССЫЛКА»

Рис. 3 Специфика оператора «ССЫЛКА»


Когда ставим вместо «ЦеноваяГруппа», как значение у параметра, ссылку некоторого справочника «Номенклатура», то выведется ошибка системы.


Если в качестве значения параметра ЦеноваяГруппа установить, например, ссылку на справочник «Номенклатура», система выдаст ошибку:


Ошибка несовместимости с оператором ССЫЛКА

Рис. 4 Ошибка несовместимости с оператором ССЫЛКА


Дело в том, что когда происходит работа с некоторыми реквизитами, у которых составной тип данных, то возникнет точно такая же ошибка. Рассмотрим пример: пусть есть документ «РеализацияТоваровУслуг». Этот документ не является составным типом из реквизита «ДокументОснование» внутри документа с названием «Авансовый отчёт», выполняем запрос, из-за угла возникает ошибка, как на скриншоте ниже:


Возникновение ошибки создания запроса

Рис. 5 Возникновение ошибки создания запроса


Также конструктор запросов не станет открываться (учтём, что «ТИПЗНАЧЕНИЯ» был указан верно).


Техническая поддержка из 1С объясняет это так: «Ошибка создания запроса происходит, когда в выражении, которое проверяем, тип не содержит ссылку на таблицу, которую проверяем».


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


Специалист компании «Кодерлайн»

Айдар Фархутдинов

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.