|
Консоль запросов. Параметр. Выражение СКД. Массив
|
|
| yasnovidyashii | Дата: Пн, 24.03.2025, 13:58:34 | Сообщение # 1 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Редактирую запрос компоновки данных. В компоновке есть параметр, для которого задано выражение, вызывающее функцию общего модуля, результатом выполнения которой является Массив. Для параметра установлен флаг "Доступен список значений".
В таком варианте сам отчет формируется корректно. Но если выполнить запрос в консоли запросов, то итоговым значением параметра является пустой список значений, что в корне меняет результат выполнения запроса. Догадываюсь, если бы функция возвращала не Массив, а СписокЗначений, проблемы бы не возникло. И все-таки для самой компоновки это ошибкой не является.
|
| |
| |
| tormozit | Дата: Пн, 24.03.2025, 14:21:13 | Сообщение # 2 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| Делай файл с примером, чтобы его можно было открыть в консоли компоновки и повторить проблему. Заодно и техническую информацию добавь.
|
| |
| |
| yasnovidyashii | Дата: Пн, 24.03.2025, 14:54:11 | Сообщение # 3 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Попробовал сделать простой пример и вижу, что мои предложения о причинах проблемы неверны. Функция с результатом типа Массив в простом примере отрабатывает корректно, параметр получает итоговое значение. От моей же изначальной компоновки толку мало в качестве примера. И функция там не типовая вызывается. Еще подумаю...
|
| |
| |
| yasnovidyashii | Дата: Пн, 24.03.2025, 15:42:15 | Сообщение # 4 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Вроде получилось в относительно упрощенном виде повторить проблему. Для этого необходимо в конфигурации создать модуль зти_Тестовый с одной функцией:
Код Функция ТестоваяФункция(Список=Ложь) Экспорт Если Список Тогда Результат = Новый Массив; Результат.Добавить("Иванов"); Результат.Добавить("Петров"); Результат.Добавить("Сидоров"); Иначе Результат = "Иванов"; КонецЕсли; Возврат Результат; КонецФункции
Отчет выбирает из регистра сведений все физлица с ФИО Иванов, Петров, Сидоров. Реализовано это через параметр МассивФИО с выражением зти_Тестовый.ТестоваяФункция(Истина)
Текст запроса:
Код ВЫБРАТЬ ФИОФизЛиц_СрезПоследнихТ.ФизЛицо КАК ФизЛицо ИЗ РегистрСведений.ФИОФизЛиц.СрезПоследних({&ДатаОтчета}, ) КАК ФИОФизЛиц_СрезПоследнихТ ГДЕ ФИОФизЛиц_СрезПоследнихТ.Фамилия В (&МассивФИО)
Файл с примером для консоли компоновки приложил.
|
| |
| |
| tormozit | Дата: Пн, 24.03.2025, 19:14:23 | Сообщение # 5 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| С первого взгляда проблема не касается структуры данных. Поэтому желательно бы тест без связи с реквизитами данных. В идеале нужна выгрузка базы, которую я разверну, запущу и сразу получу повтор проблемы.
|
| |
| |
| yasnovidyashii | Дата: Вт, 25.03.2025, 09:00:50 | Сообщение # 6 |
|
Полковник
Группа: Проверенные
Сообщений: 180
Репутация: 236
Статус: Оффлайн
| Цитата tormozit (  ) С первого взгляда проблема не касается структуры данных. Поэтому желательно бы тест без связи с реквизитами данных.В идеале нужна выгрузка базы, которую я разверну, запущу и сразу получу повтор проблемы. От структуры данных отвязал. Выгрузка во вложения на форуме не влезла, удалять из нее расширение ИР не стал, поэтому залил на Яндекс.Диск вместе с актуальной компоновкой: https://disk.yandex.ru/d/5GngpzpndgCquw
|
| |
| |
| tormozit | Дата: Вт, 25.03.2025, 19:16:05 | Сообщение # 7 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| Ошибку воспроизвел https://www.hostedredmine.com/issues/1003533
|
| |
| |
| tormozit | Дата: Пн, 31.03.2025, 00:24:40 | Сообщение # 8 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7259
Репутация: 193
Статус: Оффлайн
| Исправлено в 7.72
|
| |
| |