Проверить на тип в запросе 1с

Проверить на тип в запросе 1с ФСС

В этой статье будут рассмотрены способы проверки на пустое значение в зависимости от типа проверяемого реквизита в запросе 1С 8.3, в том числе пустой ссылки.


Проверить на тип в запросе 1с

В данной статье мы подробно рассмотрим основные типы значений в 1С – примитивные, ссылочные, системные типы значений, а также познакомимся с основными приемами работы с типами значений.

Для проверки строковых типов производится сравнение с другим образцом. В данном случае – «».

Приведенный ниже запрос отберет всех партнеров с незаполненным наименованием.

ВЫБРАТЬ
Партнеры. Ссылка
ИЗ
Справочник. Партнеры КАК Партнеры
ГДЕ
Партнеры. Наименование = «»

Содержание
  1. Проверка типа в запросе
  2. Общие типы данных
  3. Пустая ссылка в запросе в 1С
  4. Прикладные типы значений
  5. Проверка на пустую строку в запросе 1С 8
  6. Интерфейсные типы данных в 1С
  7. Проверка на NULL
  8. Универсальные коллекции значений
  9. Проверка на NULL в запросе
  10. Составные типы значений
  11. Примитивные типы значений в 1С
  12. Чтобы проверить на несколько значений применяется условие ИЛИ или множество В()
  13. Вместо предисловия
  14. Примеры использования
  15. Как в запросе проверить на соответствие нужному типу
  16. Использование условного оператора ССЫЛКА
  17. Выбор типа в качестве поля в запросе
  18. Пустая ссылка (Значение) в запросе 1С 8
  19. Примеры проверки типа в запросах
  20. Пустая дата в запросе 1С 8
  21. Как же в запросе 1С сравнить на пустое значение
  22. Если требуется получить значение пустого типа.
  23. Если требуется сравнить со значением не составного типа
  24. Если требуется проверка составного значения
  25. Как определить, что значение является справочником или документом?
  26. Проверка типа конкретного значения

Проверка типа в запросе

//любое пустое значение можно задать в виде параметра
//Ниже пример запроса, который возвращает пустые значения, переданные в качестве параметра
Запрос Запрос

Запрос. УстановитьПараметр Дата
Запрос. УстановитьПараметр
Запрос. УстановитьПараметр Справочники. Товары. ПустаяСсылка
Запрос. УстановитьПараметр
Запрос. УстановитьПараметр

Общие типы данных

Платформа предоставляет специфичные объекты языка, отвечающие за различную функциональность: ТабличныйДокумент, Диаграмма, ПостроительЗапроса, Картинка и др.

В отличие от примитивных типов, значения общих типов представляют собой совокупность значений свойств конкретного объекта. Каждое значение общего типа называется “экземпляром объекта”, и создается ключевым словом Новый – Новый ТекстовыйДокумент, Новый ХранилищеЗначения, и т.д.

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!

Проверка значения на пустую дату производится путем сравнения с конструкцией ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0). Пример использования приведен ниже:

ВЫБРАТЬ
Встреча. Ссылка
ИЗ
Документ. Встреча КАК Встреча
ГДЕ
Встреча. Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

Пустая ссылка в запросе в 1С

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

На языке программирования 1С данное значение можно получить через менеджеры объекта.

Альтернативой сравнению с пустой ссылкой имеется метод Пустая() у значения ссылочного типа:Например: булКонтрагентВыбран = ВыбКонтрагент. Пустая();

С проверкой типа значения в запросе — всё понятно. есть ключевое слово ССЫЛКА, если надо из запроса получить колонку с типом объекта (Справочник/Документ/Перечисление) и название типа справочника/документа/перечисления — как быть?

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

В результате хотелось бы в запросе к реквизиту объекта получить вид и тип ссылочного типа. Реквизит может иметь составной тип данных.

В запросах довольно распространенная задача – определить, к какому типу относится то или иное значение. Например, нужно в запросе определить тип документа, и если это приходная накладная – взять сумму документа с плюсом, а если расходная – с минусом. В этой статье рассмотрены конструкции языка запросов, позволяющие решить данную задачу.

