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

Как выполнить процедуру формы документа из внешней обработки ?

Как выполнить процедуру формы документа из внешней обработки ?
Я
   makfromkz
 
18.07.20 - 08:53
Вот код который я на УФах выполняю в режиме толстого клиента:
&НаСервере

Процедура кмдВыполнитьНаСервере()
    Дата1 = '20160101';
    Дата2 = '20160131235959';
    выбОпер = Документы.ОперацияБух.Выбрать(Дата1, Дата2);
    Пока выбОпер.Следующий() Цикл
        обОпер = выбОпер.ПолучитьОбъект();
        фрмОпер = обОпер.ПолучитьФорму();
        фрмОпер.БУЗаполнитьНУНаСервере();
    КонецЦикла;
        
КонецПроцедуры

фрмОпер - существует, т.е. ПолучитьФорму() отрабатывает, но процедура БУЗаполнитьНУНаСервере() не хочет выполняться,
даже если добавить  к описанию процедуры волшебное слово  Экспорт.
Запускал на платформе 8.3.7

вопрос: до какого релиза платформы можно было вызывать экспортные процедуры формы документа?
   Волшебник
 
1 - 18.07.20 - 08:55
на сервере нет форм
   makfromkz
 
2 - 18.07.20 - 09:00
Я же в режиме толстого клиента запускаю.
В отладчике вижу форму, реквизиты формы и все такое.
   Волшебник
 
3 - 18.07.20 - 09:01
Тогда убери директиву &НаСервере
   makfromkz
 
4 - 18.07.20 - 09:06
Убрал директиву:
{Форма.Форма.Форма(10)}: Метод объекта не обнаружен (БУЗаполнитьНУНаСервере)
        фрмОпер.БУЗаполнитьНУНаСервере();
   makfromkz
 
5 - 18.07.20 - 09:07
может быть  разработчики с какого-то релиза запретили вызов процедур из формы?
   ДенисЧ
 
6 - 18.07.20 - 09:10
А Экспорт у процедуры есть?
   makfromkz
 
7 - 18.07.20 - 09:10
Хотя пост 2016 года, где это реализовано:   https://helpf.pro/help/view/17389.html
   makfromkz
 
8 - 18.07.20 - 09:10
Да Экспорт я сразу в документ добавил
   Волшебник
 
9 - 18.07.20 - 09:17
процедуру кмдВыполнитьНаСервере нужно перенести в общий модуль с флагом "Толстый клиент"
   Akela has missed
 
10 - 18.07.20 - 10:33
Кстати, а как же работают внешние обработки такие как "заполнение объекта"? Там форма передается в модуль объекта обработки, модуль объекта на сервере - но на сервере форм быть не может))
   Волшебник
 
11 - 18.07.20 - 10:35
(10)
РеквизитФормыВЗначение
ЗначениеВРеквизитФормы
и
ДанныеФормыВЗначение
ЗначениеВДанныеФормы
   Akela has missed
 
12 - 18.07.20 - 10:39
ах да, точно
   Жан Пердежон
 
13 - 18.07.20 - 14:17
(10) может, только их создавать надо на клиенте и явно нельзя на сервер передавать
   makfromkz
 
14 - 18.07.20 - 16:51
Решил я задачку, оказывается все надо делать на стороне клиента:
&НаКлиенте
Процедура ЗаполнитьНалоговыйНаборЗаписей(ссДок)
    П = Новый Структура("Ключ", ссДок);
    фрмДок = ПолучитьФорму("Документ.ОперацияБухНБ.ФормаОбъекта", П);
    фрмДок.НацбанкНаборЗаписей.Очистить();
    фрмДок.ДокТиповойПриИзмененииНаСервере();
    фрмДок.Записать();
КонецПроцедуры

&НаКлиенте
Процедура кмдВыполнить(Команда)
    Перем мсТаб1;
    мсТаб1 = ПолучитьМАССдоков();
    Для Каждого ссДок Из мсТаб1 Цикл
        ЗаполнитьНалоговыйНаборЗаписей(ссДок)
    КонецЦикла;
КонецПроцедуры

==========
(9) (10) Потом попробую проверить ваши советы.
Всем спасибо за советы!!!

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