Вызов функции общего модуля в вычисляемом поле

1. ReinRaus 25.09.17 15:12 Сейчас в теме
Как в СКД в вычисляемом поле вызвать функцию из общего модуля?
&НаКлиентеНаСервере
Функция Кратко( текст )    Экспорт
    Возврат текст
КонецФункции

У модуля включены опции: глобальный, клиент, сервер, внешнее соединение, вызов сервера.
В вычисляемое поле пробую писать:
Кратко()
Вычислить( "Кратко()" )
ОбщийМодуль.Кратко()
Вычислить( "ОбщийМодуль.Кратко()" )

Во всех этих случаях при формировании отчета появляется ошибка, что «Функция не найдена»
По теме из базы знаний
Найденные решения
6. ReinRaus 25.09.17 17:23 Сейчас в теме
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.

Смысл в том, что система 1С не обновляет что-то внутри себя.

Даю 99%, что баг воспроизведется:

1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле

И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.

5. Новый отчет
6. Новое вычисляемое поле

Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Irwin 554 25.09.17 15:28 Сейчас в теме
(1) Для "ПроцессорКомпоновкиДанных" при вызове метода "Инициализировать()" необходимо указать 4 параметр в Истина.
<ВозможностьИспользованияВнешнихФункций> (необязательный)

Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.
3. ReinRaus 25.09.17 16:43 Сейчас в теме
Процедура ПриКомпоновкеРезультата( ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка )
    СтандартнаяОбработка = Ложь;
    СхемаКомпоновкиДанных = ПолучитьМакет( "ОсновнаяСхемаКомпоновкиДанных" );
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить( СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки );
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать( МакетКомпоновки, , ДанныеРасшифровки, Истина );
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент( ДокументРезультат );
    ПроцессорВывода.Вывести( ПроцессорКомпоновки );
КонецПроцедуры
Показать


В модуле отчёта написал этот код. Выдает всю ту же ошибку.
В чём моя ошибка?
4. VmvLer 25.09.17 16:53 Сейчас в теме
ошибка в первой строке темы

&НаКлиентеНаСервере
5. VmvLer 25.09.17 16:55 Сейчас в теме
при компиляции для сервера эта функция не существует.
7. ReinRaus 25.09.17 17:29 Сейчас в теме
(5) Вы правы. Эта директива тоже ошибка, но источник был в другом.
6. ReinRaus 25.09.17 17:23 Сейчас в теме
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.

Смысл в том, что система 1С не обновляет что-то внутри себя.

Даю 99%, что баг воспроизведется:

1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле

И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.

5. Новый отчет
6. Новое вычисляемое поле

Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
8. noon 11 11.01.18 13:28 Сейчас в теме
(6) Подтверждаю, встречался не раз. При добавлении новых вычисляемых полей приходилось переименовывать отчеты.
10. pvl_mksv 20 15.07.19 17:16 Сейчас в теме
(6) чистка кэша не особо помогает кстати
11. SvetlanaVr 18.02.20 01:47 Сейчас в теме
(6) В моем случае это было объяснимо:

Регистр Сведений МакетыКомпоновкиДанных
В нем были отчеты, в которых встречался подобный "Баг". Вручную регистр не очищается, можно программно.


Или в моем случае в ЗУП 3.1 в общем модуле ЗарплатаКадрыОтчеты исправить процедуру ВывестиВКоллекциюПечатнуюФорму:
Если ДополнительныеПараметры.Свойство("Отбор") Тогда
МакетКомпоновкиДанных = Неопределено;
Иначе

МакетКомпоновкиДанных = МакетКомпоновкиДанныхОтчета(ОбъектОтчета, КлючВарианта);
КонецЕсли;
- оставлена строка лишь "МакетКомпоновкиДанных = Неопределено;" - остальное закомментировано.
9. b-dm 171 07.11.18 16:05 Сейчас в теме
то есть проблему решить невозможно ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот