Во-первых, во встроенном языке для работы с одним прикладным объектом реализовано несколько типов.
Например, задачи, которые в 1С:Предприятии 7.7 решал тип Документ решаются теперь несколькими типами. Они разделены по своему назначению.
Тип ДокументСсылка используется для хранения ссылок на объект базы данных в реквизитах других объектов.
Тип ДокументОбъект используется для записи и удаления отдельных документов.
Тип ДокументВыборка используется для перебора документов, хранящихся в базе данных.
Существуют и другие типы данных, предназначенные для работы с документом. При написании модулей используются те типы, которые необходимы для решения конкретных задач.
Во-вторых,
во встроенном языке нет двух понятий — Тип и Вид. Для каждого объекта конфигурации имеется свой набор типов используемых во встроенном языке для работы с описываемым им прикладным объектом. То есть при использовании конфигурации не будет существовать такого типа как ДокуменСсылка, а будут существовать конкретные типы, например, ДокументСсылка. Счет, ДокументОбъект. Счет, ДокументСсылка. Накладная, и т.д.
Кроме этого, для манипулирования типами используются не их строковые наименования, а специальный тип Тип. Значение типа Тип может быть получено функцией Тип(), получающей в качестве параметра имя типа.
Чтобы проверить тип значения переменной нужно определить ее тип функцией ТипЗнч() и использовать функцию Тип() для получения типа по имени.
Если ТипЗнч(Основание) = Тип(«ДокументСсылка. ПриходнаяНакладная») Тогда
Доброго времени суток, коллеги! В данной статье я расскажу о том, как сделать проверку на тип значения средствами встроенного языка 1С Предприятие и языка запросов 1С Предприятие. Не имеет значения, начинающий Вы программист или специалист со стажем – описанные ниже способы достаточно просты и практичны, и позволяют провести проверку на тип запросов менее чем за минуту специалисту любого уровня.
Начнем с проверки на тип значения средствами встроенного языка.
- Проверка на тип значения средствами встроенного языка 1С Предприятие
- Проверка на тип значения двумя видами
- Безошибочное получении значения соответствия 1С
- Статьи о других универсальных коллекциях значений в 1С
- Функция ТипЗнч в 1С
- Функция Тип в 1С
- Как проверить тип значения
- Перечисление в серверном контексте
- Перечисление в клиентском контексте (на тонком клиенте)
- Перечисление в языке запросов 1С
- Как проверить тип значения документа, справочника?
Проверка на тип значения средствами встроенного языка 1С Предприятие
Так как в платформе 1С для работы с типами используется специальный одноименный тип данных 1С Предприятие, а не их строковое наименование, для проверки мы будем использовать две функции глобального контекста — “Тип” и “ТипЗнч”. Рассмотрим же их по отдельности.
1. Функция “ТипЗнч” предназначена для получения типа переменной 1С, которая передана в нее как параметр. Для примера присвоим значение переменной 1С “НашаПеременная”:
НашаПеременная = “Привет!”;
Вызовем функцию и передадим в нее параметр — переменную:
В результате выполнения функция вернет тип этой переменной — Строка.
Ниже приведено описание функции “ТипЗнч” из Синтакс-помощника:

2. Функция “Тип” предназначена для получения типа по его текстовому описанию, которое передается как параметр. Пример:
Описание функции из Синтакс-помощника:

