Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Метод объекта не обнаружен МодульФормы.

Метод объекта не обнаружен МодульФормы.
Я
   Tornadius
 
23.06.20 - 10:54
Здравствуйте!

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

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

Кэш чистил.

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.