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