3. Для выполнения проверки на тип значения переменной используем функции “ТипЗнч” и “Тип”:
Если ТипЗнч(НашаПеременная) = Тип(“Строка”) Тогда
Проверка на тип значения двумя видами
А теперь сделаем проверку на тип значения. В запросе её можно разделить на два вида: первый – с использованием встроенных функций языка запросов “ТИП”, “ТИПЗНАЧЕНИЯ” (подойдет как для примитивных типов данных, так и для ссылочных); второй – с помощью оператора “ССЫЛКА”. Подойдет только для ссылочных типов данных
1. Функция “Тип” в языке запросов работает аналогично функции “Тип” встроенного языка 1С Предприятие. Только есть разница в построении имен ссылочных типов 1С. Для языка запросов 1С Предприятие пример такой — Документ. РеализацияТоворовУслуг или Справочник. Номенклатура
2. Функция “ТИПЗНАЧЕНИЯ” в языке запросов работает аналогично функции “ТипЗнч” встроенного языка 1С Предприятие.
Для примера разберем проверку на тип значения в запросе первым способом:
ТИПЗНАЧЕНИЯ(Номенклатура. Артикул) = ТИП(Строка)
А теперь запустим проверку на тип значения в запросе с помощью оператора “ССЫЛКА”.
ГДЕ
Регистратор ССЫЛКА Документ. РеализацияТоваровУслуг
Таким образом Вы сможете очень быстро и просто проверить тип значения в запросе. Надеюсь, данная статья была полезной для Вас. А если у Вас остались вопросы, смело пишите или звоните нам – наши специалисты всегда на связи и рады помочь.
Специалист компании «Кодерлайн»