Стоит начать с того, что три конструкции – ТИП, ТИПЗНАЧЕНИЯ и ССЫЛКА – относятся к разным частям языка запросов 1С.

ГДЕ
(Таблица. Сумма) = ТИП()

ВЫБРАТЬ
ХозрасчетныйОбороты. Субконто,
ХозрасчетныйОбороты. Субконто,
ХозрасчетныйОбороты. Субконто,
ХозрасчетныйОбороты. СуммаОборот,
ВЫБОР
КОГДА (ХозрасчетныйОбороты. Субконто) = ТИП(Документ. РеализацияТоваровУслуг)

КОГДА (ХозрасчетныйОбороты. Субконто) = ТИП(Документ. ПриходныйКассовыйордер)

КОГДА (ХозрасчетныйОбороты. Субконто) = ТИП(Документ. РасходныйКассовыйОрдер)

КОНЕЦ КАК ТипДокументаРасчетов
ИЗ
РегистрБухгалтерии. Хозрасчетный. Обороты(&НачалоПериода, &КонецПериода, Регистратор, Счет = &Счет, , , , ) КАК ХозрасчетныйОбороты

Для полей ссылочного типа существует еще один способ проверки, используя оператор ССЫЛКА.

ВЫБОР
КОГДА ХозрасчетныйОбороты. Субконто ССЫЛКА Документ. РеализацияТоваровУслуг

КОГДА ХозрасчетныйОбороты. Субконто ССЫЛКА Документ. ПриходныйКассовыйОрдер

КОГДА ХозрасчетныйОбороты. Субконто ССЫЛКА Документ. РасходныйКассовыйОрдер

КОНЕЦ

Я только учусь. Может подскажите где не правильно
ВЫБРАТЬ
ТЗ. Номенклатура КАК Номенклатура,
ТЗ. Количество КАК Количество,
ТЗ. Цена КАК Цена,
ТЗ. Сумма КАК Сумма
ПОМЕСТИТЬ Реализация
ИЗ
&ТЗ КАК ТЗ
;

Читайте также:  Как проверить xml на соответствие xsd altova

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ОстаткиТоваровОстатки. Номенклатура КАК Номенклатура,
ОстаткиТоваровОстатки. КоличествоОстаток КАК КоличествоОстаток,
ОстаткиТоваровОстатки. СуммаОстаток / ОстаткиТоваровОстатки. КоличествоОстаток КАК Цена,
ОстаткиТоваровОстатки. СуммаОстаток КАК СтоимостьОстаток,
ОстаткиТоваровОстатки. Партия КАК Партия
ПОМЕСТИТЬ Остатки
ИЗ
РегистрНакопления. ОстаткиТоваров. Остатки(
&МоментДокумента,
Склад = &Склад
И Номенклатура В
(ВЫБРАТЬ
Реализация. Номенклатура КАК Номенклатура
ИЗ
Реализация КАК Реализация)) КАК ОстаткиТоваровОстатки
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
Реализация. Номенклатура КАК Номенклатура,
ОстаткиПоСкладамОстатки. Склад КАК Склад,
Реализация. Количество КАК Количество,
Остатки. Цена КАК Цена,
Реализация. Цена КАК Стоимость,
Реализация. Сумма КАК Сумма,
Реализация. Количество * (Реализация. Цена — Остатки. Цена) КАК Выручка,
Реализация. Цена — Остатки. Цена КАК ВыручкаЗаЕдиницуТовара,
Остатки. КоличествоОстаток КАК КоличествоОстаток,
ОстаткиПоСкладамОстатки. КоличествоОстаток — Реализация. Количество КАК Остатки,
Остатки. Цена * (Остатки. КоличествоОстаток — Реализация. Количество) КАК СуммаОстаток,
ОстаткиПоСкладамОстатки. КоличествоОстаток КАК ОстаткиПоСкладам,
СвободныеОстаткиОстатки. ВНаличииОстаток КАК ВНаличииОстаток,
Остатки. СтоимостьОстаток КАК СтоимостьОстаток,
Остатки. Партия КАК Партия
ИЗ
Реализация КАК Реализация
ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
ПО Реализация. Номенклатура = Остатки. Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. ОстаткиПоСкладам. Остатки(
&МоментДокумента,
Склад = &Склад
И Номенклатура В
(ВЫБРАТЬ
Реализация. Номенклатура КАК Номенклатура
ИЗ
Реализация КАК Реализация)) КАК ОстаткиПоСкладамОстатки
ПО Реализация. Номенклатура = ОстаткиПоСкладамОстатки. Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления. СвободныеОстатки. Остатки(
,
Склад = &Склад
И Номенклатура В
(ВЫБРАТЬ
Реализация. Номенклатура КАК Номенклатура
ИЗ
Реализация КАК Реализация)) КАК СвободныеОстаткиОстатки
ПО Реализация. Номенклатура = СвободныеОстаткиОстатки. Номенклатура

