Имя: Пароль:
1C
 
Не работает функция общего модуля в расширении
,
0 Анцеранана
 
27.01.23
14:43
Добрый день!
Добавил в расширение общий модуль и функцию из него. Не вызывается к сожалению. Ни Вместо. ни перед. ни после.
Стоят флаги "Сервер" и "Внешнее соединение".
1 OldCondom
 
27.01.23
14:49
Если вы добавили общий модуль и функцию в расширение, но функция не вызывается, то может быть несколько причин:

Возможно, функция не доступна в конфигурации, в которой запущено расширение. Проверьте настройки конфигурации и убедитесь, что функция доступна в этой конфигурации.
Возможно, расширение не имеет соответствующих разрешений, чтобы вызывать функцию из общего модуля. Проверьте разрешения для расширения.
Возможно, вы неправильно указали имя функции или модуля в коде расширения. Проверьте имя функции и модуля в коде расширения и сравните его с именем функции и модуля в конфигурации.
Возможно, функция имеет недостаточно параметров
2 OldCondom
 
27.01.23
15:01
Ну ты хоть отпишись, если помогло. В таком случае выйдет жуть как забавно...
3 Анцеранана
 
27.01.23
15:03
>> Возможно, функция не доступна в конфигурации, в которой запущено расширение. Проверьте настройки конфигурации и убедитесь, что функция доступна в этой конфигурации.
Функция вызывается из документа "Заказ поставщику" при отмене его проведения. Она экспортная. Думаю что это говорит о том что она доступна.
По всем остальным пунктам - я не прописывал ничего вручную , просто нажимал Добавить в расширение, оно само вставляет.
Аналогичный кусочек кода в справочнике "Склады" при этом отрабатывает. В чем тогда разницас общим модулем ?
4 OldCondom
 
27.01.23
15:06
А вне расширения отладчик в нее хоть попадает?
5 Анцеранана
 
27.01.23
15:07
&После("СообщитьОРезультатахКонтроляИзменений")

Процедура ТоргСообщитьОРезультатахКонтроляИзменений(РезультатыКонтроля, Документ, Отказ)

             // Вставить содержимое метода.

             Сообщить("После");

КонецПроцедуры

И ничего :(

Вне расширения в общем модуле  отладчик в нее заходит и выполняет все что нужно
6 Жан Пердежон
 
27.01.23
15:09
Вангую, что у расширения стоит галка безопасный режим
https://its.1c.ru/db/pubextensions/content/58/hdoc

Сделать проверку возможности применения всех расширений тоже не помешает
7 OldCondom
 
27.01.23
15:11
Сообщить("После");
А точка останова там вообще стоит? Или упорно ждем текст на экране?
8 lodger
 
27.01.23
15:12
(5) так может он и сообщает что-то кому-то на сервере...
9 Анцеранана
 
27.01.23
15:13
(6) ДА! По умолчанию оно так ставится. Спасибо. Дальше посмотрим, попробую выполнить код!
10 OldCondom
 
27.01.23
15:15
(9) а что тебе нейросеть в (1) написала?!
"Возможно, расширение не имеет соответствующих разрешений, чтобы вызывать функцию из общего модуля. Проверьте разрешения для расширения."

Плохие новости, тебя можно заменить на ИИ
11 OldCondom
 
27.01.23
15:16
при установленной галочке “Безопасный режим”:

Можно расширять только клиентские методы и серверные обработчики форм, назначенные через окно свойств
Нельзя расширять остальные серверные методы и серверные общие модули

Так что у расширения НЕ было разрешений.
12 Анцеранана
 
27.01.23
15:23
(12) Так это еще надо было перевести с нейросетевого на человеческий)). И 1С вот ничего не написала хотя бы для приличия при сохранении этого расширения. А  Жан Пердежон сразу подсказал куда флажок поставить!)
13 Жан Пердежон
 
27.01.23
16:54
(11) ответ не совсем верный: при установленной галке разрешения регулируются указанным профилем безопасности;
при снятой галке разрешений в профиле безопасности у расширения по-прежнему нет, но они и не используются