Имя: Пароль:
1C
 
Записать объект формы или передать форму с клиента на сервер
0 Dimarik_1
 
13.09.17
21:32
УТ 11.3
Работа ведётся в общем модуле. Конфигурация дорабатывается максимально "сбоку" чтобы не влазить в типовые формы.
в общем модуле на клиенте есть функция:
&НаКлиенте
Процедура ОбработкаЗаменыГТД(Результат,Форма) Экспорт
    
    Если ЗначениеЗаполнено(Результат) Тогда
        СтарыйНомерГТД = Форма.Элементы.Товары.ТекущиеДанные.НомерГТД;
        Форма.Элементы.Товары.ТекущиеДанные.НомерГТД = Результат;
        Отказ = Ложь;
            птОбщиеПроцедурыИФункции.ПерепровестиДокументыПоГТД(СтарыйНомерГТД, Форма, Отказ);

    КонецЕсли;
    
    
КонецПроцедуры

Внутри процедуры ПерепровестиДокументыПоГТД (которая выполняется на сервере) необходимо провести документ с учетом изменений.
По-хорошему необходимо вызвать
Док = Форма.РеквизитФормыВЗначение("Объект");
Док.Записать();

Однако это сделать не получается, потому что форму не удаётся передать форму с клиента на сервер.
Есть еще 1 вариант решения проблемы, но это "костыль". Передать на сервер не форму, а ссылку. Сделать Док = Ссылка.ПолучитьОбъект(); и заполнить все реквизиты и табличные части из данных объекта, который можно передать как дополнительный параметр Форма.Объект. Но это очень некрасивое решение и создаст дополнитнльную необоснованную нагрузку на базу. Как бы вы рекомендовали решить проблему?
1 Mort
 
13.09.17
22:05
Форма.Записать() работает на клиенте.