Имя: Пароль:
1C
1С v8
Как получить значения из ТаблицыФормы в ТаблицуЗначений?
,
0 abc
 
21.06.13
16:06
Добрый день!
Подскажите пожалуйста, как плучить данные из ТаблицыФормы в ТаблицуЗначений?
&НаКлиенте
есть доступ к табличной части обработки

&НаСервере
происходит печать всех строк из табличной части в макет

код
Для Каждого ТекСтрока Из Товары Цикл
КонецЦикла
Товары - это табличная част обработки, тип ТаблицаФормы
1 Rounder
 
21.06.13
16:08
(0) Для чего?
2 Rounder
 
21.06.13
16:10
ТаблицаФормы под собой имеет реквизит объекта табличного типа.
Обращайся к самому реквизиту.

Например обращайся так: Объект.ИмяТабличнойЧасти
3 acsent
 
21.06.13
16:11
РеквизитФормыВЗначение
4 abc
 
21.06.13
16:14
РеквизитФормыВЗначение(Объект.Товары, Тип("СправочникСсылка.Номенклатура"));
Такой синтаксис?
не проходит ни на клиенте, ни на сервере
5 acsent
 
21.06.13
16:15
РеквизитФормыВЗначение(Объект.Товары)
6 acsent
 
21.06.13
16:16
почему ты решил что тип номенклатура?
7 Rounder
 
21.06.13
16:17
только в кавычках РеквизитФормыВЗначение("Объект.Товары")
8 Rounder
 
21.06.13
16:17
МоиТовары = РеквизитФормыВЗначение("Объект.Товары")
9 abc
 
21.06.13
16:18
РеквизитФормыВЗначение(Объект.Товары)
выдает ошибку при вызове метода контекста

это все происходит в обработке
10 Rounder
 
21.06.13
16:20
Опиши свою обработку. Что она должна делать. Приведи код.
11 abc
 
21.06.13
16:25
&НаКлиенте
Процедура Печать(Команда)

   НапечататьШтрихкод(Сотрудник);

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

&НаСервере
Процедура НапечататьШтрихкод(Сотрудник)
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Штрихкод");
ОбластьМакета = Макет.ПолучитьОбласть("Область");
ТабДок = Новый ТабличныйДокумент;
ОбластьМакета.Параметры.Сотрудник = Сотрудник;
ТабДок.Вывести(ОбластьМакета);    
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать();
КонецПроцедуры
12 abc
 
21.06.13
16:26
&НаКлиенте
Процедура Печать(Команда)

Сотрудник = Элементы.Сотрудники.ТекущиеДанные.Сотрудник;
НапечататьШтрихкод(Сотрудник);

КонецПроцедуры
13 ДенисЧ
 
21.06.13
16:26
(11) Кому ты НаСервере Показать() собираешься?
14 abc
 
21.06.13
16:27
к одной строке табличной части нормально обращаюсь
а как сделать это в цикле, как в 8.1 было
Для Каждого... Из.. не знаю, никак не выходит
15 abc
 
21.06.13
16:28
"Кому ты НаСервере Показать() собираешься?"
:) не знаю как правильно, главное- мне показывает, то есть как-то работает
16 acsent
 
21.06.13
16:30
(15) файловая версия - ну-ну
17 abc
 
21.06.13
16:32
да, надо ТабДок возвращать на клиент, спасибо, учту

просто когда элементарные вещи не получаются...
18 abc
 
21.06.13
16:53
ау, люди добрые!
19 ДенисЧ
 
21.06.13
16:53
(18) шо тебе исчо надо? :-)
20 abc
 
21.06.13
16:55
дык как сделать печать для всех сотрудников?
21 abc
 
21.06.13
16:55
могу достучаться только для текущей строки, а как всех перебрать?
22 ДенисЧ
 
21.06.13
16:57
ну так получай таблицу на сервере и для каждой строки её формируй. В чём затруднение?
23 abc
 
21.06.13
16:59
если не сложно, напишите, как
24 abc
 
21.06.13
17:00
делаю

Для каждого ТекСтрокСотрудники Из Элементы.Сотрудники Цикл
КонецЦикла

ругается на итератор
25 ДенисЧ
 
21.06.13
17:01
На сервере!
тз = РеквизитФормыВЗначение("Сотрудники");
Для каждого стр из тз цикл
...
26 acsent
 
21.06.13
17:01
И этот человек 7 лет в 1с. ужас
27 zladenuw
 
21.06.13
17:03
(26) так может он клюшкин.
28 abc
 
21.06.13
17:04
Объясняю же!

тз = РеквизитФормыВЗначение("Сотрудники");

Ошибка

тз = РеквизитФормыВЗначение("Элементы.Сотрудники");

Ошибка

тз = РеквизитФормыВЗначение("Объект.Сотрудники");

Ошибка
29 abc
 
21.06.13
17:05
по 8.1 на любой вопрос отвечу, а в 8.2 все совершенно иначе
30 zladenuw
 
21.06.13
17:06
(29) ты не прав. это в управляемых формах не так.
31 abc
 
21.06.13
17:07
(30) ну так и речь об управляемых формах
32 abc
 
21.06.13
17:08
вопрос конечно Г, но если есть опыт работы с управляемыми формами, подскажите как сделать эту элементарную вещь
33 zladenuw
 
21.06.13
17:08
(31) покажи скрин шот своей формы в пофигаторе.
34 abc
 
21.06.13
17:10
как передать результат запроса в элемент типа ТаблицыФормы?
то есть в табличную часть "Сотрудники" моей обработки
35 abc
 
21.06.13
17:10
(33) а это может что-то прояснить?
36 zladenuw
 
21.06.13
17:11
ЗначениеВРеквизитФормы
37 Любопытная
 
21.06.13
17:12
Получи весь объект, а не только ТЧ.
Объект = РеквизитФормыВЗначение("Объект");
А дальше уже Объект.Сотрудники
38 ДенисЧ
 
21.06.13
17:12
Сотрудники у тебя что? Табличная часть обработки или просто табполе на форме?
Если первое, то просто
для каждого стр из Объект.Сотруднки
39 zladenuw
 
21.06.13
17:14
40 abc
 
21.06.13
17:18
(37) Спасибо огромное! получилось
41 abc
 
21.06.13
17:19
(38) да, табличная часть обработки
но без Объект = РеквизитФормыВЗначение("Объект");  не получалось
42 abc
 
21.06.13
17:19
(39) спасибо, почитаю
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший