Курчавова Галина

453
Рейтинг

gvk2009
Галина Курчавова



  •   Регистрация: 07.05.2010 (13 лет назад)

  •   Был(а) на сайте: 25.11.2022

Подписчики 8

Группы

Профессиональный разработчик

Рейтинг 453

РеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free) Нет файла Механизмы платформы 1С

В Синтаксис-Помощнике очень скупо написано о процедуре ДанныеФормыВЗначение(), чуть побольше - о РеквизитФормыВЗначение(). И совсем нет примеров использования. Попробуем с этим разобраться.

26.09.2012    354490    gvk2009    47       

453

Комментарии

DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#35 04.04.19 13:01
(34) Ваша ошибка, скорее всего, в том, что вы передаёте на сервер САМ ОБЪЕКТ. А надо объект сохранять в переменную и передавать на сервер эту переменную:
ОснРеквизит = Объект;
ВыполнитьНаСервереБезКонтекста(ОснРеквизит);
DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#23 23.09.14 13:21
(22) sss999, если получать объект на сервере по ссылке (реквизит формы Объект.Ссылка), то для этого потребуется контекст формы - это как раз случай использования "РеквизитФормыВЗначение()". А в том коде, на который ссылаетесь вы, контекст формы не используется. С Клиента на Сервер передается форма документа и документ со всеми своими реквизитами, помещенный в переменную. Но его тип - не ДокументОбъект! Именно поэтому его можно использовать на Клиенте. Если обратиться с справке 1С, то читаем:"Важно заметить, что для типов прикладных объектов (таких, как СправочникОбъект, например) форма будет реально использовать не прикладные, а специализированные типы данных, состав которых будет автоматически наполняться из указанных типов".
Предпочтительнее использовать компиляцию НаСервереБезКонтекста, потому что в этом случае объем передаваемых данных между Клиентом и Сервером значительно меньше.
DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#20 26.10.13 18:46
(16) AVK_Alex, вот код для примера. Я создала внешнюю обработку с реквизитом ДокСсылка (тип - ДокументСсылка).

Код
&НаКлиенте
Процедура ОткрытьДокумент(Команда)
   
   Фрм = ПолучитьФорму("Документ.РеализацияТоваровИУслуг.Форма.ФормаДокумента");
   ФрмОбъект = Фрм.Объект;
   
   ЗаполнитьНаСервереБезКонтекста(ФрмОбъект, ДокСсылка);
   
   КопироватьДанныеФормы(ФрмОбъект,Фрм.Объект);
   Фрм.Открыть();
   
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаполнитьНаСервереБезКонтекста(ФрмОбъект, ДокСсылка)
   
   ВосстановленныйОбъект = ДокСсылка.ПолучитьОбъект();
   ЗначениеВДанныеФормы(ВосстановленныйОбъект, ФрмОбъект);
   
КонецПроцедуры // НаСервереБезКонтекста()

DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#14 25.10.13 13:01
(13) AVK_Alex, а какой тип данных у ВосстановленныйОбъект?
Делаете ли в процедуре ВосстановитьОбъектНаСервере() перед передачей на Клиента преобразование объекта с помощью
ЗначениеВДанныеФормы?
DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#12 25.10.13 10:18
(11) AVK_Alex, в качестве "заполнятора" используйте процедуру глобального контекста КопироватьДанныеФормы. В вашем коде будет примерно так (при условии, что структуры "ВосстановленныйОбъект" и "Фрм.Объект" совпадают):

...
КопироватьДанныеФормы(ВосстановленныйОбъект, Фрм.Объект);
Фрм.Открыть();
DevРеквизитФормыВЗначение () и ДанныеФормыВзначение (). Описание и примеры использования.#0 26.09.12 13:06
В Синтаксис-Помощнике очень скупо написано о процедуре ДанныеФормыВЗначение(), чуть побольше - о РеквизитФормыВЗначение(). И совсем нет примеров использования. Попробуем с этим разобраться.