Понятие «тип реквизита» отличается от понятия «тип значения»
Конкретное значение не может быть составного типа. Одно конкретное значение может быть только одного типа данных.
Реквизит может быть как одного типа, так и составного типа. В последнем случае его тип описывается объектом «ОписаниеТипов», т.е. список возможных типов, значения которых могут храниться в этой колонке. Например, СправочникСсылка. М1, СправочникСсылка. М2, Строка, Число, ДокументСсылка. Д1.
В каждой строке (элементе, записи) содержится какое-то свое значение, но каждое из них — одного типа. Например, «СправочникСсылка. М1». Если же в ячейке колонки, имеющей составной тип, даже не выбран (не назначен) тип значения, то оно содержит значение «Неопределено» (это значение и одновременно тип). Если же тип выбран (кнопкой Т или установлен программно), то ячейка содержит пустое значение этого типа, например, пустую ссылку на элемент справочника (см. v8: Пустые ссылки), пустую строку «» или 0.
Чтобы реквизиту составного типа установить конкретный тип, достаточно присвоить ему пустое значение этого типа.
Более подробное описание работы со составными типами
Взято с itland.ru
http://itland.ru/forum//index.php?showtopic=2577
Вопрос:
Какие существуют особенности работы с составными типами данных.
Ответ
Этот вопрос имеет два стороны:
1) Сторона элемента формы.
Для элемента формы мы можем установить только ограничение на типы которые можно выбрать.
Т.е. с помощью кода:
МассивТипов=Новый Массив();
МассивТипов. Добавить(Тип(«»));
ЭлементыФормы. ПолеВвода. ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);
2) Сторона источника данных.
Здесь ограничение на тип накладывается либо в конфигураторе, либо в момент создания этого элемента из языка.
Но если у реквизита установлен «составной» тип значение реквизита будет неопределенно до тех пор, пока ему не будет присвоено значение конкретного типа.
Присвоить конкретное значение можно либо из языка, либо выбрав это значение в форме.
Из выше описанного можно сделать вывод:
Если у реквизита установлен «Составной» тип данных, то даже при ограничении возможных типов у элемента формы до одного возможного, у пользователя будет запрошен тип который нужно будет присвоить реквизиту.
Если мы хотим оградить пользователя от лишних движений, т.е. выбора единственно возможного типа, нам нужно предварительно установить тип реквизита.
Сделать это можно следующим образом:
//»Значение1″ это реквизит связанный с «ПолеВвода1».
Значение = ЭлементыФормы. ПолеВвода. ОграничениеТипа. ПривестиЗначение(Значение);
ЭлементыФормы. ИмяТабличнойЧасти. Колонки. ИмяКолонки. ЭлементУправления. ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);
ЭлементыФормы. ИмяТабличнойЧасти. ТекущаяСтрока. ИмяКолонки = ПривестиЗначение(ЭлементыФормы. ИмяТабличнойЧасти. ТекущаяСтрока. ИмяКолонки);
МассивТипов = Новый Массив();
МассивТипов. Добавить(Тип(«»+Элемент. Значение));
ОписаниеТипов = Новый ОписаниеТипов(МассивТипов);
ЭлементыФормы. ТабличнаяЧасть. Колонки. ЗначениеПеречисления. ЭлементУправления. ОграничениеТипа = ОписаниеТипов;
// ЭлементыФормы. ТабличнаяЧасть1. ТекущаяСтрока. ЗначениеПеречисления = ОписаниеТипов. ПривестиЗначение(ЭлементыФормы. ТабличнаяЧасть1. ТекущаяСтрока. ЗначениеПеречисления);
ЭлементыФормы. ТабличнаяЧасть. Колонки. ЗначениеПеречисления. ЭлементУправления. Значение = ОписаниеТипов. ПривестиЗначение(ЭлементыФормы. ТабличнаяЧасть. Колонки. ЗначениеПеречисления. ЭлементУправления. Значение);
Соответствие в языке программирования 1С чем-то похоже на Структуру, это тоже коллекция пар Ключ и значение. Но в отличие от Структуры, в Соответствие, чтобы получить значение по определенному ключу, нужно обращаться не как к свойству объекта, а через квадратные скобки, и в качестве ключа можно использовать значение любого типа.
Соответствие можно создать на всех видах клиентов и в любом контексте. Сериализируется, т.е. можно передать переменную с типом соответствие с клиентского контекста на серверный.
Новое соответствие создается при помощи конструктора Новый.
Соответствие1 = Новый Соответствие;
Для того, чтобы добавить новый элемент соответствия, необходимо использовать метод Вставить, который имеет следующий синтаксис:
Параметр «Ключ» может иметь любой тип! Это очень важное свойство, таким образом, с помощью коллекции Соответствие можно в процессе работы устанавливать соответствие любых объектов с любыми объектами.
Простой пример работы с соответствием:
Соответствие1 Соответствие
Соответствие1Вставить»Ключ тип строка»
Соответствие1Вставить»Ключ тип число»
Соответствие1ВставитьДата»Ключ тип дата»
//Выведем значения ключей
СообщитьСоответствие1
СообщитьСоответствие1
СообщитьСоответствие1Дата
Для того чтобы поменять значение какого-нибудь элемента, который соответствует определенному ключу, достаточно для этого ключа присвоить новое значение.
Соответствие1Вставить»Ключ тип »
Поменять имеющееся значение можно, также используя квадратные скобки.
Соответствие1 «Ключ тип »
Соответствие1 Соответствие
Соответствие1Вставить»Ключ тип строка»
Соответствие1Вставить»Ключ тип число»
Соответствие1ВставитьДата»Ключ тип дата»
ЭлементСоответствия Соответствие1
Сообщить
СтрокаЭлементСоответствияКлюч
ЭлементСоответствияЗначение
Безошибочное получении значения соответствия 1С
Как Вы уже поняли, для того чтобы получить значение элемента соответствия, мы используем квадратные скобки. Но иногда возможны ситуации, когда применение квадратных скобок неосуществимо. В таких случаях мы можем использовать метод Получить, который возвращает любое значение, соответствующее ключу. Если такого ключа нет, то вернется значение Неопределено
Рассмотрим работу данного метода на соответствии с датами в качестве ключей.
Соответствие1 Соответствие
Соответствие1ВставитьДата
Соответствие1ВставитьДата
Соответствие1ВставитьДата
Соответствие1ВставитьДата
//Используем метод Получить
ЭлСоотвествия1 Соответствие1ПолучитьДата
ЭлСоотвествия2 Соответствие1ПолучитьДата
//выведем в сообщения полученные значения
СообщитьЗначениеЗаполненоЭлСоотвествия1ЭлСоотвествия1
СообщитьЗначениеЗаполненоЭлСоотвествия2ЭлСоотвествия2
Статьи о других универсальных коллекциях значений в 1С
Структуры в 1С
Массив в 1С
Список значений в 1С
Таблица значений в 1С
Более подробно о работе с соответствиями и другими интересными объектами языка программирования в 1С читайте в моей книге «Программировать в 1С за 11 шагов»
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс. Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Разберем методы, при помощи которых, в 1С 8.3 можно определить тип значения переменной (или реквизита какого-нибудь объекта). Причем, эти методы могут работать со всеми типами: примитивными, объектными и коллекциями значений.
Для работы с типами, в платформе 1С имеется специальный тип, который так и называется Тип. Этот тип необходим для идентификации типов значений различных данных. Значения типа Тип возвращают только две функции Тип и ТипЗнч.
Функция ТипЗнч в 1С
Разберем функцию ТипЗнч. Эта функция принимает в качестве параметра любое значение и возвращает тип этого значения.
Рассмотрим пример: будем использовать в качестве параметра этой функции число, таблицу значений и объект какого-нибудь справочника.
п_Число
п_ТаблицаЗначений ТаблицаЗначений
п_Объект СправочникиТоварыСоздатьЭлемент
тип_ч ТипЗнчп_Число
тип_ТЗ ТипЗнчп_ТаблицаЗначений
тип_Объект ТипЗнчп_Объект
Посмотрим в отладке, что вернет этот метод.

