Использование перечислений, данных справочников и ссылок на документы в запросах к 1с

0 голосов
Илья Рудаков в категории Как сделать...

Здравствуйте!

Подскажите можно ли в запросе к 1с использовать данные эл. справочников, перечислений или
ссылок на документы, хранящихся в базе 1с.
Если да то как правильно к ним обратиться?

Ответ: 1 шт.

0 голосов
vitaliy.tatarskih

При составлении запросов в узле "1С Запрос" к различным справочникам, документам, регистрам следует использовать синтаксис запросов, описанный в документации 1С. При составлении запросов удобно использовать обработку "Консоль запросов", которая запускается в интерфейсе 1С.

Однако, есть некоторые особенности, связанные с использованием COM-соединения при подключении к 1С. Через COM-соединение можно передать значения простейших типов, такие как Число, Строку, Дату/Время и Логическое(True, False). Кроме того, внутренние типы данных 1С такие как ссылки или объекты документов, справочников и т.д. могут быть использованы только внутри 1С, другие программы ничего о них "не знают". Поэтому при импорте в Loginom ссылок или объектов 1С в запросе их необходимо привести к простейшим типам, например, с помощью функции языка запросов - Представление().

Пример:

ВЫБРАТЬ

Представление(Номенклатура.Ссылка),

УникальныйИдентификатор(Номенклатура.Ссылка),

Номенклатура.Артикул КАК Артикул,

Номенклатура.Наименование КАК Наименование,

Представление(Номенклатура.ВариантОформленияПродажи) КАК ВариантОформленияПродажи

ИЗ

Справочник.Номенклатура КАК Номенклатура;

Здесь при импорте ссылки на элемент справочника Номенклатуры

Представление(Номенклатура.Ссылка)

применена функция для представления ссылки в виде строки.

Для импорта поля ВариантОформленияПродажи также применена эта функция, поскольку в этом поле содержится ссылка на перечисление. 

Конструкцию УникальныйИдентификатор() для вывода Guid объектов 1С можно применять в версии 1С 8.3.22 и выше.  

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

Пример:

РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&FD, &LD, СчетДт В ИЕРАРХИИ (&account), , ) КАК ХозрасчетныйДвиженияССубконто

Здесь параметры &FD, &LD принимают значения типа Дата/время, их мы можем передать в запрос т.к. эти параметры передают простейшие типы. Однако параметр &account должен передать ссылку на объект бухгалтерского счета плана счетов. В данном случае мы можем вернуть ссылку на счет подзапросом, который в качестве параметра будет принимать значение простейшего типа - код нужного нам счета в плане счетов:

РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&FD, &LD, СчетДт В ИЕРАРХИИ (

ВЫБРАТЬ ПЕРВЫЕ 1

    Хозрасчетный.Ссылка КАК Ссылка

ИЗ

    ПланСчетов.Хозрасчетный КАК Хозрасчетный

ГДЕ

    Хозрасчетный.Код = &account_kod

), , ) КАК ХозрасчетныйДвиженияССубконто

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

Дополнительная ссылка для изучения синтаксиса языка запросов 1С.

...