HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...
Bug #949335
open8.2-3.22+ Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции
0%
Description
https://partners.v8.1c.ru/forum/t/2074332/m/2074332
Уже не первый раз сталкиваюсь с недостаточно понятным сообщением об ошибке метода ПроцессорКомпоновкиДанных.Инициализировать() при обращении к функциям модулей и глобального контекста. У метода Инициализировать() есть параметр
ВозможностьИспользованияВнешнихФункций - Указывает возможность использования функции общих модулей конфигурации и функций глобального контекста в выражениях компоновки данных. Значение по умолчанию: Ложь.
Таким образом по умолчанию запрещено использование таких функций.
Но какую же ошибку выбрасывает этот метод при наличии такого обращения в макете компоновки?
Ниже пример кода
Настройки = Новый НастройкиКомпоновкиДанных;
ЭлементСтруктуры = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ЭлементСтруктуры.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ВыбПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбПоле.Поле = Новый ПолеКомпоновкиДанных("Поле1");
Схема = Новый СхемаКомпоновкиДанных;
Ист = Схема.ИсточникиДанных.Добавить();
Ист.Имя = "1";
Ист.ТипИсточникаДанных = "local";
Н = Схема.НаборыДанных.Добавить(Тип("НаборДанныхЗапросСхемыКомпоновкиДанных"));
Н.Имя = "Набор1";
Н.Запрос = "ВЫБРАТЬ &Кум КАК Поле1";
Н.ИсточникДанных = "1";
П = Схема.Параметры.Добавить();
П.Имя = "Кум";
П.Выражение = "ПолучитьФункциональнуюОпцию(""фыв"")";
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет);
Он выбрасывает ошибку
Ошибка при вызове метода контекста (Инициализировать): Ошибка компоновки данных
по причине:
Ошибка инициализации
по причине:
Ошибка в выражении
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка "ПолучитьФункциональнуюОпцию"
Думаю фраза "Синтаксическая ошибка" очень мало наталкивает на мысль о том, что включен запрет использования таких функций. Первая мысль обычно скорее "я что то неверно написал в выражении".
Предлагаю заменить текущую формулировку на
Запрещенный вызов "ПолучитьФункциональнуюОпцию"
Мне кажется так людям будет проще понимать причину и что нужно сделать.
Внешнюю обработку с единственной кнопкой для выполнения примера прилагаю.
Files
Updated by Сергей Старых about 1 year ago
- Subject changed from Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции to 8.2-3.22+ Непонятная ошибка в ПроцессорКомпоновкиДанных.Инициализировать() при обращении к внешней функции