Как видите, все значения, которые вернул метод ТипЗнч имеют тип Тип. Но, сами по себе знания о том, какой тип у того или иного значения нам ни чего не дают. Разве что можно сравнить одинаковы ли типы у двух разных значений. Эти знания применимы только тогда, когда можно точно определить какого типа наше значение. Делается это при помощи функции Тип.
Функция Тип в 1С
Функция тип имеет один параметр имя получаемого типа в строковом представлении, возвращает тип Тип.
Переделаем предыдущий пример: будем получать типы значений, используя функцию Тип.
тип_ч Тип
тип_ТЗ Тип
тип_Объект Тип
В переменных будут те же значения, что и в прошлый раз.

Чтобы быстро получить название какого-то типа, достаточно «задержаться» в написании после первой кавычки, или нажать комбинацию клавиш Ctrl+Пробел.

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

Обе функции Тип и ТипЗНЧ возвращают значения одного типа – Тип. Но, если в случае функции ТипЗнч мы не можем точно знать, что вернет эта функция (поскольку, иногда, возникают ситуации, когда точно не известно какого тип та или иная переменная), то при работе с функцией Тип, мы точно знаем, какое значение вернет эта функция, поскольку сами указали строковое представление типа в параметре.
Как проверить тип значения
Для того, чтобы проверить какой тип значения у той или иной переменой, достаточно использовать обе этих функции (Тип и ТипЗнч) вместе: сравнивая, что возвращает функция ТипЗнч, в параметре которой указано какое-либо значение, с функцией Тип, в параметре которой мы указали конкретный тип.
Рассмотрим пример: будем заполнять массив значениями разных типов, потом при помощи генератора случайных чисел выберем нужный элемент массива, и определим какого типа этот элемент массива. В этот массив поместим число, дату, строку и какой-нибудь список значений.
МассивТипов Массив
МассивТиповДобавить
МассивТиповДобавить
МассивТиповДобавитьДата
МассивТиповДобавить СписокЗначений
ГСЧ ГенераторСлучайныхЧисел
СлучайныйИндекс ГСЧСлучайноеЧисло
ЭлементМассива МассивТиповСлучайныйИндекс
Сообщить»Номер элемента массива: » СлучайныйИндекс
ТипЗнчЭлементМассива Тип
Сообщить
ТипЗнчЭлементМассива Тип
Сообщить
ТипЗнчЭлементМассива Тип
Сообщить
ТипЗнчЭлементМассива Тип
Сообщить»Это список значений»
В этом коде я использовал условие, где обрабатывал сравнение значений, которые возвращают функции Тип и ТипЗнч.
Статьи о примитивных типах в 1С:
Примитивный тип Строка
Примитивный тип Булево
Примитивный тип Дата
Примитивный тип Число
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить вКнига «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С. Только для читателей моего блога,промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Яндекс. Деньги — 410012882996301Web Money — R955262494655
В предыдущей статье я показал, как создавать перечисления 1С, значения перечислений, как указывать ссылку на нужное перечисление у реквизита объекта, и как работать с перечислением на управляемой форме. В этой статье я покажу некоторые моменты программной работы с перечислениями в языке программирования 1С.
Предыдущая статья: Перечисления в 1С.
Программная работа с перечислениями в 1С отличается в
зависимости от того в каком контексте мы работаем с этим перечислением: в
серверном или клиентском (конкретно на тонком клиенте и веб-клиенте). Поэтому
разберем оба варианта по отдельности,
также изучим, как работать с перечислениям в языке запросов 1С.
Перечисление в серверном контексте
Для того, чтобы понять как работать со значениями
перечисления в серверном контексте, рассмотрим простую задачу: будем программно
создавать элемент справочника и присваивать ему конкретное значение
перечисления.
В моей учебной конфигурации, есть справочник Контарагенты, с реквизитом Статус, у которого тип ссылка на перечисление ЮридическийСтатусКонтрагента, которое было создано в предыдущей статье. Создадим программно нового контрагента, с уже конкретным значением перечисления. Делать я это будут на управляемой форме учебной обработки. На этой форме я создал команду, серверный и клиентский обработчик команды.
В серверном обработчике и будет создаваться новый элемент
справочника.
СоздатьСправочникНаСервере
НовыйКонтр СправочникиКонтрагентыСоздатьЭлемент
НовыйКонтрНаименование «Иванов и Партнеры»
НовыйКонтрСтатус ПеречисленияЮридическийСтатусКонтрегентаЮрЛицо
НовыйКонтрЗаписать
СоздатьСправочникКоманда
СоздатьСправочникНаСервере
В этом коде мы создаем объект справочника, заполняем его
реквизиты какими-то значениями, а потом сохраняем. Реквизиту Статус мы присваиваем конкретное
значение перечисления ЮридическийСтатусКонтреганта.
Вы заметили, что к нужному перечислению мы обращаемся посредством объекта Перечисления, который имеет типа ПеречисленияМенеджер.
А выражение Перечисления. ЮридическийСтатусКонтрегента
это менеджер конкретного перечисления, посредством которого можно обращаться к
нужному значению перечисления. Причем обращение к значению идет по имени.
Посредством этого выражения мы можем обратиться к любому
значению перечисления, в зависимости от поставленной задачи.

