0
CaIIIka
07.07.25
✎
17:37
|
Здравствуйте! Задача показалась простая, но решить нормальным способом не смог.
Есть вычисляемое поле, в нем функция ВычислитьВыражение, которая вызывает функцию общего модуля, передавая в нее параметры: часть из постоянных параметров, часть из группировок.
Чет не пойму, как передать в функцию общего модуля параметр отчета, который нельзя делать обязательным (использование-Авто). Тип параметра - СправочникСсылка.
Фигурные скобки, как в запросе, не дает использовать. Если параметр не используется, то отчет ругается.
ВычислитьВыражение("РаботаСКонтрагентами.Просрочка(&Период.ДатаНачала,&Период.ДатаОкончания,измКлиент,измПредприятие,&НужныйПараметр,Сумма(ресСуммаБазКонечныйОстаток),&ПоПоставщикам)","измКлиент","Группировка")
измКлиент и измПредприятие - поля запроса основного набора данных
&НужныйПараметр - необязательный параметр отчета (Использование-Авто)
Весь Инет перерыл, не нашел ничего. Выдает либо как ВычислитьВыражение использовать в различных вариациях, либо как с параметрами работать. Нейро тоже ничего. ИИ от Гугл выдал конструкцию:
ВЫБОР
КОГДА &Параметр = НЕОПРЕДЕЛЕНО (или ЕСТЬ NULL)
ТОГДА <Выражение при отсутствии параметра>
ИНАЧЕ <Выражение с параметром>
КОНЕЦ
Но она тоже требует этот параметр, и ругается если не указан :)
Пока есть идея сделать еще один набор данных с выборкой элементов нужного справочника в зависимости от указанного (или неуказанного) параметра, в новом запросе этот параметр загнать в фигурные скобки, передать полученный массив в функцию общего модуля и допилить ее, чтобы понимала тип переданного параметра (ссылка или массив данных). Но это показалось извращением.
Может есть способ проще?
Если что, 1С 8.2.19.130 (вдруг в "тройке" чего-то добавили).
|
|
1
timurhv
07.07.25
✎
18:01
|
РаботаСКонтрагентами.Просрочка - там запрос чтоли?
Раз конфига древняя и не обновляется, лучше будет сделать через дополнительный набор данных - как вы и подумали.
Только, не понял зачем нужна дальнейшая передача и допил. Выбирайте сразу необходимые данные.
|
|
2
CaIIIka
07.07.25
✎
18:16
|
(1) Запросы только в наборах данных в СКД. РаботаСКонтрагентами.Просрочка считает просрочку за период по контрагенту, организации и подразделению (тот самый параметр). Контрагент и организация - поля запроса СКД, они есть в выборке. Подразделение - необязательный параметр отчета.
|
|
5
CaIIIka
07.07.25
✎
18:37
|
Сведу задачу к минимуму:
Вычисляемое поле:
ВычислитьВыражение("ОбщМодуль.Просрочка(&НужныйПараметр)","измКлиент","Группировка")
&НужныйПараметр - Параметр отчета. Использование:Авто.
Как сделать, чтоб не ругалось, когда параметр не выбран (галка на параметре не стоит)?
|
|