Добрый день.
Конфигурация КА2 2.5.11.96 Режим совместимости 8.3.17
Дорабатывал документ по инфо с помощью расширения из Работа с контрагентами В общим модуле есть код, который вызывает процедуру модуля формы
// Запуск проверки контрагентов в документе после возникновения определенного события.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - Форма документа, в котором выполняется проверка контрагентов.
// ДополнительныеПараметры - Дата - Дата документа, в случае если произошло изменение даты.
// - ТаблицаФормы - Если изменения произошли в табличной части.
// - ПолеФормы - Если изменился контрагент в определенном поле произошли в табличной части.
Процедура ЗапуститьПроверкуКонтрагентовВДокументе(Форма, ДополнительныеПараметры = Неопределено) Экспорт
Форма.РеквизитыПроверкиКонтрагентов.ЭтоПроверкаПоКнопке =
ТипЗнч(ДополнительныеПараметры) = Тип("Структура")
И ДополнительныеПараметры.Свойство("ЭтоПроверкаПоКнопке")
И ДополнительныеПараметры.ЭтоПроверкаПоКнопке;
Форма.РеквизитыПроверкиКонтрагентов.ЭтоПроверкаКонтрагентовПриОткрытии =
(Форма.РеквизитыПроверкиКонтрагентов.ЭтоПроверкаКонтрагентовПриОткрытии
И НЕ Форма.РеквизитыПроверкиКонтрагентов.ЭтоПроверкаПоКнопке);
// Для предотвращения проверки при отключенной автоматической проверке,
// когда меняется контрагент в документе.
Если Форма.РеквизитыПроверкиКонтрагентов.ЭтоПроверкаПоКнопке
ИЛИ Форма.РеквизитыПроверкиКонтрагентов.ПроверкаИспользуется Тогда
ПараметрыФоновогоЗадания = ПроверкаКонтрагентовКлиентСервер.ПараметрыФоновогоЗадания(ДополнительныеПараметры);
Форма.ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания);
Если Форма.РеквизитыПроверкиКонтрагентов.ИнициализацияВыполненаПолностью Тогда
Форма.РеквизитыПроверкиКонтрагентов.СохранятьРезультатСразуПослеПроверки =
ПараметрыФоновогоЗадания.Свойство("СохранятьРезультатСразуПослеПроверки")
И ПараметрыФоновогоЗадания.СохранятьРезультатСразуПослеПроверки;
//@skip-warning
ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(Форма.ПроверкаКонтрагентовПараметрыОбработчикаОжидания);
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбработатьРезультатПроверкиКонтрагентов", ИнтервалОбработкиРезультата(), Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Показать
На этой версии конфы нет ошибки обращения.
Обновил конфу до 2.5.12.232 Режим совместимости 8.3.21
При обращении к процедуре модуля формы выдает ошибку
Метод объекта не обнаружен (ПроверитьКонтрагентовФоновоеЗадание)
{ОбщийМодуль.ПроверкаКонтрагентовКлиент.Модуль(197)}:Форма.ПроверитьКонтрагентовФоновоеЗадание(ПараметрыФоновогоЗадания);
{ОбщийМодуль.ПроверкаКонтрагентовКлиент.Модуль(233)}:ЗапуститьПроверкуКонтрагентовВДокументе(Форма, ДополнительныеПараметры);
{Доработки Документ.ЗаказКлиента.Форма.ФормаДокумента.Форма(1505)}:ПроверкаКонтрагентовКлиент.ОбработатьРезультатПроверкиКонтрагентовВДокументе(ЭтотОбъект);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Аналогичный механизм в типовых документах работает. Не могу понять в чем проблема. Есть догадки?
(9) теперь добавьте в модуль формы клиентский экспортный метод, который будет вызывать нужный серверный внутри формы документа. А извне вызывайте клиентский.
(9)То есть у вас явно в модуле формы есть процедура, но платформа вам пишет, что ее нет. И вас ничего не смущает?
Ну там очевидно, что кэш надо почистить, нет?
Серверные методы расширяются не всегда
Факт того, что ваше расширение успешно подключено к типовой конфигурации, ещё не означает, что все перехватчики, которые есть в вашем расширении, будут применены и начнут выполняться. Тут есть некоторые особенности, связанные с безопасностью.
Если прикладное решение работает в файловом варианте или в клиент-серверном варианте без профилей безопасности, то при подключении вашего расширения:
В обычном режиме исполнения встроенного языка - будут расширяться все методы типового решения, и клиентские, и серверные;
В безопасном режиме исполнения встроенного языка - будут расширяться только клиентские методы и серверные обработчики форм. К остальным серверным процедурам / функциями расширение применяться не будет.