Версия для печати темы (https://pro1c.org.ua/index.php?s=05f0e2c53d4087ca38d105838d38a706&showtopic=8901)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Передача значений между сервером и клиентом
Автор: Mikst 11.09.12, 8:58
Добрый день! Подскажите пожалуйста как правильно передать таблицу между сервером и клиентом. Я понимаю что Управляемое приложение воспринимает только простые типы данных, но все же должен же быть какой то выход.
&НаСервере
Функция НачислениеОсновнойСуммыКредита(ДатаНачала,ДатаОкончания,Сумма,ВидПогашения)
ТЗ = новый таблицаЗначений;
Тз.Колонки.Добавить("Дата", , "Дата");
Тз.Колонки.Добавить("Дни",,"Число",);
Тз.Колонки.Добавить("ПогашениеКредита",,"Строка");
Тз.Колонки.Добавить("ОстатокКредита",,"Строка");
Тз.Колонки.Добавить("ПогашениеПроцентов",,"Строка");
Тз.Колонки.Добавить("СуммаВсего",,"Число");
Если ВидПогашения = "Равными частями" Тогда
МесячныйПлатеж = Сумма / 10;
сообщить("РавнымиЧастями");
КонецЕсли;
очерДата = ДатаНачала;
КонДата = ДатаОкончания;
Пока дата(ОчерДата) <= Дата(КонДата) Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Дата = ОчерДата;
НоваяСтрока.дни = 15;
НоваяСтрока.ПогашениеКредита = МесячныйПлатеж;
ПредДата = очерДата;
очерДата = ДобавитьМесяц(очерДата,1);
КонецЦикла;
Возврат ТЗ;
КонецФункции
&НаКлиенте
Процедура ГрафикПогашения(Команда)
Объект.ГрафикПлан.Загрузить(НачислениеОсновнойСуммыКредита(Объект.Дата,Объект.ОкончаниеДоговора,Объект.СуммаКредита,Объект.ВидПогашения
Кредита));
КонецПроцедуры
Автор: Vofka 11.09.12, 9:04
Заполните на сервере. В чем проблема?
Автор: Mikst 11.09.12, 9:08
Цитата(Vofka @ 11.09.12, 10:04)
Заполните на сервере. В чем проблема?
На сервер не могу передать таблицу с документа.
Автор: Vofka 11.09.12, 9:11
Цитата(Mikst @ 11.09.12, 10:08)
На сервер не могу передать таблицу с документа.
Табличную часть?
Автор: Mikst 11.09.12, 9:12
Цитата(Vofka @ 11.09.12, 10:11)
Табличную часть?
Да.
Автор: logist 11.09.12, 9:12
Цитата(Mikst @ 11.09.12, 10:08)
На сервер не могу передать таблицу с документа.
А зачем ее передавать, если это происходит в форме то на сервере доступно тоже самое. Если нужно работать как с ТЗ используйте РеквизитФормыВЗначение и обратно.
Автор: pablo 11.09.12, 9:14
На сервер можно передать массив структур. Но не совсем понятно, какую
Цитата
таблицу с документа
Вы собираетесь передавать. Если это реквизит документа, то ее можно заполнить на сервере. Если же Вы ее создаете в некой переменной, то эту переменную опять таки можно заполнить на сервере...
P.S. Пока писал - уже определились
Автор: Vofka 11.09.12, 9:18
Цитата(logist @ 11.09.12, 10:12)
Если нужно работать как с ТЗ
По коду видно, что просто заполнить её надо. А ТЗ здесь автор использует, видимо, из-за незнания.
Автор: Mikst 11.09.12, 10:19
Цитата(Vofka @ 11.09.12, 10:18) http://pro1c.org.ua/index.php?act=findpost&pid=56078
Если нужно работать как с ТЗ используйте РеквизитФормыВЗначение и обратно.
Не совсем могу понять как его использовать,Так ошибку выдает.:
ТЗ = РеквизитФормыВЗначение("Объект.ГрафикПлан");
А так не могу понять как потом вытащить Табличную часть, в отладке пишет что реквизит "ГрафикПлан"(Табличная часть документа) имеет значение "ДокументТабличнаяЧасть.КредитныйДоговор.ГрафикПлан". Как его теперь разобрать в таблицу значений?
ТЗ = РеквизитФормыВЗначение("Объект");
Автор: Vofka 11.09.12, 10:22
А что на сервере нельзя сделать
Объект.ГрафикПлан.Выгрузить();
?
Автор: logist 11.09.12, 10:30
Цитата(Mikst @ 11.09.12, 11:19) http://pro1c.org.ua/index.php?act=findpost&pid=56081
А так не могу понять как потом вытащить
И я не могу понять, в теме уже достаточно объяснили, а вы похоже просто не хотите понимать.
Автор: Mikst 11.09.12, 11:12
Спасибо всем, начало что то получаться, с помощью:
ТЗ = Объект.ГрафикПлан.Выгрузить();
Объект.ГрафикПлан.Загрузить(ТЗ);
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua