множественный выбор и обработка элементов справочника
Всем доброго дня!
Имеется древняя конфа, переписанная CRM (обычные формы).
Имеется отчет, в него нужно добавить следующее:
1) Добавить на форму поле с выбором нужных подразделений (чтобы отчет формировался только по ним) - сделано
2) Если подразделения не выбраны - формировать отчет по всем.
Кусок кода с множественным выбором:
Если подразделения не выбирать, то заходит в часть Иначе и выдает "Выберите подразделения"
Всем спасибо за помощь!
Имеется древняя конфа, переписанная CRM (обычные формы).
Имеется отчет, в него нужно добавить следующее:
1) Добавить на форму поле с выбором нужных подразделений (чтобы отчет формировался только по ним) - сделано
2) Если подразделения не выбраны - формировать отчет по всем.
Кусок кода с множественным выбором:
Результат = ФормаПодбора.ОткрытьМодально();
Если Результат <> Неопределено Тогда
Подразделение.ЗагрузитьЗначения(Результат);
Иначе
Спр = Справочники.Подразделения.Выбрать();
Пока Спр.Следующий() Цикл
Подразделение.ЗагрузитьЗначения(Спр.Ссылка);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Кусок кода, при нажатии "Сформировать отчет":
Запрос.УстановитьПараметр("Подразделение", Подразделение);
Если Подразделение.Количество() > 0 Тогда
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Иначе
Сообщить ("Выберите подразделения!");
Возврат;
КонецЕсли;
ПоказатьЕсли подразделения не выбирать, то заходит в часть Иначе и выдает "Выберите подразделения"
Всем спасибо за помощь!
По теме из базы знаний
- Обработка элементов и групп справочника (групповой перенос и удаление)
- Удобная форма множественного выбора
- Множественный выбор значения дополнительного свойства при обмене с сайтом на Битрикс
- Множественный выбор значений дополнительных реквизитов для конфигурации Управление торговлей 11.4
- Импорт данных из файла Xlsx и загрузка изображения в форму элемента справочника
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
А в задаче нужно реализовать так, что если отчет сформировали, но не выбирали подразделений - отчет формируется по всем
закрытии модальной формы?
Эм, если просто открывать отчет и не выбирать подразделение, то и форма не открывалась, соответственно ничего не возвращается. Если нажать на выбор подразделения, потом закрыть форму, то выбираются все подразделения.
А в задаче нужно реализовать так, что если отчет сформировали, но не выбирали подразделений - отчет формируется по всем
(6)
параметр в запросе есть, он отрабатывает. Еще раз задача, внимание, она состоит из 2х частей:
1) Добавить на форму поле с выбором нужных подразделений (чтобы отчет формировался только по ним) - сделано
2) Если подразделения не выбраны - формировать отчет по всем.
а не к модальной форме ручного выбора подразделений...
параметр в запросе есть, он отрабатывает. Еще раз задача, внимание, она состоит из 2х частей:
1) Добавить на форму поле с выбором нужных подразделений (чтобы отчет формировался только по ним) - сделано
2) Если подразделения не выбраны - формировать отчет по всем.
(7)
или так и рядом
2) Если подразделения не выбраны - формировать отчет по всем.
Тебе об этом и говорят - при установке параметров запроса проверять - если параметр пустой, то его просто не надо использовать!!!
|ГДЕ ВЫБОР
| КОГДА &Подразделение = НЕОПРЕДЕЛЕНО
| ТОГДА ИСТИНА
| ИНАЧЕ Таблица.Подразделение В(&Подразделение)
| КОНЕЦ
|ГДЕ &Подразделение = НЕОПРЕДЕЛЕНО ИЛИ Таблица.Подразделение В(&Подразделение)
Запрос.УстановитьПараметр("Подразделение", ?(Подразделение.Количество(), Подразделение, Неопределено));
(8)
Идея понятна, но как переделать мой запрос все равно не доходит.
у меня кусок условия:
Также, насколько я понимаю, можно проверку заполненности реализовать не в самом запросе в просто в коде, как я и пытался сделать изначально?
Идея понятна, но как переделать мой запрос все равно не доходит.
у меня кусок условия:
| ГДЕ
| Док.Подразделение В (&Подразделение)
|;
Также, насколько я понимаю, можно проверку заполненности реализовать не в самом запросе в просто в коде, как я и пытался сделать изначально?
(17) Лично для себя нашёл удобным 2-й вариант в "щадящем" режиме, чтобы запрос можно было открыть в конструкторе:
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Т.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриобретениеТоваровУслуг КАК Т
|ГДЕ
| Т.Проведен
| И &Условие");
МассивУсловий = Новый Массив;
Если ЗначениеЗаполнено(ОтборРеквизит1) Тогда
МассивУсловий.Добавить("Т.Реквизит1 = &Реквизит1");
Запрос.УстановитьПараметр("Реквизит1", ОтборРеквизит1);
КонецЕсли;
Если ЗначениеЗаполнено(ОтборРеквизит2) Тогда
МассивУсловий.Добавить("Т.Реквизит2 = &Реквизит2");
Запрос.УстановитьПараметр("Реквизит2", ОтборРеквизит2);
КонецЕсли;
//...
Если МассивУсловий.Количество() > 0 Тогда
Условие = СтрСоединить(МассивУсловий, " И ");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условие", Условие);
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И &Условие", "");
КонецЕсли;
Показать
(14)
Вы решили блеснуть своей ироничностью? полагаю, что перепутали форум. Вопросы я задаю из-за незнания каких-то моментов. И подчеркиваю, это ВОПРОСЫ, а не наезды, ирония и тд, как в Вашем случае
ельзя проверять заполнение параметров в запросе, а надо засуну
Вы решили блеснуть своей ироничностью? полагаю, что перепутали форум. Вопросы я задаю из-за незнания каких-то моментов. И подчеркиваю, это ВОПРОСЫ, а не наезды, ирония и тд, как в Вашем случае
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот