Предопределенные значения объектов конфигурации отличный способ заполнить 1с распространенными значениями, а в бухгалтерских конфигурациях в плане счетов без этого не обойтись, ведь набор счетов жестко регламентирован.
Как же работать с предопределенными значениями?
В коде модулей обращение к таким элементам производится через менеджер объекта, например:
Ссылка = ПланыСчетов.Хозрасчетный.Продукция;
В языке запросов это производится аналогично, но с использованием функции запросов ЗНАЧЕНИЕ().
Функция значение предназначена для получения ссылки на предопределенные значения справочников, перечислений, планов видов характеристик, планов счетов, планов видов расчетов, точек маршрутов бизнес процессов, к системным перечислениям.
Примеры использования ЗНАЧЕНИЕ():
Ссылка справочника:
ВЫБРАТЬ ЗНАЧЕНИЕ(Справочник.ВидыНоменклатуры.Услуга)
Для проверки на пустое значение справочника:
ВЫБРАТЬ Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.ОсновнойДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)
Для получения перечислений:
ВЫБРАТЬ
Ссылка.Владелец КАК Контрагент
ИЗ
Справочник.ДоговорыКонтрагентов КАК Договор
ГДЕ
Договор.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
ИЛИ Договор.ВидДоговора = ЗНАЧЕНИЕ (Перечисление.ВидыДоговоровКонтрагентов.ПустаяСсылка)
План видов характеристик:
ВЫБРАТЬ ЗНАЧЕНИЕ(ПланВидовХарактеристик.НастройкиПользователей.ПустаяСсылка)
Счет в плане счетов:
ВЫБРАТЬ ЗНАЧЕНИЕ (ПланСчетов.Хозрасчетный.Товары) КАК СчетТоваров
Системные перечисления:
ВЫБРАТЬ
ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК Расход,
ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) КАК Приход,
ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Дебет) КАК Дебет,
ЗНАЧЕНИЕ(ВидДвиженияБухгалтерии.Кредит) КАК Кредит,
ЗНАЧЕНИЕ(ВидСчета.Активный) КАК Активный,
ЗНАЧЕНИЕ(ВидСчета.Пассивный) КАК Пассивный,
ЗНАЧЕНИЕ(ВидСчета.АктивноПассивный) КАК АктивноПассивный
Аналог функции ЗначениеЗаполнено() в запросе
- В явном виде функции на заполнение нет, но возможна проверка на несовпадение, например:
ГДЕ НЕ ОсновнойДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагента.ПустаяСсылка)
- проверка на невхождение в список:
ГДЕ НЕ ОсновнойДоговорКонтрагента В (ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагента.ПустаяСсылка), НЕОПРЕДЕЛЕНО, NULL,"")
То есть, если значение не пустое или не входит в список пустых, его можно считать заполненным.
Ошибки при использовании ЗНАЧЕНИЕ()
При неверном синтаксисе параметра функции возникает ошибка «Неверные параметры».
- указание во множественном числе (например «Справочники» вместо «Справочник»)
- не верное имя предопределенного или его отсутствие
Недопустима передача в ЗНАЧЕНИЕ параметра вот так:
ЗНАЧЕНИЕ(&Параметр)
Выйдет ошибка «Ожидается параметр»:
Функция как раз предназначена для ухода от параметров для предопределенных в метаданных ссылках.
Не требуется указание параметра функции в кавычках: это вызовет ошибку «Ожидается имя»
Никогда не пишите рекламное объявление, которое вы не хотели бы предложить прочесть собственной семье. Вы не стали бы лгать собственной жене. Не лгите и моей.