Имя: Пароль:
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) Тут ничего не сказано, про вызов неэкспортных методов формы.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший