Как программно установить реквизит в форму документа для управляемых форм? Процесс нужно разделить на две процедуры. Одна из них должна выполнятся на сервере (поиск реквизита). Вторая должна выполнятся на клиенте (обращение к серверной процедуре). Вот как-то так работает код в новых 1С на управляемых формах. Теперь реальный пример.
Задача: нужно при открытии документа заполнить два реквизита: КассаККМ, Сумма.
ШАБЛОН КОДА
&НаСервере
Процедура ЗаполнитьНаСервере(НовыйОбъект)
НовыйОбъект.КассаККМ = КассаККМ;
НовыйОбъект.Сумма = 100;
КонецПроцедуры
&НаКлиенте
Процедура СоздатьРКОНаОснованииПриходнойНакладной(Команда)
Если ПриходнаяНакладнаяНаВозврат.Пустая() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='В первую очередь нужно создать приходную накладную на возврат.';uk='В першу чергу потрібно створити прибуткову накладну на повернення.'");
Сообщение.Поле = "СоздатьПриходнуюНакладнуюНаВозврат";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Иначе
ТекущиеДанные = Элементы.СписокЧековККМ.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено ИЛИ ЧекНеПредъявлен Тогда
//1С ПРОЕКТ
Форма = ПолучитьФорму("Документ.СписаниеДСПриВозвратеТовара.ФормаОбъекта");
ДанныеФормы = Форма.Объект;
ЗаполнитьНаСервере(ДанныеФормы);
КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
Форма.Открыть();
//1С ПРОЕКТ
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Не выбран чек ККМ!';uk='Не обраний чек ККМ!'");
Сообщение.Поле = "СписокЧековККМ";
Сообщение.Сообщить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
СКРИНШОТ КОДА
