Имя: Пароль:
1C
1С v8
аналог таблицызначений
,
0 prishliemail
 
24.06.13
14:28
Добрый день!

Дайте пожалуйста совет.
У человека открывается форма со списком заявок. Он галочками выбирает те, которые ему нужно. И нажимает кнопку Сформировать. И по этим заявкам формируются документы.
У меня есть обработка, где как раз есть эти заявки и возможность выбора галочками.
При нажатии на кнопку Сформировать у нас следующая процедура:

 &НаКлиенте
Процедура СформироватьДокумент(Форма, ЗначениеОтметки)
   

   ТЗ = Новый ТаблицаЗначений;
                                     
   СчитатьЗаявкиДляДокумента(ТЗ);
   
   Для Каждого Элемент Из ТЗ Цикл        
        //тут модально открываем форму документа
   КонецЦикла;

КонецПроцедуры


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

&НаСервере
Процедура СчитатьЗаявкиДляПоручения(ТЗ)    

   ТаблицаЗаявок = Объект.ДанныеЗаявки.Выгрузить();
   Для Каждого СтрокаТаблицы Из ТаблицаЗаявок Цикл
       
       Если  СтрокаТаблицы.Выбор Тогда
                       
           ТЗ.Вставить("Организация", СтрокаТаблицы.Организация);
                       ТЗ.Вставить("Сумма", СтрокаТаблицы.СуммаДокумента);
       КонецЕсли;        
   КонецЦикла;

   Возврат;    
КонецПроцедуры


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

Может Вы подскажите какой-то удобный жля хранений аналог таблицы значений? Ну или может какое-то более логичное решение проблемы?

Спасибо!
1 prishliemail
 
24.06.13
14:29
Ошиблась с названием второй процедуры. Там конечно
СчитатьЗаявкиДляДокумента(ТЗ)
2 sanja26
 
24.06.13
14:34
Создать в реквизитах табличную часть обработки, заполнять на сервере, читать на клиенте
3 andreymongol82
 
24.06.13
14:35
(1) Как вариант сделать ТЗ реквизитом формы. Заполнить и читать на сервере, а на клиенте только открывать формы
4 drongo-god
 
24.06.13
14:35
(0) Кто сказал что ТЗ нет на клиенте?
Сделай ТЗ реквизитом формы.
Заполняй ее как тебе нравится.
После нужных отметок и нажатии "Сформировать" с клиента идешь на сервер, там же ее и обрабатываешь.
5 drongo-god
 
24.06.13
14:37
(4) После обработки на серверее в нее же можно и положить все что получилось в результате обработки (напирмер обработалось или нет). Потом все это благополучно возвращается на клиент.
6 mozzga
 
24.06.13
14:43
(0) http://www.vitalinvent.com/1s/peredacha-tablitsi-znacheniy-s-servera-na-klient.html
ТЗ передавать как массив структур
7 drongo-god
 
24.06.13
14:45
(6) Интерестно а зачем?
8 mozzga
 
24.06.13
14:50
как вариант
9 drongo-god
 
24.06.13
14:54
(8) Как вариант можно. Но если автор с ТЗ на форме не может разобраться, то через массив структур будет точно посложнее.

И использовать структуру вместо ТЗ лучшше когда нужно быстро находить строки по ключу, для автора я не думаю автора скорость в маленькой ТЗ важно будет.
10 НЕА123
 
24.06.13
14:58
(0)
1. зачем сервер? на клиенте
   Для Каждого СтрокаТаблицы Из Объект.ДанныеЗаявки Цикл
........        
   КонецЦикла;

2.
>    ТЗ.Вставить("Организация", СтрокаТаблицы.Организация);
что это должно делает?
11 prishliemail
 
24.06.13
16:42
(2) Я наверно не совсем Вас понимаю...
У меня и так в реквизитах есть табличная часть (она называется ДанныеЗаявки). Как раз в ней и отображаются заявки.
Я вот из процедуры на сервере и считываю с нее в ТЗ:

Объект.ДанныеЗаявки.Выгрузить();

Вообщем-то так и получается, что я на клиенте только открываю форму новую для каждой строки ТЗ
12 prishliemail
 
24.06.13
16:43
(4) Может быть и есть, но если я пишу на клиенте:

 ТЗ = Новый ТаблицаЗначений;

То в итоге мне выдается ошибка:
"Тип не определен (ТаблицаЗначений)
       ТЗ = Новый <<?>>ТаблицаЗначений; (Проверка: Тонкий клиент)"
13 prishliemail
 
24.06.13
16:44
(10) У меня управляемый интерфейс, так не получается
14 mozzga
 
24.06.13
16:51
(13) Т.к. на клиенте нет ТЗ, пердавайте туда массив структур, описано в (6)
15 samozvanec
 
24.06.13
16:54
(13) а что именно не получается?
16 prishliemail
 
25.06.13
12:32
Всем спасибо за помощь!
(14) И отдельно Вам за ссылку
17 НЕА123
 
25.06.13
13:15
на (15) не видно ответа.
18 prishliemail
 
25.06.13
16:27
(17) Прошу прощение, изначально неправильно Вас поняла.
Сейчас внимательней начала разбираться и поняла, что как Вы сказали проще.
Жаль, что осознание этого пришло ко мне достаточно поздно))
19 EvgeniuXP
 
25.06.13
23:31
в хранилище сохрани тз и из хранилища вытащи ТЗ :) если в лоб хочешь работать именно с ТЗ.
20 Кокос
 
26.06.13
00:35
(19) тз помоему в хранилище не затолкнуть. только список структур
21 GROOVY
 
26.06.13
00:40
(20) Все правильно EvgeniuXP говорит. Так и работают.
22 НЕА123
 
26.06.13
09:52
(19)(21)
ТЗ на клиенте? это как?
23 GROOVY
 
26.06.13
12:00
(22) Это элементарно просто. ТЗ будет сконвертирована в ДанныеФормыКоллекция. Если создать реквизит формы, то это произойдет автоматом, если не создавать, то конвертировать надо руками.
24 НЕА123
 
26.06.13
14:54
(23)
то да.
но по сабжу и так имеется ДанныеФормыКоллекция, где все данные уже есть и уходить на сервер не имеет смысла.