|
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
|
После обработки расширение отключу. Что в основной конфе поправить, чтобы по сом ошибка не возникала. Кроме, указания признака "Экспорт" для второй функции, конечно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |