Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача значений между сервером и клиентом
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Mikst
Добрый день! Подскажите пожалуйста как правильно передать таблицу между сервером и клиентом. Я понимаю что Управляемое приложение воспринимает только простые типы данных, но все же должен же быть какой то выход.


&НаСервере
Функция НачислениеОсновнойСуммыКредита(ДатаНачала,ДатаОкончания,Сумма,ВидПогашения)
    
     ТЗ = новый таблицаЗначений;
     Тз.Колонки.Добавить("Дата", , "Дата");
     Тз.Колонки.Добавить("Дни",,"Число",);
     Тз.Колонки.Добавить("ПогашениеКредита",,"Строка");
     Тз.Колонки.Добавить("ОстатокКредита",,"Строка");
     Тз.Колонки.Добавить("ПогашениеПроцентов",,"Строка");
     Тз.Колонки.Добавить("СуммаВсего",,"Число");

          Если ВидПогашения = "Равными частями" Тогда
          МесячныйПлатеж = Сумма / 10;
          сообщить("РавнымиЧастями");
    
    КонецЕсли;
    очерДата = ДатаНачала;
    КонДата = ДатаОкончания;
    Пока дата(ОчерДата) <= Дата(КонДата) Цикл
        НоваяСтрока = ТЗ.Добавить();
        НоваяСтрока.Дата = ОчерДата;
        НоваяСтрока.дни = 15;
        НоваяСтрока.ПогашениеКредита = МесячныйПлатеж;
        ПредДата = очерДата;
        очерДата = ДобавитьМесяц(очерДата,1);
    КонецЦикла;



Возврат ТЗ;
КонецФункции

&НаКлиенте
Процедура ГрафикПогашения(Команда)
    Объект.ГрафикПлан.Загрузить(НачислениеОсновнойСуммыКредита(Объект.Дата,Объект.ОкончаниеДоговора,Объект.СуммаКредита,Объект.ВидПогашения
Кредита));
КонецПроцедуры
Vofka
Заполните на сервере. В чем проблема?
Mikst
Цитата(Vofka @ 11.09.12, 10:04) необходимо зарегистрироваться для просмотра ссылки
Заполните на сервере. В чем проблема?

На сервер не могу передать таблицу с документа.
Vofka
Цитата(Mikst @ 11.09.12, 10:08) необходимо зарегистрироваться для просмотра ссылки
На сервер не могу передать таблицу с документа.

Табличную часть?
Mikst
Цитата(Vofka @ 11.09.12, 10:11) необходимо зарегистрироваться для просмотра ссылки
Табличную часть?

Да.
logist
Цитата(Mikst @ 11.09.12, 10:08) необходимо зарегистрироваться для просмотра ссылки
На сервер не могу передать таблицу с документа.

А зачем ее передавать, если это происходит в форме то на сервере доступно тоже самое. Если нужно работать как с ТЗ используйте РеквизитФормыВЗначение и обратно.
pablo
На сервер можно передать массив структур. Но не совсем понятно, какую
Цитата
таблицу с документа
Вы собираетесь передавать. Если это реквизит документа, то ее можно заполнить на сервере. Если же Вы ее создаете в некой переменной, то эту переменную опять таки можно заполнить на сервере...
P.S. Пока писал - уже определились blush.gif
Vofka
Цитата(logist @ 11.09.12, 10:12) необходимо зарегистрироваться для просмотра ссылки
Если нужно работать как с ТЗ

По коду видно, что просто заполнить её надо. А ТЗ здесь автор использует, видимо, из-за незнания.
Mikst
Цитата(Vofka @ 11.09.12, 10:18) необходимо зарегистрироваться для просмотра ссылки
По коду видно, что просто заполнить её надо. А ТЗ здесь автор использует, видимо, из-за незнания.

Да с 8.2 я действительно еще мало знаком, но думаю что без ТЗ не получиться, это еще не полный вариант, будет много расчетов (различные виды начисления кредита и процентов на кредит) и планируется использование нескольких ТЗ.

Цитата(logist @ 11.09.12, 10:12) необходимо зарегистрироваться для просмотра ссылки
Если нужно работать как с ТЗ используйте РеквизитФормыВЗначение и обратно.


Не совсем могу понять как его использовать,Так ошибку выдает.:
ТЗ = РеквизитФормыВЗначение("Объект.ГрафикПлан");

А так не могу понять как потом вытащить Табличную часть, в отладке пишет что реквизит "ГрафикПлан"(Табличная часть документа) имеет значение "ДокументТабличнаяЧасть.КредитныйДоговор.ГрафикПлан". Как его теперь разобрать в таблицу значений?
ТЗ = РеквизитФормыВЗначение("Объект");


Vofka
А что на сервере нельзя сделать
Объект.ГрафикПлан.Выгрузить();

?
logist
Цитата(Mikst @ 11.09.12, 11:19) необходимо зарегистрироваться для просмотра ссылки
Не совсем могу понять как его использовать,Так ошибку выдает.:

ТЗ = РеквизитФормыВЗначение("Объект.ГрафикПлан");

Какую ошибку? Не должно выдавать никаких ошибок. В этом варианте вы работаете с ТЗ, только я же написал что значение надо потом вернуть обратно в форму - ЗначениеВРеквизитФормы(ТЗ, "Объект.ГрафикПлан");

Цитата(Mikst @ 11.09.12, 11:19) необходимо зарегистрироваться для просмотра ссылки
А так не могу понять как потом вытащить

И я не могу понять, в теме уже достаточно объяснили, а вы похоже просто не хотите понимать.
Mikst
Спасибо всем, начало что то получаться, с помощью:
ТЗ = Объект.ГрафикПлан.Выгрузить();

Объект.ГрафикПлан.Загрузить(ТЗ);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.