Капитально об программе 1С 8.0-8.3-8.4, 7.7

ЗНАЧЕНИЕ() в запросе

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

Как же работать с предопределенными значениями?

В коде модулей обращение к таким элементам производится через менеджер объекта, например:

Ссылка = Справочники.ВидыНоменклатуры.Услуга;

Ссылка = ПланыСчетов.Хозрасчетный.Продукция;

 

В языке запросов это производится аналогично, но с использованием функции запросов ЗНАЧЕНИЕ().
Функция значение предназначена для получения ссылки на предопределенные значения справочников, перечислений, планов видов характеристик, планов счетов, планов видов расчетов, точек маршрутов бизнес процессов, к системным перечислениям.

[qu_note note_color=»#fdc8b2″]При этом имя вида объекта указывается в запросе в единственном числе.[/qu_note]

Примеры использования ЗНАЧЕНИЕ():

Ссылка справочника:

ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.Услуга)

Для проверки на пустое значение справочника:

ВЫБРАТЬ Ссылка

ИЗ 

Справочник.Контрагенты КАК Контрагенты

ГДЕ

     Контрагенты.ОсновнойДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)

Для получения перечислений:

ВЫБРАТЬ 

      Ссылка.Владелец КАК Контрагент

ИЗ 

      Справочник.ДоговорыКонтрагентов КАК Договор

ГДЕ

     Договор.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)

     ИЛИ Договор.ВидДоговора = ЗНАЧЕНИЕ (Перечисление.ВидыДоговоровКонтрагентов.ПустаяСсылка)

План видов характеристик:

ВЫБРАТЬ ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиПользователей.ПустаяСсылка)

Счет в плане счетов:

ВЫБРАТЬ ЗНАЧЕНИЕ (ПланСчетов.Хозрасчетный.Товары) КАК СчетТоваров

Системные перечисления:

ВЫБРАТЬ
    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК Расход,
    ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК Приход,
    ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Дебет) КАК Дебет,
    ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит) КАК Кредит,
    ЗНАЧЕНИЕ(ВидСчета.Активный) КАК Активный,
    ЗНАЧЕНИЕ(ВидСчета.Пассивный) КАК Пассивный,
    ЗНАЧЕНИЕ(ВидСчета.АктивноПассивный) КАК АктивноПассивный

Аналог функции ЗначениеЗаполнено() в запросе

ГДЕ  НЕ ОсновнойДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагента.ПустаяСсылка)

ГДЕ  НЕ ОсновнойДоговорКонтрагента В (ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагента.ПустаяСсылка), НЕОПРЕДЕЛЕНО, NULL,"")

То есть, если значение не пустое или не входит в список пустых, его можно считать заполненным.

Ошибки при использовании ЗНАЧЕНИЕ()

При неверном синтаксисе параметра функции возникает ошибка «Неверные параметры».

Недопустима передача в ЗНАЧЕНИЕ параметра вот так:

ЗНАЧЕНИЕ(&Параметр)

Выйдет ошибка «Ожидается параметр»:

Функция как раз предназначена для ухода от параметров для предопределенных в метаданных ссылках.

Не требуется указание параметра функции в кавычках: это вызовет ошибку «Ожидается имя»