Имя: Пароль:
1C
 
УТ 11.5.12.165 Проверка контрагентов
0 ВикторП
 
23.11.23
15:54
Сейчас рабочая УТ 11.5.12.147 , в ней в расширении добавлен код для документа Заказ клиента для проверки контрагентов.
Все работает.

Хочу перейти на последнюю УТ 11.5.12.165, в ней это функционал перестал работать.
А именно, не находятся процедуры
ПроверитьКонтрагентовФоновоеЗадание и
ОтобразитьРезультатПроверкиКонтрагента.

Вернее- в коде эти процедуры есть, но при выполнении выходит сообщение об их отсутствии.

Обе процедуры в модуле формы, На Сервере и Экспортные.

Описание внедрения подсистемы прочитал и прошел уже несколько раз (.

Версия подсистем поменялась незначительно 2.6.4.49->2.6.5.46

Поменялся режим совместимости у конфигурации 8.3.17->8.3.21.

Кто может помочь ?
1 Звездец
 
23.11.23
15:56
убери заимствованные модули и заимствуй их снова в ресширение
2 ВикторП
 
23.11.23
16:04
там заимствованных модулей нет, можно сказать- там идет добавление нового кода .
3 Звездец
 
23.11.23
16:14
ну не находит то процедуры из основной конфигурации. Значит заимствуй их
4 unenu
 
23.11.23
16:17
(0) если вы в вашем функционале вызываете экспортные серверные методы модуля на клиенте, то с какого-то момента компилятор стал "умнее"

делаете обертки в расширении модулей формы, т.е.
ранее было так:

//модуль формы
&НаСервере
Продедура Метод_1(Параметры)
...
КонецПроцедуры;

//Где-то вы делаете вызов
&НаКлиенте
Продедура Метод_Мой(Параметры)
...Форма.Метод_1(Параметры); // Не прокатит
КонецПроцедуры;

делаете так

//модуль формы
&НаКлиенте
Продедура Метод_1Клиент(Параметры)
   Метод_1(Параметры);
КонецПроцедуры;


//Где-то вы делаете вызов
&НаКлиенте
Продедура Метод_Мой(Параметры)
...Форма.Метод_1Клиент(Параметры); // Прокатит
КонецПроцедуры
5 unenu
 
23.11.23
16:18
Поменялся режим совместимости у конфигурации 8.3.17->8.3.21.

В этом фишка, компилятор "поумнел"
6 ВикторП
 
23.11.23
16:23
Этих процедур изначально нет- они только в расширении.
Да, в режиме совместимости 8.3.17 они видятся, в 8.3.21- нет
7 unenu
 
23.11.23
16:25
Все методы модуля формы, включая обертки, экспортные ес-но.

Хотя, серверные уже могут быть не экспортными, ведь на клиенте мы вызываем свою экспортную обертку клиентского метода.

В типовой код ничего не добавляем, а в расширении ваш функционал должен работать как раньше.
8 ВикторП
 
23.11.23
16:26
(7) пока не понял ,что предлагаете
9 unenu
 
23.11.23
16:28
(6) не важно где эти методы, в основной или в расширении. Просто сделайте обертки - "клиент-клиент".

Кратко:
Удаленный вызов экспортного серверного метода модуля формы с клиента больше не работает.
10 unenu
 
23.11.23
16:31
(8) код давайте с указанием контекстов без потрохов....

// Модуль обработки, я вызываю
&НаКлиенте
_Имя(Параметры)
... // Тут метод который невидим
....

// Это метод который невидим: Модуль, контекст
11 ВикторП
 
23.11.23
16:39
(9) в документе реализация товаров услуг это все работает.
Можете сами посмотреть , если что.

Принципиальная разница - у меня в Заказе эти процедуры в расширении
12 unenu
 
23.11.23
16:47
(11) видимо там не пересекаются контексты.

Еще короче, в модуле формы(в расширении) где сидит ваш метод:

&НаСервере
Продедура Расш_Метод_1(Параметры) Экспорт
...
КонецПроцедуры;

// Добавим обертку из-за 8.3.21+
&НаКлиенте
Продедура Расш_Метод_1_Клиент(Параметры) Экспорт
   Расш_Метод_1(Параметры);
КонецПроцедуры;

// Теперь где-то там заменим
ЭтаФорма.Расш_Метод_1(Параметры);

// На это и попадем в серверный метод через прослойку
ЭтаФорма.Расш_Метод_1_Клиент(Параметры);
13 ВикторП
 
23.11.23
17:11
unenu - молодец.
Сработало .

теперь остался вопрос- :) почему работает в документе реализация.

и собственно, как узнал про это ?- про удаленный вызов
Независимо от того, куда вы едете — это в гору и против ветра!