&НаСервере
Процедура СформироватьНаСервере()
//...
ТЗДанныеПроформы = Объект.ДанныеПроформы.Выгрузить();
ТЗДанныеПроформы.Свернуть("Ваучер,ДокументПроформы","СуммаПлатежа");
//Создаем программно страницы и табличные части на форме
Счетчик = 0;
Для каждого Строчка Из ТЗДокументыПроформы Цикл
Счетчик = Счетчик + 1; //Для добавления к названию страницы постфикса
ИмяСтраницы = СокрЛП (СтрЗаменить(Строчка.ДокументПроформы.Номер,"-",""));
//Создаем страницу
Попытка
НоваяСтраница = ЭтаФорма.Элементы.Добавить(ИмяСтраницы, Тип("ГруппаФормы"), Элементы.ГруппаСтраницы);
НоваяСтраница.Вид = ВидГруппыФормы.Страница;
НоваяСтраница.Заголовок = ИмяСтраницы;
Исключение
ИмяСтраницы = ИмяСтраницы + "_" + Счетчик;
НоваяСтраница = Элементы.Добавить(ИмяСтраницы, Тип("ГруппаФормы"), Элементы.ГруппаСтраницы);
НоваяСтраница.Вид = ВидГруппыФормы.Страница;
НоваяСтраница.Заголовок = ИмяСтраницы;
КонецПопытки;
//Программное создание реквизитов формы под ТабличнуюЧасть
//Добавляем реквизиты
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("НовТаб" + ИмяТаблицы, Новый ОписаниеТипов("ТаблицаЗначений")));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Ваучер" + ИмяТаблицы, Новый ОписаниеТипов("Строка"), "НовТаб" + ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("СуммаПлатежа" + ИмяТаблицы, Новый ОписаниеТипов("Число"), "НовТаб_" + ИмяТаблицы));
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("ДокументПроформы" + ИмяТаблицы, Новый ОписаниеТипов("ДокументСсылка.СписаниеСРасчетногоСчета"), "НовТаб" + ИмяТаблицы));
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
//Создаем ТабличнуюЧасть на выше созданной странице
НоваяТаблица = Элементы.Добавить("Стр"+ИмяСтраницы,Тип("ТаблицаФормы"),НоваяСтраница);
НоваяТаблица.ПутьКДанным = "НовТаб";
НоваяТаблица.Отображение = ОтображениеТаблицы.Список;
НоваяТаблица.ТолькоПросмотр = Ложь;
НоваяТаблица.Подвал = Истина;
НоваяТаблица.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет;
//Прописываем пути к Колонкам Новой Таблицы
//1.Ваучер
НоваяКолонка = Элементы.Добавить("Ваучер"+ИмяСтраницы, Тип("ПолеФормы"), НоваяТаблица);
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = "НовТаб.Ваучер";
НоваяКолонка.Заголовок = "Ваучер";
//2.СуммаПлатежа
НоваяКолонка = Элементы.Добавить("СуммаПлатежа"+ИмяСтраницы, Тип("ПолеФормы"), НоваяТаблица);
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = "НовТаб.СуммаПлатежа";
НоваяКолонка.Заголовок = "Сумма платежа";
//ИмяДляДействия = НоваяКолонка.Имя;
//3.ДокументПроформы
НоваяКолонка = Элементы.Добавить("ДокументПроформы"+ИмяСтраницы, Тип("ПолеФормы"), НоваяТаблица);
НоваяКолонка.Вид = ВидПоляФормы.ПолеВвода;
НоваяКолонка.ПутьКДанным = "НовТаб.ДокументПроформы";
НоваяКолонка.Заголовок = "Документ проформы";
НоваяКолонка.ГоризонтальноеПоложениеВШапке = ГоризонтальноеПоложениеЭлемента.Центр;
НоваяКолонка.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
НоваяКолонка.АвтоМаксимальнаяШирина = Ложь;
НоваяКолонка.МаксимальнаяШирина = 1;
НоваяКолонка.ГоризонтальноеПоложениеВПодвале = ГоризонтальноеПоложениеЭлемента.Центр;
//Добавляем подвал ТабличнойЧасти
ДобавляемыеРеквизиты = Новый Массив;
РеквизитПодвала = Новый РеквизитФормы("Итого"+ИмяСтраницы, Новый ОписаниеТипов("Число"));
ДобавляемыеРеквизиты.Добавить(РеквизитПодвала);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
НоваяКолонка.ПутьКДаннымПодвала = "Итого"+ИмяСтраницы+"";
Если ТЗДанныеПроформы.Количество()>0 Тогда
ОтборПоПроформе = Новый Структура;
ОтборПоПроформе.Вставить("ДокументПроформы", Строчка.ДокументПроформы);
НоваяТаблицаСОтбором = ТЗДанныеПроформы.НайтиСтроки(ОтборПоПроформе);
ВсегоСуммаПлатежей = 0;
Для каждого СтрокаМассива из НоваяТаблицаСОтбором Цикл
НовСтрока = НовТаб.Добавить();
НовСтрока.Ваучер = СтрокаМассива.Ваучер;
НовСтрока.СуммаПлатежа = СтрокаМассива.СуммаПлатежа;
НовСтрока.ВалютаПлатежа = СтрокаМассива.ВалютаПлатежа;
НовСтрока.ДокументПроформы = СтрокаМассива.ДокументПроформы;
ВсегоСуммаПлатежей = ВсегоСуммаПлатежей + СтрокаМассива.СуммаПлатежа; //Цифра для ИТОГа по Колонке СуммаПлатежа
КонецЦикла;
КонецЕсли;
Элементы["СуммаПлатежа"+ИмяСтраницы+""].ТекстПодвала = ВсегоСуммаПлатежей; //Выводим в ПОДВАЛ Сумму по колонке СуммаПлатежа
НоваяКолонка.УстановитьДействие("ПриИзменении", "СуммаПлатежаПриИзменении"); //вот тут загвоздка Как обновить сумму в подвале если в строках колонки СуммаПлатежа изменили цифру??
КонецЦикла;
//Делаем реквизит объекта табличнуюЧасть ДанныеПроформы невидимой
Попытка
ЭтаФорма.Элементы.ГруппаДанныеПроформы.Видимость = Ложь;
Исключение
КонецПопытки;
КонецПроцедуры
{"contextData":{"NaN":{}},"contextMarkers":[]}