Меню
Каталог Лицензии 1С Опыт и отзывы Услуги Компания Статьи Контакты

Сравнения с типами, значениями объектов в запросах, отборы в запросах 1С

Основатель и руководитель компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, основатель компании MoscowSoft  31.03.2018 Актуальность проверена: 27.05.2024
Подобрать перенос данных 1С

Специализируемся на переносах данных 1С с 2015г.

Подобрать перенос данных 1С >>

Интеграция 1С с маркетплейсами

Специализируемся на интеграциях 1С с маркетплейсами с 2021г.

Изучить продукты >>

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

Вопрос Как в языке запросов 1С отобрать не заполненное значение? Какое условие указать в запросе после ключевого слова «ГДЕ», когда нужно сделать отбор по не заполненным полям?
Ответ См. примеры запросов и комментарии к ним:


    Запрос.Текст =      "ВЫБРАТЬ       |    усЕдиницыХранения.Ссылка      |ИЗ      |    Справочник.усЕдиницыХранения КАК усЕдиницыХранения      // Пример 1. сравнение с не заполненным булевым значением:      |ГДЕ      |     усЕдиницыХранения.РазрешитьОтборИзРезервнойЗоны = Ложь      // Пример 2. но если это булево определено, то лучше так: // условие на отрицательное булево:      |ГДЕ      |     НЕ усЕдиницыХранения.РазрешитьОтборИзРезервнойЗоны      // Пример 3. выборка по условию не заполненного поля, имеющего тип "справочник конкретного типа"      |ГДЕ      |    усЕдиницыХранения.АктивнаяОбластьОтбора = ЗНАЧЕНИЕ(Справочник.усОбластиОтбора.ПустаяСсылка)      // Пример 3а. выборка по условию не заполненного поля, имеющего тип "документ конкретного типа"      |ГДЕ      |    НашРегистрСведений.Документ = ЗНАЧЕНИЕ(Документ.НашДокумент.ПустаяСсылка)      // Пример 3б. выборка по условию не заполненного поля, имеющего тип "документы разных типов" (составное поле)      |ГДЕ      |    (НашРегистрСведений.Документ = ЗНАЧЕНИЕ(Документ.НашДокумент1.ПустаяСсылка)      |    ИЛИ НашРегистрСведений.Документ = ЗНАЧЕНИЕ(Документ.НашДокумент2.ПустаяСсылка)       |    ИЛИ ...(и т.д. - последовательно перечисляем условия для всех возможных типов этого составного поля))            // Пример 4. или наоборот, если нужно выбрать заполненное значение типа "строка", то поможет условие:      |ГДЕ      |    усЕдиницыХранения.Наименование > """"        // Пример 5. если нужно выбрать документы конкретного типа, при составном типе данных, например в регистре "ВыполняемыеЗадания" ресурс "Задание" имеет составной тип, среди значений которого возможен документ "Отбор"      |ГДЕ      |    ВЫРАЗИТЬ(РегистрСведенийВыполняемыеЗадания.Задание КАК Документ.Отбор) ССЫЛКА Документ.Отбор      // Пример 5а. Еще аналогичный пример, когда нужно выбрать документы конкретного типа      |	ВЫБОР      |		КОГДА ВЫРАЗИТЬ(агСоответствиеДокументов.ДокументБУ КАК Документ.ПоступлениеТоваровУслуг) ССЫЛКА Документ.ПоступлениеТоваровУслуг      |			ТОГДА ""ПоступлениеТоваровУслуг""      |		КОГДА ВЫРАЗИТЬ(агСоответствиеДокументов.ДокументБУ КАК Документ.РеализацияТоваровУслуг) ССЫЛКА Документ.РеализацияТоваровУслуг      |			ТОГДА ""РеализацияТоваровУслуг""      |		ИНАЧЕ """"      |	КОНЕЦ КАК ВидДокумента      // Пример 6. выбор по условию не определенного значения:      |ГДЕ      |    СохраненныеНастройки.Пользователь = НЕОПРЕДЕЛЕНО      // Пример 7. выбор по виду движения "Приход" регистра накопления, "Расход" - аналогично):      |ГДЕ      |    РегТоварыВРознице.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)      // Пример 8. Как в запросе указать, что выполнять запрос не нужно (например,   нужно программно в зависимости от какого-то условия вернуть пустой результат запроса - Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ Док.Ссылка = &ДокументСсылка", "ГДЕ ЛОЖЬ");).   Для этого достаточно добавить условие "Где Ложь".   Кстати, независимо от объема запрашиваемых в выборке данных, такой запрос будет выполнен мгновенно.      |ГДЕ ЛОЖЬ      // Пример 9. Проверка на то, что результат выполнения запроса содержит данные:      Если НЕ Запрос.Выполнить().Пустой() Тогда      // Пример 10. выбор по условию не заполненной даты:      |ГДЕ      |    тбСтроки.ДатаОтмены = ДАТАВРЕМЯ(1, 1, 1)
MoscowSoft логотип

Возврат к списку