Применение внешней функции в СКД
Здравствуйте подскажите такой вопрос, пишу внешний отчет на скд, запросом вытаскиваю 3 поля, у которых тип "Строка", значения в этих полях строго заданы шкалой от -2 до 2, т.е буквы и прочее там не выбрать, далее мне надо посчитать средний бал, но для этого мне надо перевести их в числовой тип, для этого в общем модуле написал функцию
и после этого в скд во вкладке вычисляемые поля в поле "Выражение" прописываю "ПреобразованиеВЧисло(Квалификация)+ПреобразованиеВЧисло(Культура)+ПреобразованиеВЧисло(Оперативность)". при выводе мне выдает ошибку
Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Функция не найдена "ПреобразованиеВЧисло"
Подскажите в чем проблема, и что надо еще дописать?
Функция ПреобразованиеВЧисло(Текст) Экспорт
Возврат Число(Текст);
КонецФункции
и после этого в скд во вкладке вычисляемые поля в поле "Выражение" прописываю "ПреобразованиеВЧисло(Квалификация)+ПреобразованиеВЧисло(Культура)+ПреобразованиеВЧисло(Оперативность)". при выводе мне выдает ошибку
Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Функция не найдена "ПреобразованиеВЧисло"
Подскажите в чем проблема, и что надо еще дописать?
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2) Азбука Морзе, а где его поставить, это же во внешней обработке пишется, я чет не нашел такой настройки
(5) echo77, немного не понял, как мне обратится к функции которая написана в модуле внешней обработки, у нее же нет имени, просто "модуль объекта". И где писать, опять же в модуле? А по поводу чисел в строке, другого варианта не видел, т.к если ставить тип число, то пустое значение "0", а у меня в шкале это оценкой считается, а если строка то пустое значение, что мне и надо.
Извиняюсь за глупые вопросы, с СКД не дружу, но хочу разобраться и научиться.
(5) echo77, немного не понял, как мне обратится к функции которая написана в модуле внешней обработки, у нее же нет имени, просто "модуль объекта". И
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКонсоли, Истина);
Извиняюсь за глупые вопросы, с СКД не дружу, но хочу разобраться и научиться.
1. Надо делать так:
- это если модуль НЕ глобальный
2. В СКД надо разрешить использовать функции модулей вот таким образом:
Выдержка из СП:
ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>)
Параметры:
<Макет> (обязательный)
Тип: МакетКомпоновкиДанных.
Макет, для которого будет выполняться компоновка.
<ВнешниеНаборыДанных> (необязательный)
Тип: Структура.
Ключ структуры соответствует имени внешнего набора данных. Значение структуры - внешнему набору данных.
<ДанныеРасшифровки> (необязательный)
Тип: ДанныеРасшифровкиКомпоновкиДанных.
Объект, в котором нужно заполнить данные расшифровки. Если не указан, то расшифровка заполняться не будет.
<ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
Описание:
Инициализировать объект.
Доступность:
Сервер, толстый клиент, внешнее соединение.
ИмяОбщегоМодуля.ПреобразованиеВЧисло()
- это если модуль НЕ глобальный
2. В СКД надо разрешить использовать функции модулей вот таким образом:
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКонсоли, Истина);
Выдержка из СП:
ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>)
Параметры:
<Макет> (обязательный)
Тип: МакетКомпоновкиДанных.
Макет, для которого будет выполняться компоновка.
<ВнешниеНаборыДанных> (необязательный)
Тип: Структура.
Ключ структуры соответствует имени внешнего набора данных. Значение структуры - внешнему набору данных.
<ДанныеРасшифровки> (необязательный)
Тип: ДанныеРасшифровкиКомпоновкиДанных.
Объект, в котором нужно заполнить данные расшифровки. Если не указан, то расшифровка заполняться не будет.
<ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь
Описание:
Инициализировать объект.
Доступность:
Сервер, толстый клиент, внешнее соединение.
(16)Добавь в модуль объекта своего отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
Показать
(16) Akava,
Обычные формы
Для работы внешней функции из общего модуля в выражениях СКД, в форме отчета можно написать вот так:
Обычные формы
Для работы внешней функции из общего модуля в выражениях СКД, в форме отчета можно написать вот так:
Процедура ПриОткрытии()
//> Инициализация возможности использования внешних функций в СКД
НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , , Истина);
//< Инициализация возможности использования внешних функций в СКД
КонецПроцедуры
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)