УПОРЯДОЧИТЬ ПО
Остатки. Партия. МоментВремени УБЫВ
ИТОГИ
КОЛИЧЕСТВО(Количество),
МИНИМУМ(Цена),
СУММА(Стоимость),
СУММА(Сумма),
СУММА(Выручка),
СУММА(ВыручкаЗаЕдиницуТовара),
МИНИМУМ(КоличествоОстаток),
КОЛИЧЕСТВО(Остатки),
МАКСИМУМ(СуммаОстаток),
МАКСИМУМ(ОстаткиПоСкладам),
СУММА(ВНаличииОстаток),
МИНИМУМ(СтоимостьОстаток)
ПО
Номенклатура

Прикладные типы значений

Прикладные типы значений создаются платформой, когда разработчик добавляет новые прикладные объекты – документы, справочники, регистры и т.д. При этом при создании одного прикладного объекта становятся доступны сразу несколько прикладных типов данных. Например, при добавлении в конфигурацию справочника “Пользователи”, платформа создаст следующие типы:

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

Изначально прикладные типы платформой не поддерживаются, и существуют только в конкретном прикладном решении. Следует иметь в виду, что при создании двух разных справочников, даже с одинаковым набором реквизитов, например “Покупатели” и “Поставщики”, для платформы это будут разные типы данных, несмотря на одинаковый реквизитный состав, и унаследованную базовую функциональность типа “Справочники”.

Проверка на пустую строку в запросе 1С 8

В случае, когда возвращаемый реквизит имеет ссылочный тип, например, это элемент какого-либо справочника, документа и т. п., используется следующая конструкция: ЗНАЧЕНИЕ(Справочник. ИмяСправочника. ПустаяСсылка).

В приведенном ниже примере запрос выбирает всех партнеров, у которых не указан бизнес-регион.

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

Чтобы проверить на «ЗначениеЗаполнено» нужно сделать обратное условие:

Интерфейсные типы данных в 1С

К интерфейсным типам относятся типы данных, позволяющие организовать интерактивное взаимодействие прикладного решения с пользователем. Прежде всего, это типы, связанные с формами и их элементами, например “КнопкаФормы”, “ПолеФормы” и др. Также к интерфейсным типам данных относятся значения, позволяющие работать с избранным, историей, окном клиентского приложения, и т.д.

Проверка на NULL

Значение NULL возвращается в том случае, когда реквизита попросту нет. Тип в этом случае будет тоже NULL. Например, вы объединяете две таблицы через левое соединение. В том случае, когда для левой таблицы не будет найдено ни одного значения в правой, вернется NULL.

Проверку на данное значение можно осуществить при помощи конструкции «ЕСТЬ NULL» и «ЕСТЬNULL()». В первом случае возвращается Истина или Ложь. Во втором случае можно сразу задать другое значение в том случае, когда возвращается NULL.

В приведенном ниже запросе 1С 8.3 будут возвращен список контактных лиц тех партнеров, у кого не задан сегмент.

