Вид сравнения не заполнено 1с
Как в языке запросов 1С отобрать не заполненное значение. Какое условие указать в запросе после ключевого слова «ГДЕ», когда нужно сделать отбор по не заполненным полям?
Есть запрос:
Требуется отобрать по условию, что у справочника усЕдиницыХранения реквизит РазрешитьОтборИзРезервнойЗоны пустой
Реквизит РазрешитьОтборИзРезервнойЗоны имеет тип булево
Вариант 1. сравнение с не заполненным булевым значением:
Вариант 2. Если это булево определено, то лучше так:
Требуется отобрать по условию, что у справочника усЕдиницыХранения реквизит АктивнаяОбластьОтбора пустой
Реквизит АктивнаяОбластьОтбора имеет тип Справочник.усОбластиОтбора
Требуется отобрать по условию, что у регистра сведений НашРегистрСведений реквизит Документ пустой
Реквизит Документ имеет тип Документ.НашДокумент1
Требуется отобрать по условию, что у регистра сведений НашРегистрСведений реквизит Документ пустой
Реквизит Документ имеет составной тип значения: Документ.НашДокумент1, Документ.НашДокумент2 и т.д.
Требуется отобрать по условию, что реквизит не пустой (заполнен хоть чем-то)
Тип значения реквизита — Строка.
Допустим требуется отобрать данные, при условии, что реквизит Задание регистра сведений ВыполняемыеЗадания содержит какой-либо Документ.Отбор
Реквизит Задание имеет составной тип значения: Документ.Отбор, Документ.Поступление и т.д.
Еще аналогичный пример, когда нужно выбрать документы конкретного типа
Отобрать по условию не определенного значения:
Отобрать по условию, что вид движения — Приход
Как в запросе указать, что выполнять запрос не нужно (например, нужно программно, в зависимости от какого-то условия, вернуть пустой результат запроса: Запрос.Текст = СтрЗаменить(Запрос.Текст, «ГДЕ Док.Ссылка = &ДокументСсылка», «ГДЕ ЛОЖЬ»);).
Для этого достаточно добавить условие «Где Ложь». Кстати, независимо от объема запрашиваемых в выборке данных, такой запрос будет выполнен мгновенно.
Проверка на то, что результат выполнения запроса содержит данные:
Отобрать записи с не заполненной датой (реквизит ДатаОтмены имеет тип Дата)
Здравствуйте. Спецы по 1С (сам я чайник только 3 месяца эской занимаюсь, и это мой первый пост так что сильно не бейте) подскажите
в схеме компоновки данных ставлю отбор по полю которое может принимать значения 0, число и null. В одной группировке указываю в качестве отбора для данного поля вид сравнения "не заполнено", в другой группировке, для этого же поля, указываю в качестве отбора вид сравнения "Равно" 0. При выводе отчета наблюдаю следущее: в группировке где установлен отбор "не заполнено" попадают все записи у которых значение поля равно 0 и null, в другой группировке выводятся только записи, у которых значение поля равно 0. Вопрос: как можно сделать отбор, если значения поля равно null(без 0, как это делает вид сравнения "не заполнено"). Скриншот демонстрирующий возникшую ситуацию:http://i3.imageban.ru/out/2011/11/14/3ff2403fdc7477c40809c6be1436ae4b.jpg
В верхней части скриншота видно что если установлен вид сравннения "не заполнено", то берутся поля со значением null и 0.
P.S. Пробовал также сделать вычисляемое поле со значением "null", далее для поля в качестве отбора устанвливал вид сравнения "равно" вычисляемое поле(то которое содержит null). В результате в отчете не выводятся ни записи в которых поле равно 0 и null.
Ты бы в отчет пока для отладки выводил поле разности тк сейчас такое ощущение, что у тебя выводится одна и та же строка документа при разных условиях, ненаглядно.
(0)Из справки:
Заполнено (Filled)
Описание:
Осуществляет проверку поля на то, что его значение отличается от значения данного поля по умолчанию, отличное от значения Null, отличное от пустой ссылки, отличное от значения Неопределено. Для логических значений осуществляется проверка на значение Null. Для строк осуществляется проверка на отсутствие непробельных символов.
Ты устанавливаешь отборы для группировок, думаю, если у тебя обрабатываемое поле - не ресурс и не группировочное, то возможно, что для самой группировки отбор не сработает.
В общем будет проще, если ты расскажешь: что хочешь сделать и скинешь сюда текущий текст запроса.
(4) Спасибо что откликнулись:-) По поводу того, что надо сделать: сделать надо в отчете много, поэтому опишу только одну задачу - в зависимости от значения поля "РазностьЗаказПоставщикуИПлатежПоруч"(оно как я писал может принимать значения 0, число, null, данное поле вычисляемое) распихать записи по разным группировкам. В одной группировке значение поля равно "0" (это значит заказ оплачен полностью), "число" (это значит что заказ оплачен частично), "null" заказ поставщика не оплачен. Чуть позже приведу скриншоты из консоли запросов подтверждающие что все три описанные значение данное поле принимает. Ниже привожу текст запроса.
ИЗ
ВЫБРАТЬ
ВЫБРАТЬ
ЗаказыПоставщику.Сумма,
Извините если сумбурно пишу, просто тороплюсь. Еще раз ворпрос: Как раскидать по трем разным группировкам в отчте в зависимости от значений поля РазностьЗаказПоставщикуИПлатежПоруч. Заранее спасибо.
Все проблема решена, мое начальство подсказало мне использовать конструкцию
Подскажите пожалуйста как программно создать множественный и единичный отбор в отчете.
Отчет сделал без скд и построителя. Макетом и выводил области.
Создал в отчете реквизит тип выбрал отбор. Потом создал табличное поле в данных выбрал реквизит отбор .
В запросе получал сотрудников,подразделение,контрагент .
Создать поле выбора для выбора вида сравнения
Создать поле ввода, тип значения которого менять при изменении вида сравнения
Перед открытием формы заполнить поля выбора вида сравнения
Добавить обработчик ПриИзменении для полей выбора
Перед формированием отчета добавить условие в запрос в соответствии с заданными настройками
В общем случае как-то так.. В СКД проще :)
shalupov61; John_Galt; user1112956; _7445_; BomjBandit; GV.; for_questions; dobreishii; Мах; an1c; ilnurmi; Inkeeper; yyx; dfgdsfgsdfg2011; + 14 – Ответить
(1) Антон, Вот как можно сделать, хоть тут и используется построитель, но отчет далее можно делать и не на нем:
Создать поле выбора для выбора вида сравнения
Создать поле ввода, тип значения которого менять при изменении вида сравнения
Перед открытием формы заполнить поля выбора вида сравнения
Добавить обработчик ПриИзменении для полей выбора
Перед формированием отчета добавить условие в запрос в соответствии с заданными настройками
В общем случае как-то так.. В СКД проще :)
shalupov61; John_Galt; user1112956; _7445_; BomjBandit; GV.; for_questions; dobreishii; Мах; an1c; ilnurmi; Inkeeper; yyx; dfgdsfgsdfg2011; + 14 – Ответить
получилось создать отбор ,только привезать его к запросу не получаеться, я так понял что нужно в запросе где условия,вставлять новые условия учитывая отборы
ГДЕ
| ВЫБОР
| КОГДА &СотрудникЗаполнен = ИСТИНА
| ТОГДА Заказ.Сотрудник = &Сотрудник
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА &КонтрагентЗаполнен = ИСТИНА
| ТОГДА Заказ.Контрагент = &Контрагент
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И ВЫБОР
| КОГДА &ФилиалЗаполнен = ИСТИНА
| ТОГДА Заказ.Филиал = &Филиал
| ИНАЧЕ ИСТИНА
| КОНЕЦ
| И Заказ.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
| И Заказ.Проведен = ИСТИНА
а это код для отбора
Отбор = ВнешнийОтчетОбъект.ОтборОбщий;
ДоступныеПоляОтбора = Отбор.ПолучитьДоступныеПоля();
Поле = ДоступныеПоляОтбора.Добавить("Контрагент", "Контрагент",
Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
Поле.Отбор = Истина;
Поле = ДоступныеПоляОтбора.Добавить("Филиал", "Филиал",
Новый ОписаниеТипов("СправочникСсылка.Филиалы"));
Поле.Отбор = Истина;
Поле = ДоступныеПоляОтбора.Добавить("Сотрудник", "Сотрудник",
Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
Поле.Отбор = Истина;
Видеоролик выполнен в программе «1С:Бухгалтерия 8» релиз 3.0.43.173.
Настройка отображения данных, сортировки строк списка, а также группировки списка в таблице и оформления списка выполняется в диалоге Настройка списка. Диалог открывается командой Еще – Настроить список....
В диалоге предоставляется возможность настроить:
- отбор данных в списке;
- поля, по которым необходимо проводить упорядочивание;
- условное оформление списка;
- поля, по которым необходимо группировать данные;
- другие настройки.
Все настройки распределены на закладках: Основные, Отбор, Сортировка, Условное оформление и Группировка.
Установка отбора в списке
Отбор позволяет просматривать только те данные, которые удовлетворяют всем заданным условиям. Чтобы установить отбор в списке, следует в диалоге Настройка списка перейти на закладку Отбор и добавить элементы отбора.
Для добавления настройки элемента отбора следует в списке доступных полей указать поле и выполнить команду Выбрать. Поле добавляется в список элементов настройки. В левой колонке для него будет установлен флаг использования. Также можно выполнить команду Добавить новый элемент или просто перетащить поле из списка Доступные поля. В колонке Вид сравнения нужно выбрать требуемый вид сравнения из списка и указать значение в одноименной колонке.
Если отбор нужно выполнить по нескольким условиям, то в список элементов настройки нужно добавить другие поля со своими условиями.
Условия можно сгруппировать, объединив их логическими операторами (Группа И, Группа Или, Группа Не). Для этого используется кнопка Сгруппировать.
При необходимости можно изменить порядок, в котором условия будут применяться к списку. Для этого достаточно выделить элемент и перетащить его в нужное место.
Для отмены настройки ее следует удалить или снять флаг использования.
Например, для того чтобы в списке выставленных покупателям счетов отобрать документы, комментарии к которым не содержат слово «молоко», нужно выполнить следующие действия:
- добавить в колонку Поле значение Комментарий;
- указать вид сравнения Не содержит;
- в колонке Значение указать значение «молоко».
Чтобы применить настройку отбора в списке, следует нажать кнопку Завершить редактирование.
Сортировка, группировка и условное оформление списка
Чтобы установить сортировку в списке, следует перейти на закладку Сортировка. Для добавления элемента сортировки следует нажать Добавить новый элемент порядка (или перетащить поле из списка Доступные поля и выбрать Направление сортировки (По возрастанию/По убыванию). Если полей сортировки несколько, то в списке данные будут отсортированы вначале по первому полю, потом по второму и т. д. Последовательность элементов сортировки полей можно поменять, выделив строки и перетащив их в нужное место.
Чтобы применить настройку сортировки в списке, нажать кнопку Завершить редактирование.
Чтобы сгруппировать записи в списке, следует в диалоге настройки перейти на закладку Группировка и добавить поле, по которому необходимо провести группировку. Если было выбрано несколько полей, то записи в списке будут последовательно сгруппированы в порядке, установленном для полей группировки.
Чтобы применить настройку группировки, следует нажать кнопку Завершить редактирование.
Для настройки условного оформления следует в диалоге настройки перейти на закладку Условное оформление и в табличном поле добавить необходимые элементы.
Редактирование элемента условного оформления выполняется в отдельном окне:
- на закладке Оформление можно выбрать требуемые параметры оформления (цвет фона, цвет текста, шрифт и т. д.);
- на закладке Условие можно поставить условие, при выполнении которого оформление будет применяться к полям. Условие устанавливается аналогично отбору;
- на закладке Оформляемые поля нужно выбрать поля из списка доступных полей, к которым будет применяться оформление, если условие выполнено.
Чтобы применить настройку условного оформления, следует нажать кнопку OK.
Настройки динамического списка сохраняются автоматически при закрытии формы и автоматически загружаются при открытии формы в новом сеансе работы.
Чтобы сохранить установленный набор настроек в форме списка, нужно выбрать команду Еще – Сохранить настройки…. В открывшемся диалоге ввести название настройки и нажать кнопку Сохранить.
Для использования созданных ранее настроек списков нужно выбрать Еще – Выбрать настройки. . В открывшемся диалоге выбрать требуемую настройку из списка ранее сохраненных настроек и нажать Выбрать.
Вернуть настройки списка по умолчанию можно командой Еще – Установить стандартные настройки.
Видеоролик выполнен в программе «1С:Бухгалтерия 8» версия 3.0.64.42.
Стандартные отчеты предназначены для получения данных бухгалтерского и налогового учета по остаткам и оборотам счетов, по объектам аналитического учета (субконто), а также для формирования списка корреспонденций счетов.
В верхней части любого стандартного отчета находится командная панель. С помощью настроек панели можно изменить параметры отчета: установить другой период, организацию и др.
По кнопке Показать настройки (Скрыть настройки) открывается (скрывается) панель настройки. В панели настройки на закладке Отбор можно выбрать параметр или реквизит, по которому будет произведен отбор в отчете, а также задать вид сравнения.
Параметр или реквизит, доступный для настройки отбора, указывается в графе Поле. Конкретное значение выбранного параметра или реквизита параметра указывается в последней графе Значение (если оно требуется).
В колонке Вид сравнения можно указать условие сравнения, которое зависит от типа параметра. Например, для элемента справочника условие сравнения можно выбрать среди следующих вариантов:
- Равно – параметр должен быть точно равен значению, указанному в графе Значение;
- Не равно – параметр не равен указанному значению;
- В списке – параметр должен быть равен одному из значений, указанных в списке. При выборе такого условия в графе Значение становится возможным указать не одно значение, а список значений;
- Не в списке – параметр не должен быть равен ни одному из значений, указанных в списке;
- В группе – параметр должен быть равен либо самому значению, либо подчиненному значению;
- Не в группе – параметр не должен быть равен ни самому значению, ни подчиненным значениям;
- В группе из списка – параметр должен быть равен одному из значений, указанных в списке групп, либо подчиненному значению из списка групп;
- Не в группе из списка – параметр не должен быть равен ни одному из значений, указанных в списке групп, ни подчиненным значениям из списка групп;
- Заполнено (Не заполнено) – отбор по заполненным (незаполненным) значениям. В данном случае заполнение графы Значение не требуется.
Если в табличной части указать два или более условия заполнения нескольких строк, то при отборе данных для формирования отчета будет проверяться одновременное соблюдение всех указанных условий.
Читайте также: