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