Имя: Пароль:
1C
1С v8
Управляемый интерфейс
0 Kirich1983
 
03.10.11
09:21
Есть внешняя обработка, которая должна создавать на основании другого документа документ Установка цен номенклатуры. В типовой УТ некоторые колонки табличной части ДеревоЦен(Тип ДеревоЗначений) добовляются программно. Я во внешней обработке получаю ФормуДокумента (Тип УправляемаяФорма), потом могу получить или ТаблицуФормы (Тип ТаблицаФормы) или ДеревоЦен (Тип ДанныеФормыДерева). Как мне добавить колонки?    

ИмяДокумента   = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта", ИдентификаторКоманды);
ФормаДокумента = ПолучитьФорму(ИмяДокумента, , , Истина);
ТаблицаФормы   = ФормаДокумента.Элементы.ДеревоЦен;
ДерЦен         = ФормаДокумента.ДеревоЦен;
1 Kirich1983
 
03.10.11
09:39
Наверх
2 5 Элемент
 
03.10.11
09:43
УправляемаяФорма (ManagedForm)
ИзменитьРеквизиты (ChangeAttributes)
Синтаксис:

ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
3 Kirich1983
 
03.10.11
10:01
Функция ПолучитьФорму() выполняется на клиенте, а метод ИзменитьРеквизиты на сервере. Если я передам в качестве параметра управляемую форму возникает ошибка.

Процедура ИзменитьРеквизиты(ФормаДокумента)
ФормаДокумента.ИзменитьРеквизиты   (<ДобавляемыеРеквизиты>,  <УдаляемыеРеквизиты>)
КонецПроцедуры

{Форма.Форма.Форма(34)}: Ошибка при вызове метода контекста (ИзменитьРеквизиты)
       ИзменитьРеквизиты(ФормаДокумента);
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
   форма: Элемент
   имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'УправляемаяФорма'
4 Mort
 
03.10.11
10:02
Обработка должна создавать документ...
Нахрена ей форма?
5 Mort
 
03.10.11
10:03
А если она должна открывать форму нового не записывая, с какого она в ней копается?
6 Kirich1983
 
03.10.11
13:22
Всю голову сломал. Как в ДеревоЦен добавить колонки?


НовыйДок = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовыйДок.Дата = ТекущаяДата();    
   
Для Каждого ТекСтрока Из ВыбранныеЦены Цикл
   Если ТекСтрока.Выбрана Тогда
       НоваяСтрока = НовыйДок.ВидыЦен.Добавить();
       НоваяСтрока.ВидЦены = ТекСтрока.Ссылка;
       КонецЕсли;
   КонецЦикла;

ФормаОбъекта = НовыйДок.ПолучитьФорму("Документ.УстановкаЦенНоменклатуры.ФормаОбъекта");

ДеревоЦен = ФормаОбъекта.ДеревоЦен;

???????

НовыйДок.Записать();