Официальный
1С:Франчайзи

task@MoscowSoft.com
Меню
Каталог Наши клиенты Акции Покупки Компания Статьи Контакты

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

Представляем наши разработки:

Универсальные переносы данных 1С (перенос документов, остатков и справочной информации):

Данные программы разработаны в нашей компании. Позволяют комфортно выполнить переход со старых программ 1С на новые. В отличие от типовых переносов фирмы 1С эти разработки позволяют переносить документы за выбранный период.  
Переносы данных можно приобрести за безналичный расчет на юридическое лицо (предоставим закрывающие документы) или оплатить банковской картой через шлюз Яндекс.Кассы (предоставим электронный чек).
31.03.2018

 

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

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


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

...

Назад к списку новостей