ВЫБРАТЬ
КонтактныеЛицаПартнеров. Ссылка
ИЗ
Справочник. КонтактныеЛицаПартнеров КАК КонтактныеЛицаПартнеров
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник. СегментыПартнеров КАК СегментыПартнеров
ПО КонтактныеЛицаПартнеров. Владелец = СегментыПартнеров. Родитель
ГДЕ
СегментыПартнеров. Ссылка ЕСТЬ NULL

Универсальные коллекции значений

Для работы с временными наборами данных в течение сеанса работы пользователя используются универсальные коллекции, такие как Массив, ТаблицаЗначений, Структура и др. Они не являются объектами базы данных, и в ней не хранятся. Универсальные коллекции используются для сбора, группировки, анализа и обработки данных. Значения типа универсальной коллекции создаются при помощи ключевого слова Новый, например – Новый СписокЗначений, Новый ДеревоЗначений. Платформа также предоставляет разработчику связанные типы значений, такие как КолонкаТаблицыЗначений, СтрокаДереваЗначений,  КлючИЗначение, для работы с содержимым универсальных коллекций.

Читайте также:  Керчь мой город

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

Проверка на NULL в запросе

Значение типа NULL может появиться в результате использования соединений, либо при обращении к недоступным реквизитам (реквизиты групп у элементов и реквизиты элементов у групп будут иметь тип NULL)

//Запрос вернет все товары, по которым нет остатков на складе
Запрос Запрос

Составные типы значений

Реквизиты объектов конфигурации могут иметь составной тип. Например, для реквизита “Платежный документ” может быть указаны типы “Приходная накладная”, “Авансовый отчет”, “Оприходование товаров”. В этом случае разработчик указывает, что реквизит имеет составной тип, и отмечает нужные типы на этапе конфигурирования, а пользователь в процессе эксплуатации может выбрать в реквизит значение одного из доступных типов. Следует иметь в виду, что в каждый конкретный момент времени значение имеет только один конкретный тип. Если значение составного типа не указано, тип будет Неопределено. Одновременно двух типов значение составного типа  не может.

Примитивные типы значений в 1С

Значения примитивных типов не содержат в себе ничего, кроме литерала своего типа. Например, значение типа число может определяться литералом 12345, типа строка – “12345”, типа булево – Истина, и т.д.

Всего примитивных типов в 1С шесть:

Значения примитивных типов могут преобразовываться к другим типам. Для явного преобразования используются соответствующие методы глобального контекста – например, Строка(12345) приведет число к строке, Дата(“20210101”) – преобразует строку в дату 01.01.2021, и др.

Но самое интересное начинается при неявном преобразовании типов. Значения преобразуются по определенным правилам. Так, например, второй операнд  и последующие преобразуются к первому операнду выражения, до тех пор, пока это подразумевается используемыми операторами Т.е. если первым идет число, последующие операнды также будут преобразовываться к числу, если строка – к строке. Но если в выражении попадается оператор, который работает только с конкретным типом, то будет повторное преобразование к этому типу.

Строка1 = 1;
Строка2 = «2»;
Строка3 = Строка1 + Строка2; // Вернет число 3
Строка4 = Строка2 + Строка1; // Вернет строку «21»
Строка5 = «2» + 2 — 2 ; // Вернет число 20, т.к. оператор «минус» не работает со строковыми выражениями, и оба его операнда преобразуются к числу.

Значение типа Неопределено – это специальное значение, которое используется как значение по умолчанию для полей составных типов, а также для обозначения неуказанного значения. Объявленные переменные, в которые еще не поместили значение, будут иметь тип Неопределено.

Значение Null – это литерал, обозначающий отсутствие значения в выборке данных. Прежде всего это значение используется при работе с запросами, например, при левом соединении двух таблиц, отсутствующие значения в левой таблице будут заменены значениями Null. Также значение Null будет иметь реквизит иерархического справочника для элемента-группы, если в свойствах реквизита указано, что данный реквизит используется только для элементов. Аналогично для реквизитов, которые используются только для групп, их значения в обычных элементах справочника будут равны Null.

