Официальный
партнер 1С

  • г. Москва,
    м. Ольховая,
    Дубровка

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

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

Разработка переносов - наша специализация с 2015г.
На рынке с 2015 года
Наши клиенты и их отзывы
Наши клиенты и их отзывы
Моментальная доставка при оплате онлайн
Быстрая отгрузка ПО
Наш перенос данных можно проверить перед покупкой на вашем сервере на вашей базе 1С
Демонстрация ПО на вашем сервере
Можно приехать к нам в офис для проверки
Проверка у нас в офисе
Рейтинг 5 звезд на Яндекс.Маркете
Отзывы на Яндекс.Маркете

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

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


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

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


Сорокин Сергей

Есть вопросы по работе с 1С?

Оставьте заявку прямо сейчас!
Руководитель компании MoscowSoft, Сорокин Сергей, может помочь с решением Ваших вопросов. Пишите нам на почту: task@moscowsoft.com или звоните: +7 (499) 67-333-75

Перезвоните мне