Имя: Пароль:
1C
1С v8
Упр.формы: как передать в диалог таблицу значений?
,
0 BlackJack
 
28.05.12
20:10
Ещё не до конца разобрался УФ. Во внешней обработке в процедуре (&НаСервере - может тут неправильно?) создаю и заполняю таблицу значений Т. Теперь её надо вывести в диалог. Создал в реквизитах таблицу Товары и разместил на форме. Делаю
ЗначениеВРеквизитФормы(Т,"Товары")
Выдаёт "Недопустимое значение параметра (параметр номер '2')".
Подскажите, plz, как правильно сделать?
1 ll13
 
28.05.12
20:17
2 Азазелло
 
28.05.12
20:18
Таблицу Товар создал в реквизитах формы, или объекта?
3 Азазелло
 
28.05.12
20:19
В зависимости от (2) будет
Объект.Товары.Загрузить();
или
Товары.Загрузить();
4 Deniskind
 
28.05.12
20:37
(0) Имена колонок в реквизите и в ТЗ с сервера должны совпадать.
5 Deniskind
 
28.05.12
20:38
+(4) Лишние колонки в ТЗ могут помешать
6 Азазелло
 
28.05.12
20:39
(4) не, вряд ли. Чтобы метод сработал, надо, чтобы реквизит был основным реквизитом формы
7 Азазелло
 
28.05.12
20:40
(6)+ могу, конечно ошибаться
8 BlackJack
 
28.05.12
20:40
Блин, просто Загрузить. А я-то пытался намудрить. :)
Спасибо.
9 BlackJack
 
28.05.12
20:41
Так работает:
   Объект.Товары.Загрузить(Т);
10 Feanor
 
28.05.12
20:44
(8) ну дак это "реквизит" объекта, а не формы, к нему "ЗначениеВРеквизитФормы" неприменимо
11 Азазелло
 
28.05.12
20:45
(9) и отображается o_O ?
12 BlackJack
 
28.05.12
20:45
(10) так в форме такой реквизит тоже есть
13 BlackJack
 
28.05.12
20:45
(11) Да
14 Feanor
 
28.05.12
20:48
(12) не реквизит формы, наверное, а элемент формы, связанный с ТЧ, есть.
15 Азазелло
 
28.05.12
20:49
(13) шайтан!!! как? я только что создал обработку, добавил реквизит типа "ТаблицаЗначений", бросил его на форму, заполнил ПриСозданииНаСервере и ничего не получил в результате.!?
16 BlackJack
 
28.05.12
20:50
(14) Да
(15) А если по кнопке вызывать заполнение?

А как из формы добраться до процедур, описанных в модуле обработки?
17 Азазелло
 
28.05.12
20:52
на последний вопрос в (16)
РеквизитФормыВЗначение("Объект").ИмяЭкспортнойПроцедурыМодуляОбработки();
18 Азазелло
 
28.05.12
20:52
"Объект" - имя основного реквизита формы, соответствующего Объекту обработки
19 BlackJack
 
28.05.12
20:54
(18) Спасибо, понял. Но не чувствую ещё логику.
20 BlackJack
 
28.05.12
20:57
Прогресс-бар ещё хочется сделать.
В модуле формы процедуры &НаКлиенте подключаю обработчик ожидания, вызываю тут же процедуру &НаСервере, которая выполняет вычисления. В обработчике ожидания делаю ОбновитьОтображениеДанных(), но пока серверная процедура не отработает, на форме ничего не меняется.
21 Deniskind
 
28.05.12
21:11
(20) Этот вопрос решается достаточно проблемно. Процедуру на сервере надо запускать из фонового задания. В этой процедуре менять, например, константу или регистр сведений записывать со значением прогресса. А на клиенте обработчиком ожидания это значение читать. Если база файловая, то требуется еще специальный сеанс запускать для работы фоновых заданий.
22 BlackJack
 
28.05.12
21:49
Прерывание пользователем тоже не реализовать?
23 experimentator76
 
28.05.12
22:26
(20) забудь... просто пиши чтобы быстро работало )
24 experimentator76
 
28.05.12
22:26
(22) что собрался прерывать?
25 BlackJack
 
28.05.12
22:38
(24) Заполнение таблицы Т в процедуре &НаСервере