Чтобы проверить на несколько значений применяется условие ИЛИ или множество В()

ВЫБРАТЬ Ссылка ИЗ Справочник. Пользователи ГДЕ ФизЛицо ССЫЛКА Справочник. ФизическиеЛица ИЛИ Физлицо ССЫЛКА Справочник. Пользователи

ВЫБРАТЬ Ссылка ИЗ Справочник. Пользователи ГДЕ ТИПЗНАЧЕНИЯ(Физлицо) В (ТИП(Справочник. ФизическиеЛица),ТИП(Справочник. Пользователи))

При сравнении ссылочных типов пустые ссылки, также дают совпадение, то есть для проверки на заполненность они применимы только как вспомогательные функции

Легче сочинить 10 правильных сонетов, чем хорошее рекламное объявление.

Вместо предисловия

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

Примеры использования

Основные способы применения конструкций ТИП и ТИПЗНАЧЕНИЯ в запросе – это сравнение типов в условиях, а также выбор типов в качестве полей в результате выполнения запроса. Оператор Ссылка используется в запросе для определения, является ли значение ссылкой на указанную таблицу, или нет. Например, является ли поле Покупатель ссылкой на справочник Контрагенты или на справочник ФизическиеЛица. Рассмотрим несколько практических примеров.

Как в запросе проверить на соответствие нужному типу

Проверить, относится ли значение к нужному типу, можно двумя способами. Первый – самый универсальный, он подходит для любых значений – как для ссылочных типов, так и для примитивных. В запросе мы сравниваем результат функции ТИПЗНАЧЕНИЯ с нужным типом. Допустим, у нас есть регистр сведений с ресурсом составного типа “Значение”, куда загружаются данные из внешнего источника (например, файла). Значение может быть числом, строкой или датой.

Данные в файле записаны в следующем формате:

Читайте также:  Как хэшировать пароль с помощью SHA-512 в Java?


Проверить на тип в запросе 1с

ВЫБРАТЬ
ДанныеФайла. ИмяФайла КАК ИмяФайла,
ДанныеФайла. НомерСтрокиФайла КАК НомерСтрокиФайла,
ДанныеФайла. НомерКолонки КАК НомерКолонки,
ДанныеФайла. Значение КАК Значение
ИЗ
РегистрСведений. ДанныеФайла КАК ДанныеФайла
ГДЕ
ТИПЗНАЧЕНИЯ(ДанныеФайла. Значение) = ТИП(ДАТА)

В результате получим следующее:


Проверить на тип в запросе 1с

Использование условного оператора ССЫЛКА

ВЫБРАТЬ
Продажи. Регистратор. Номер КАК НомерДокумента,
ВЫБОР
КОГДА Продажи. Регистратор ССЫЛКА Документ. РеализацияТоваров
ТОГДА 1
ИНАЧЕ -1
КОНЕЦ * Продажи. Сумма КАК Сумма
ИЗ
РегистрНакопления. Продажи КАК Продажи

Выбор типа в качестве поля в запросе

Предположим, у регистра Продажи есть два регистратора – документ РеализацияТоваров, и документ ОтчетОРозничныхПродажах. Мы хотим в отчет вывести номер документа и тип этого документа. Запрос будет следующий:

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

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

ВЫБРАТЬ
ТИП(СТРОКА) КАК ТипСтрока,
ТИП(ЧИСЛО) КАК ТипЧисло,
ТИП(ДАТА) КАК ТипДата,
ТИП(Документ. ПриходТоваров) КАК ТипДокумент

Пустая ссылка (Значение) в запросе 1С 8

// Запрос вернет все товары, у которых не заполнен основной поставщик
Запрос Запрос

Примеры проверки типа в запросах

Получить тип в полях выборки:

ВЫБРАТЬ ТИП(Строка), ТИП(Справочник. Контрагенты)

Получить совпадение типа в выборке

