Вызов функции общего модуля в вычисляемом поле
Как в СКД в вычисляемом поле вызвать функцию из общего модуля?
У модуля включены опции: глобальный, клиент, сервер, внешнее соединение, вызов сервера.
В вычисляемое поле пробую писать:
Во всех этих случаях при формировании отчета появляется ошибка, что «Функция не найдена»
&НаКлиентеНаСервере
Функция Кратко( текст ) Экспорт
Возврат текст
КонецФункции
У модуля включены опции: глобальный, клиент, сервер, внешнее соединение, вызов сервера.
В вычисляемое поле пробую писать:
Кратко()
Вычислить( "Кратко()" )
ОбщийМодуль.Кратко()
Вычислить( "ОбщийМодуль.Кратко()" )
Во всех этих случаях при формировании отчета появляется ошибка, что «Функция не найдена»
По теме из базы знаний
- 115 полезностей по курсу СКД Евгения Гилёва
- Использование функций внешнего отчета в вычисляемых полях системы компоновки данных. Добавлена поддержка расшифровки.
- Особенность встроенной функции Представление() в СКД [поход на грабли]
- Вывод результата компоновки в таблицу и дерево значений
- Подсистема прав доступа (анализ ролей, отладка RLS, английский код, обычные и управляемые формы)
Найденные решения
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Для "ПроцессорКомпоновкиДанных" при вызове метода "Инициализировать()" необходимо указать 4 параметр в Истина.
<ВозможностьИспользованияВнешнихФункций> (необязательный)
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.
Процедура ПриКомпоновкеРезультата( ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка )
СтандартнаяОбработка = Ложь;
СхемаКомпоновкиДанных = ПолучитьМакет( "ОсновнаяСхемаКомпоновкиДанных" );
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки );
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать( МакетКомпоновки, , ДанныеРасшифровки, Истина );
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент( ДокументРезультат );
ПроцессорВывода.Вывести( ПроцессорКомпоновки );
КонецПроцедуры
ПоказатьВ модуле отчёта написал этот код. Выдает всю ту же ошибку.
В чём моя ошибка?
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
(6) В моем случае это было объяснимо:
Регистр Сведений МакетыКомпоновкиДанных
В нем были отчеты, в которых встречался подобный "Баг". Вручную регистр не очищается, можно программно.
Или в моем случае в ЗУП 3.1 в общем модуле ЗарплатаКадрыОтчеты исправить процедуру ВывестиВКоллекциюПечатнуюФорму:
Если ДополнительныеПараметры.Свойство("Отбор") Тогда
МакетКомпоновкиДанных = Неопределено;
Иначе
МакетКомпоновкиДанных = МакетКомпоновкиДанныхОтчета(ОбъектОтчета, КлючВарианта);
КонецЕсли;
- оставлена строка лишь "МакетКомпоновкиДанных = Неопределено;" - остальное закомментировано.
Регистр Сведений МакетыКомпоновкиДанных
В нем были отчеты, в которых встречался подобный "Баг". Вручную регистр не очищается, можно программно.
Или в моем случае в ЗУП 3.1 в общем модуле ЗарплатаКадрыОтчеты исправить процедуру ВывестиВКоллекциюПечатнуюФорму:
Если ДополнительныеПараметры.Свойство("Отбор") Тогда
МакетКомпоновкиДанных = Неопределено;
Иначе
МакетКомпоновкиДанных = МакетКомпоновкиДанныхОтчета(ОбъектОтчета, КлючВарианта);
КонецЕсли;
- оставлена строка лишь "МакетКомпоновкиДанных = Неопределено;" - остальное закомментировано.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот