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

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

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

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

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

 

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

При этом имя вида объекта указывается в запросе в единственном числе.

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

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

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

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

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

ИЗ 

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

ГДЕ

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

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

ВЫБРАТЬ 

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

ИЗ 

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

ГДЕ

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

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

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

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

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

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

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

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

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

  • В явном виде функции на заполнение нет, но возможна проверка на несовпадение, например:

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

  • проверка на невхождение в список:

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

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

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

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

  • указание во множественном числе (например “Справочники” вместо “Справочник”)
  • не верное имя предопределенного или его отсутствие

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

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

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

ozhidaetsya-parametr

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

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

ozhidaetsya-imya-v-znachenie

 

Одно рекламное объявление стоит больше, чем сорок передовиц.

— Уилл Роджерс