Если по какой-то причине нам не нужно записывать определенное значение перечисления, то мы можем записать пустую ссылку на это перечисление, обратившись к методу менеджера перечисления ПустаяСсылка(). Тогда будет иметь место следующий код.
НовыйКонтр СправочникиКонтрагентыСоздатьЭлемент
НовыйКонтрНаименование «Иванов и Партнеры»
НовыйКонтрСтатус ПеречисленияЮридическийСтатусКонтрегентаПустаяСсылка
НовыйКонтрЗаписать
Перечисление в клиентском контексте (на тонком клиенте)
Если в серверном контексте мы обращались напрямую к значению перечисления, используя менеджер перечислений, то в клиентском контексте мы так сделать не можем (за исключением толстого клиента).
Приведу небольшой пример, на котором покажем, как работать с
перечислениями на клиенте, пример больше учебный, призванный показать, как
работать с перечислениями в клиентском контексте, и не несет какого-либо
прикладного смысла.
На управляемую форму поместим реквизит с типом ссылка на перечисления, и при выполнении команды формы будем записывать в этот реквизит конкретное значение перечисления.
Поскольку в предыдущей статье мы создали перечисление ЮридическийСтатусКонтрегента, то назовем реквизит формы СтатусИП, и будем при выполнении команды в него записывать соответствующее значение перечисления.
Создадим реквизит, поместим его на форму, и также я создам команду, которую помещу на форму.

