Имя: Пароль:
1C
1С v8
Метод объекта не обнаружен МодульФормы.
0 Tornadius
 
23.06.20
10:54
Здравствуйте!

Как можно выполнить процедуру из модуля формы документа, вызвав ее из внешней обработки?
Внешняя обработка создает новый экземпляр документа через ФормаДок = ПолучитьФорму("Документы.Отпуск.ФормаОбъекта", ....); далее ФормаДок.Открыть();
и далее ФормаДок.ВыполнитьПерезаполнениеИРасчетНачисленийНаСервере(); и вот тут выдается ошибка "Метод объекта не обнаружен".
(типовая процедура "ВыполнитьПерезаполнениеИРасчетНачисленийНаСервере" модуль формы "ФормаДокумента" док. "Отпуск" 1с ЗУП 3.1.14.55,
до этого на 3.1.10.444 все работало, слетело сразу после обновления, платформа 15.1830)

нужно, что бы программно сторнировать старый док. "отпуск" и создать новый док. с другими данными - для отзывов из отпусков.

Кэш чистил.

Что может быть не так?
1 ДенисЧ
 
23.06.20
10:56
Экспорт у процедуры-то есть?
2 Ненавижу 1С
 
гуру
23.06.20
10:56
вызвать этот код на сервере
3 Tornadius
 
23.06.20
11:08
(1) Экспорт в модуле формы? Нет нету. это типовая процедура расчета формы.
4 Tornadius
 
23.06.20
11:15
(2) самое интересное. что док создается (нет нужды создавать его на сервере), форма открывается, но процедура из модуля формы не выполняется.
5 D_E_S_131
 
23.06.20
11:34
"Что может быть не так?" - подход к решению задачи у Вас "не так", нельзя так делать.
6 Tornadius
 
23.06.20
12:30
(5) да понятно, что нельзя, но так сделал франч, когда внедрял, и это работало до обновления с 10 релиза на 14.

Там все заполнение нового дока параметрами через форму прописано и на клиентской стороне
7 fisher
 
23.06.20
12:38
Может, раньше работали с УФ в режиме толстого клиента? В этом режиме многое "протекает".
8 D_E_S_131
 
23.06.20
12:39
"но так сделал франч" - звучит как "высечено в граните". :) Возьми алгоритм от туда и вынеси в удобное для тебя место.
9 fisher
 
23.06.20
12:39
Да и просто на файловой тоже "протекало". Может, очередную "протечку" в новом релизе и прикрыли.
10 fisher
 
23.06.20
12:43
(6) Можно выкатить претензию франчу, который пишет с использованием недокументированных особенностей в результате чего вы в итоге попадаете на деньги. Пускай сами допиливают.
11 dmpl
 
23.06.20
12:46
(10) Франч им покажет, что они сами так просили :)
12 fisher
 
23.06.20
12:48
(11) Это детали реализации не относящиеся к постановке задачи.
13 Tornadius
 
23.06.20
12:54
(10) Это как раз документированная особенность : https://its.1c.ru/db/metod8dev#content:3550:hdoc - первый вариант.
14 D_E_S_131
 
23.06.20
13:00
(13) Так что там в той чудесной процедуре, что нельзя этот алгоритм вынести вне формы?
15 Tornadius
 
23.06.20
13:03
(14) там пересчет реквизитов формы на клиенте функцией из модуля формы.
16 D_E_S_131
 
23.06.20
13:06
(15) Ну вот и возьми эту функцию. Что там за проблемы?
17 Tornadius
 
23.06.20
13:06
Но кажется дело в режиме совместимости: до обновления он был 8_3_12 - после 8_3_14. сейчас поищу различия.
18 Cthulhu
 
23.06.20
13:07
никак.
перенеси в модуль объекта, опиши как Экспорт - и используй откуда хошь.
19 Tornadius
 
23.06.20
13:09
(16) Она за собой тянет кучу других процедур и функций которые тоже в модуле формы.

отсюда и вопрос как такие процедуры использовать.
20 fisher
 
23.06.20
13:17
(13) Вызов "снаружи" пользовательских методов формы, объявленных без ключевого слова "Экспорт" - не документирован.
21 D_E_S_131
 
23.06.20
13:29
(19) Ну тогда переписывать все самое верное решение. :)
22 Tornadius
 
23.06.20
13:35
(21) Чем буду заниматься в ближайшие пару дней.
Интересно только как быть с типовыми формами которые на поддержке и которые производят перерасчет своих реквизитов внутренними функциями из модуля формы, после ее создания на сервере?
23 hhhh
 
23.06.20
15:10
(22) какие пару дней? скопипастить 20 процедур у тебя займет пару минут.
24 Tornadius
 
25.06.20
06:53
(23) Потому, что копипастить 20 процедур это не правильно, буду пытаться передавать параметры при открытии формы, которые вызовут запуск всего механизма штатными средствами, например, как это сделано в док. Больничный лист. Хочется надеяться. что механизм пересчета реквизитов формы можно запустить без прямого обращения к функциям модуля формы, а например, через параметры открытия и процедуру ПриСозданииНаСервере().
25 Мимохожий Однако
 
25.06.20
07:01
Сделай расширение вместо внешней обработки
26 kobzon2
 
20.07.20
21:51
Не получилось найти решение? Тоже столкнулся. Обновил комплексную до последнего релиза. В старой режим совместимости был 8.3.12, в новой 8.3.14. В итоге в новой конфигурации не отрабатывает модуль формы документа вызванный из внешней обработки. Пишет Метод объекта не обнаружен.
Понятно что можно переписать на расширения, но просто хочется понять почему так и что поменялось в работе форм?
27 1CnikPetya
 
20.07.20
22:26
(0) В одной из версий 1С (возможно, как раз 8.3.14) прикрыли вызов неэкспортных методов формы. ИМХО, давно пора было.

(13) Тут ничего не сказано, про вызов неэкспортных методов формы.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.