У обработки имеются реквизиты "Организация" и "Подразделение", отображенные на форме. При открытии формы, значение "Подразделение" пустое и при запуске обработки выводит результаты по всем данным, где реквизит "Подразделение" не заполнен тоже. Как добиться того, чтобы при пустом значении на форме выводились все результаты, игнорируя отбором по Подразделению.
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
| ИЗ | Документ.СписаниеТоваров КАК СписаниеТоваров | ГДЕ | СписаниеТоваров.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ) | И СписаниеТоваров.Проведен = ИСТИНА | И СписаниеТоваров.НаДоход = ИСТИНА | И СписаниеТоваров.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос |ГДЕ | ВложенныйЗапрос.Организация = &Организация | И ВЫБОР КОГДА ВложенныйЗапрос.Подразделение = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ ВложенныйЗапрос.Подразделение = &Подразделение КОНЕЦ | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Статус, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Организация, | ВложенныйЗапрос.Подразделение | |УПОРЯДОЧИТЬ ПО | Статус, | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ";
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0
Flexy @ Сегодня, 16:45
,
Не совсем корректно работает...
Усложним задачу. В идеале, все Подразделения должны быть заполнены, но тем не менее есть что-то пропущено, т.е. значения Подразделений пустые.
Я разместил реквизит булево "Пропущено" на форме. Теперь, в случае, если значение параметра на форме "Подразделения" пустое, то должно выводить все значения, а вот если стоит галка "Пропущено" вывести все пустые значения Подразделений:
Т.е., если НЕ ЗначениеЗаполнено(Подразделение), но Пропущено=Истина, тогда Подразделение = ПустаяСсылка()
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Тоже конструктор будет работать. Нужно по возможности упрощать текст запроса который сервер 1С посылает серверу СУБД. Мало ли какие данные (и как) хранятся в СУБД. Усложнение фильтров может повлиять на выборку данных, чем проще и точнее условия, тем проще оптимизатору СУБД построить оптимальный план запроса.
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
andr_andrey @ Сегодня, 11:24
, Ну есть ещё один вариант - заранее сформировать строку с отбором с учетом всех условий и потом только вставить в разрыв текста запроса, конструктором я особо не пользуюсь, а читается мне так проще, типа такого:
ТекстФильтра = "ГДЕ ВложенныйЗапрос.Организация = &Организация "; Если ЗначениеЗаполнено(Подразделение) Тогда ТекстФильтра = ТекстФильтра + " И ВложенныйЗапрос.Подразделение = &Подразделение"; ИначеЕсли Ошибочные Тогда ТекстФильтра = ТекстФильтра + " И ВложенныйЗапрос.Подразделение = ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка)"; КонецЕсли;
и потом просто в условие вставляем сформированную заранее строку:
| ИЗ | Документ.СписаниеТоваров КАК СписаниеТоваров | ГДЕ | СписаниеТоваров.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ) И КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ) | И СписаниеТоваров.Проведен = ИСТИНА | И СписаниеТоваров.НаДоход = ИСТИНА | И СписаниеТоваров.ПометкаУдаления = ЛОЖЬ) КАК ВложенныйЗапрос | "+ТекстФильтра+" | |СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Статус, | ВложенныйЗапрос.Номенклатура, | ВложенныйЗапрос.Организация, | ВложенныйЗапрос.Подразделение | |УПОРЯДОЧИТЬ ПО | Статус, | Номенклатура |АВТОУПОРЯДОЧИВАНИЕ";
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 327 раз
Рейтинг: 0
andr_andrey @ Сегодня, 12:34
, и тем не менее половина типовых механизмов именно так реализована
Дописываю конфигурации на платформе 8.х. - Управление торговым предприятием для Украины - Управление производственным предприятием для Украины - Управление небольшой фирмой для Украины - Бухгалтерия для Украины; - Общепит для Украины - Ресторан (Рарус) - Розница
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!