Выбрать ТИПЗНАЧЕНИЯ(Ссылка) = ТИП(Справочник. Контрагенты)

Отбор по типу значения:

ВЫБРАТЬ Ссылка ИЗ Справочник. Контрагенты ГДЕ ТИПЗНАЧЕНИЯ(ОсновнойМенеджер) = ТИП(Справочник. ФизическиеЛица)

Использование конструкции ССЫЛКА:

ВЫБРАТЬ ИНН ИЗ Справочник. Контрагенты ГДЕ ОсновнойМенеджер ССЫЛКА Справочник. ФизическиеЛица

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

На тип значения можно проверять не только поля из выборки запроса, но и параметры:

ВЫБРАТЬ * из Справочник. Контрагенты ГДЕ ТИПЗНАЧЕНИЯ(&Параметр) = ТИП(Справочник. Контрагенты)

Параметром функции ТИПЗНАЧЕНИЯ могут выступать:

СТРОКА, ЧИСЛО, ДАТА, а также все ссылочные типы.

Пустая дата в запросе 1С 8

//Кроме того, пустые значения можно задать непосредственно в запросе
//Для формирования пустой даты используется конструкция ДатаВремя(1,1,1)
//Пустая строка заключается в двойные кавычки
//Пустая ссылка устанавливается при помощи оператора Значение

// Запрос возвращает документы установки цен с пустой датой утверждения
Запрос Запрос

Как же в запросе 1С сравнить на пустое значение

Для этого у нас есть несколько вариантов в зависимости от требований задачи:

Если требуется получить значение пустого типа.

Воспользуемся функцией ЗНАЧЕНИЕ()

Выбрать     ЗНАЧЕНИЕ (Перечисление. Пол. ПустаяСсылка)//Без вопроса в единственном числе

Либо через переданный в запрос параметр:Выбрать    &ПустойПараметрНужногоТипа

Если требуется сравнить со значением не составного типа

Выбрать       Выбор когда &ПустойПараметрНужногоТипа ИЛИ Значение(Перечисление. Пол. Мужской) Тогда Истина Иначе Ложь Конец как ЭтоНеЖенскийПол

Если требуется проверка составного значения

В этом случае значение

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

//Мы инициализировали массив заполненных значений и сравнили его с пустым

Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление. Пол. ПустаяСсылка) в (Значение(Перечисление. Пол. Мужской),Значение(Перечисление. Пол. Женский)) ИЛИ Есть NULL Тогда Истина Иначе Ложь конец ЗначениеПустое

//Мы инициализировали массив пустых ссылок и проверили вхождение в него нашего «неизвестного» значения

Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление. Пол. Мужской) в (Значение(Перечисление. Пол. ПустаяСсылка),Значение(Справочник. Контрагенты. ПустаяСсылка)) Тогда Истина Иначе Ложь конец ЗначениеПустое

Также мы можем передать массив параметром

Выбрать Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление. Пол. ПустаяСсылка) в (&МассивВсехПустыхСсылок) Тогда Истина Иначе Ложь конец ЗначениеПустое

Как получить значение ЛюбаяСсылка?

Еще про перечисление в запросе 1С.

Как определить, что значение является справочником или документом?

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

Пример. В подписке ПриЗаписи мы получаем параметр Источник, который может быть как любым элементом любого справочника, так и любым документом.

Если Справочники. ТипВсеСсылки(). Содержит(ТипЗнч(Источник)) Тогда
// Это справочник
ИначеЕсли Документы. ТипВсеСсылки().
// Это документ
КонецЕсли;

Проверка типа конкретного значения

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

Для такой проверки используется два метода глобального контекста: Тип и ТипЗнч.

Пример. Реквизит Плательщик имеет составной тип – плательщиками могут быть Сотрудники и Контрагенты. Нам нужно проверить, что выбранное значение реквизита является элементом справочника Контрагенты:

Если ТипЗнч(Плательщик) = Тип(«СправочникСсылка. Контрагенты») Тогда

Оцените статью
ФСС Help
Добавить комментарий