Имя: Пароль:
1C
1С v8
"Конвертация" внешней обработки из обычных форм в управляемые
,
0 Wefast
 
23.09.15
16:03
Необходимо переделать обработку на управляемые формы.

Начну с текущей проблемы.

В обычной форме есть ревизит с типом ТаблицаЗначений.

После в модуле форме вне процедур создавались колонки в этой таблице значений. После таблица заполняется и обрабатывается после.

Я не понял как сделать колонки и просто создал табличную часть в обработке.

После в обычных формах шел перебор колонок

Для каждого Колонка из Реквизит.Колонки Цикл
//идет заполнение другой табличной части этими колонками или что то еще
КонецЦикла

Сейчас перебрать так же не получается так как Объект.ТабЧасть имеет тип  ДанныеФормыКоллекция.

Я подумал воспользоваться ДанныеФормыВзначение("Объект.ТабЧасть",Тип(ТаблицаЗначений));

Но появляется ошибка что первый параметр не правильный.
1 vicof
 
23.09.15
16:04
кавычки забыл, как минимум
2 Wefast
 
23.09.15
16:05
(1) ну я сюда не копировал, там ошибка не в кавычках, так как они есть.
3 Cyberhawk
 
23.09.15
16:10
"//идет заполнение другой табличной части этими колонками или что то еще " // делай на сервере, ничего переделывать не надо
4 Wefast
 
23.09.15
16:21
Сделал в общем так

Табличка = Объект.ТабЧасть.Выгрузить()
Для каждого колонка из Табличка.Колонки Цикл
//
КонецЦикла;
5 xxTANATORxx
 
23.09.15
16:22
(0)покури философию управляемых форм
пойми что такое упр форма
что такое объект
когда нужно исполнять код на клиенте на сервере
и т.п
6 Wefast
 
23.09.15
20:44
Перенес процедуру создания нового документа которая вызывается из процедуры на Клиенте.

В конце должная открываться форма создаваемого документа. На сервере она не откроется если я все правильно понял.
Попытался передать обратно этот создаваемый документ. Но пишет что не может передавать такой тип с сервера на клиент.

Вот как было:
Сообщить("Создан документ "+НовыйДок);
ФормаДокумента = НовыйДок.ПолучитьФорму();
ФормаДокумента.Открыть();
7 Maniac
 
23.09.15
20:51
В сказку попал))))
8 Wefast
 
23.09.15
21:04
Сделал так:
&НаКлиенте
Процедура один()
Форма = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта");
        ДанныеФормы = Форма.Объект;
        СоздатьДокумент(ДанныеФормы);
        КопироватьДанныеФормы(ДанныеФОрмы, Форма.Объект);
        Форма.Открыть();
КонецПроцедуры

Функция СоздатьДокумент(ДанныеФОрмы);
    НовыйДок = Документы.МойДок.Создать();
//заполнение всякого

ЗначениеВДанныеФормы(НовыйДок,ДанныеФормы);

КонецФункции
9 Wefast
 
23.09.15
21:05
ну функция на Сервере
10 Wefast
 
24.09.15
11:40
Следующая проблема. В 10.3 после заполнения строк шли две функции из общего модуля

        ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(НоваяСтрока, НовыйДок);
        ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(НоваяСтрока, НовыйДок);

в 11.1 такого модуля уже нет и функции таких нет, а те что есть более менее похожие требуют параметры который я без понятия где взять. Вопрос в общем есть ли аналог подобным функций.

И при обычном создании при выборе/изменении номенклатуры в табличной части в строке что то меняется. Я же получил форму, можно ли как то вызвать процедуру из модуля этой формы, если та не эспортная?
11 VikingKosmo
 
24.09.15
11:46
Если речь идет о том, что бы использовать обработку от 10.3 в 11.1, то куда проще обработку написать заново, чем изобретать кучу велосипедов...
12 Славен
 
24.09.15
11:47
(10) смотри в модуле менеджера документа  либо сам пиши подобное, там не трудно