Для этой команды создадим клиентский обработчик.

В этом клиентском обработчике, нам нужно записать в реквизит формы значение перечисления. Мы можем получить значение перечисления так, как получали ранее в этой статье: используя менеджер перечислений.
УстановитьКоманда
СтатусИП ПеречисленияЮридическийСтатусКонтрегентаИП
Если мы сейчас сделаем синтаксис-проверку модуля на ошибки,
то в некоторых случаях может выдать ошибку, а в некоторых нет. Всё зависит от
того, настроена ли в параметрах проверка в режиме тонкого клиента.
Проверим это. Зайдем в параметры конфигурации по пути Главное меню – Сервис – Параметры

В этой форме на закладке Модули
в подзакладке Проверка нас интересует
флаг Тонкий клиент.

Если этот флаг установлен, то при синтаксической проверке модуля, на код, который мы написали ранее, выйдет ошибка.

Поэтому, если вы планируете, что ваше приложение будет работать в режиме тонкого клиента, то способ получения значения перечисления, используя менеджер перечислений, не применим.
Чтобы получить в режиме тонкого клиента значение
перечисления, нужно использовать метод глобального контекста ПредопределенноеЗначение.
В этом случае код будет следующим.
УстановитьКоманда
СтатусИП ПредопределенноеЗначение
В параметре этого метода в виде строки необходимо написать
путь к значению перечисления. Замечу, что
в платформе 1С, после ввода круглой скобки и первой кавычки выпадают подсказки,
и по этим подсказками можно сгенерировать нужную строку.


Если мы сейчас запустим «1С: Предприятие» под тонким
клиентом, то значением в реквизит прекрасно запишется.
Заметили, что обращались мы к имени значения перечисления, а
на форме отображается синоним значения.
Перечисление в языке запросов 1С
Рассмотрим, как работать с перечислениями в языке запросов
1С.
Более подробно, изучить языка запросов 1С Вы можете в моем курсе «Запросы в 1С для начинающих», промо-код на скидку для читателей блога — hrW0rl9Nnx
Ознакомится с видео-курсом «Запросы в 1С для начинающих».
Для того, чтобы понять как работать с перечислениями в запросе разберем простой и понятный пример. Из справочника Контрагенты отберем только тех, контрагентов, у которых статус ИП. Делать мы это будем сразу в «1С: Предприятии», в консоли запросов.
В консоли запросов откроем конструктор запроса, выберем таблицу Контрагенты и поля этой таблицы Наименование и Статус.

На закладке Условия установим, чтобы отбирались контрагенты
со статусом ИП.

В этом случае мы используем функцию Значение языка запросов 1С, где в качестве параметра указываем путь
к нужному нам значению перечисления.
У нас должен получиться вот такой запрос:
ВЫБРАТЬ
КонтрагентыНаименование КАК Наименование
КонтрагентыСтатус КАК Статус
СправочникКонтрагенты КАК Контрагенты
ГДЕ
КонтрагентыСтатус ЗНАЧЕНИЕПеречислениеЮридическийСтатусКонтрегентаИП
Который будет возвращать контрагентов только с нужным
статусом.

Функцию ЗНАЧЕНИЕ можно использовать не только в условиях, но
и в секции выбрать. Например, можно сделать такой запрос.
ВЫБРАТЬ
ЗНАЧЕНИЕПеречислениеЮридическийСтатусКонтрегентаИП КАК Статус
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЗНАЧЕНИЕПеречислениеЮридическийСтатусКонтрегентаЮрЛицо
Который будет возвращать два значения перечисления.

