|
COM-соединение и расширение конфигурации |
☑ |
0
salvator
12.10.23
✎
14:47
|
Доброго дня!
Есть обработка, которая по сом-соединению подключается к базе и формирует документы.
Столкнулся с проблемой, что в процессе создания документов, происходит обращение в общему модулю (галочка "внешнее соединение" установлена), в нем вызывается экспортная функция, которая, в свою очередь, обращается к другой функции того же общего модуля, но НЕэкспортной. Получаю ошибку, что процедура или функция не определена.
Сделал расширение, в котором конструкцией "вместо" переопределил эти функции, добавив признак "экспорт".
Но по сом-соединению все равно к ним обращения не происходит.
В расширении все галочки, кроме "Активно" и "Использовать основные роли" сняты.
В чем может быть проблема?
|
|
1
Волшебник
12.10.23
✎
14:50
|
но НЕэкспортной
|
|
2
salvator
12.10.23
✎
14:52
|
(1) так я же в расширение добавил эту вторую функцию, которая в основной конфигурации была НЕэкспортой, как экспортную.
Расширение почему-то не отрабатывает при подключении через сом.
|
|
3
Галахад
гуру
12.10.23
✎
15:06
|
Без картинок не очень понятно.
|
|
4
salvator
12.10.23
✎
15:12
|
(3) В общем модуле основной конфигурации две функции:
Функция Первая() Экспорт
Возврат Вторая();
КонецФункции
Функция Вторая()
...определение результата...
Возврат Результат;
КонецФункции
В расширении к этому общему модулю пишу даже просто первую функцию с возвратом результата в лоб:
&Вместо("Первая")
Функция Расш_Первая() Экспорт
Возврат Ложь;
КонецФункции
При соединении по сом получаю ошибку:
Процедура или функция с указанным именем не определена (Вторая)
хотя ее в расширении даже нет, т.е. сом не видит расширение, отрабатывает по функциям основной конфигурации
|
|
5
Галахад
гуру
12.10.23
✎
15:33
|
Там случайно нету директив препроцессора?
|
|
6
salvator
12.10.23
✎
15:48
|
(5) У "Второй" функции стоит &НаСервере
|
|
7
Галахад
гуру
12.10.23
✎
16:01
|
Ну, видимо контекст обращения не тот.
|
|
8
arsik
гуру
12.10.23
✎
16:03
|
(7) Потому что у него &ВнешнееСоединение
|
|
9
lodger
12.10.23
✎
16:28
|
(4) дело не в конкретных вызовах которые делает код.
дело в синтаксическом контроле модуля целиком. платформа для ком-ка не может "скомпилить" этот модуль.
|
|
10
Галахад
гуру
12.10.23
✎
16:44
|
(8) Мне-то зачем это говорить? ))
|
|
11
salvator
12.10.23
✎
16:55
|
Добавил в расширение функцию, которая вызывается перед этим общим модулем, прописав директиву #Если НЕ ВнешнееСоединение Тогда.
Этот вариант подходит, так как обработка по большому счету разовая.
|
|
12
salvator
12.10.23
✎
16:57
|
После обработки расширение отключу. Что в основной конфе поправить, чтобы по сом ошибка не возникала. Кроме, указания признака "Экспорт" для второй функции, конечно.
|
|