Вход | Регистрация
 
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
Сделай расширение вместо внешней обработки


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