А что делать, если нужен отбор по нескольким значениями
перечислений? Для этого мы объединим два этих запроса: поместим во временную
таблицу значения двух перечислений, а потом при получении контрагентов, в условии при помощи оператора множественного
выбора отберем контрагентов только с
двумя значениями перечислений.
Код запроса будет в этом случае следующим:
ВЫБРАТЬ
ЗНАЧЕНИЕПеречислениеЮридическийСтатусКонтрегентаИП КАК Статус
ПОМЕСТИТЬ втПеречисления
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ЗНАЧЕНИЕПеречислениеЮридическийСтатусКонтрегентаЮрЛицо
ВЫБРАТЬ
КонтрагентыНаименование КАК Наименование
КонтрагентыСтатус КАК Статус
СправочникКонтрагенты КАК Контрагенты
ГДЕ
КонтрагентыСтатус В
ВЫБРАТЬ
втСтатус
втПеречисления КАК вт
И этот запрос будет выдавать нужный результат.

Если же мы не знаем, по какому значению перечисления нужен отбор, то можем просто передать значение нужного перечисления в качестве параметра. В этом случае будет такой запрос.
Который будет выполняться следующим образом.

Если же мы хотим сделать отбор по нескольким сразу статусам
(которые мы не можем знать заранее), то нам нужно передать в запрос массив или
список значений, и применить к нему оператор множественного выбора. В этом
случае у нас будет следующий запрос.
С таким результатом.

Если Вы всё еще «плаваете» в конструкциях языка запросов, и у Вас вызывают трудности даже самые простые запросы, то рекомендую вам мой курс «Язык запросов в 1С для начинающих». Где эти и многие другие вопросы рассматриваются более подробно.
В чем особенность этого курса:• Курс рассчитан на тех, кто не знаком с языком запросов в 1С;• Учебный материал грамотно скомпонован и прост в освоении;• Несколько десятков уроков;• Полезные практические примеры;• Все уроки изложены понятным и простым языком
Для моих читателей, купон на скидку 25%: hrW0rl9Nnx
Как проверить тип значения документа, справочника?
Во-первых, во встроенном языке 1С:Предприятия 8 для работы с одним прикладным объектом реализовано несколько типов. Например, задачи, которые в 1С:Предприятии 7.7 решал тип «Документ» решаются теперь несколькими типами. Они разделены по своему назначению. Тип «ДокументСсылка» используется для хранения ссылок на объект базы данных в реквизитах других объектов. Тип «ДокументОбъект» используется для записи и удаления отдельных документов. Тип «ДокументВыборка» используется для перебора документов, хранящихся в базе данных. Существуют и другие типы данных, предназначенные для работы с документом. При написании модулей используются те типы, которые необходимы для решения конкретных задач.
Во-вторых, в 1С:Предприятии 8 нет двух понятий — «Тип» и «Вид». Для каждого объекта метаданных имеется свой набор типов используемых во встроенном языке для работы с описываемым им прикладным объектом. То есть при использовании конфигурации не будет существовать такого типа как «ДокументСсылка», а будут существовать конкретные типы, например, «ДокументСсылка. Счет», «ДокументОбъект. Счет», «ДокументСсылка. Накладная», и т.д.
Кроме того, в 1С:Предприятии 8 для манипулирования типами используются не их строковые наименования, а специальный тип «Тип». Значение типа Тип может быть получено функцией Тип(), получающей в качестве параметра имя типа.
Чтобы проверить тип значения переменной нужно определить ее тип функцией ТипЗнч() и использовать функцию Тип() для получения типа по имени.
Копировать в буфер обмена
Более подробно типы прикладных объектов рассмотрены в статьях диска ИТС «Особенности использования типов данных, предназначенных для манипулирования объектами базы данных» и «Особенности использования типов, предназначенных для манипулирования необъектными данными».





