Имя: Пароль:
1C
1С v8
Табличная часть в макете
,
0 Antakarana
 
04.09.12
16:38
Добрый день, уважаемые! Прошу у вас совета!

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

В каждой строке выдает "Содержание" последней строки. В чем загвоздка?
1 BiBijke
 
04.09.12
16:40
Для Каждого ТекСтрока Из СсылкаНаОбъект.Услуги Цикл
    ОбластьТовар.Параметры.Товар = ТекСтрока.Содержание;
    ТабДокумент.Присоединить(ОбластьТовар);
КонецЦикла;
2 Wobland
 
04.09.12
16:45
(0) заполняешь много раз, выводишь один
3 Reset
 
04.09.12
16:52
(1) + я подозреваю что не присоединить() а Вывести(). Или это документ монстр с таб частью на боку
4 BiBijke
 
04.09.12
16:53
(3) Скорее всего, я чет не обратил внимание
5 Antakarana
 
04.09.12
16:55
Для Каждого ТекСтрока Из СсылкаНаОбъект.Услуги Цикл
    ОбластьТовар.Параметры.Товар = ТекСтрока.Содержание;
    ТабДокумент.Присоединить(ОбластьТовар);
КонецЦикла;

Для документа у которого 2 строки содержания, выводит

Содержание1 | Содержание2
-------------------------
Содержание1 | Содержание2

Вместо логичного

Содержание1
-----------
Содержание2

Видимо это потому что в макете параметр <Товар> указан в четырех ячейках: "Товар", "ТоварБезКодовИСкидок", "ТоварБезКодов", "ТоварБезСкидок".

Как же быть?
6 Antakarana
 
04.09.12
16:56
Сейчас попробую "Вывести"
7 Wobland
 
04.09.12
17:10
(6) хм.. обычно наоборот. сначала знакомятся с Вывести(), потом узнают, что есть Присоединить()
8 Antakarana
 
05.09.12
10:40
Добрый день, уважаемые!

ОбластьТовар.Параметры.Товар = СсылкаНаОбъект.Услуги[0].Содержание;
ТабДокумент.Вывести(ОбластьТовар);
ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);

Выводит то что надо, но не так как надо!
Выводит вот так:

    | № | Товары              | Ед.изм. |Цена| Кол-во | Cумма |
    | 1 |            //Здесь всё пусто
Содержание1               | шт. | 10.000| 1 | 10.000 |
    | 2 |            //Здесь тоже пусто
Содержание2               | шт. | 20.000| 2 | 40.000 |

В общем, выводит номер строки, а всё остальное съезжает на следующую строку. Дайте совет плиз, что здесь поделать?
9 salvator
 
05.09.12
10:43
Обычно сначала заполняют параметры области, а уж только потом ее выводят
10 Antakarana
 
05.09.12
10:47
ОбластьТовар.Параметры.Товар = СсылкаНаОбъект.Услуги[0].Содержание;
ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьТовар);

Так выводит то же самое
11 Reset
 
05.09.12
10:47
Очередной конкурс телепатов.
Вероятно, он выводит() область с номером отдельно, потом остальное тоже выводит().
12 Antakarana
 
05.09.12
10:49
Чуть повыше у меня

ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);

И как же сделать чтобы выводил() в одну строку?
13 salvator
 
05.09.12
10:51
(12) Номер и данные выводить в одной области
14 Reset
 
05.09.12
10:52
(12) "Из одних и тех слов можно составить совершенно разные по смыслу фразы."
"А можно всех посмотреть?"
Короче, весь код покажи, а не огрызки
15 Antakarana
 
05.09.12
11:01
ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьНомера);

Если ПараметрыПечати.ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Присоединить(ОбластьКодов);
КонецЕсли;

ОбластьТовар.Параметры.Товар = СсылкаНаОбъект.Услуги[0].Содержание;
ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции);
ТабДокумент.Вывести(ОбластьТовар);


Вот
16 Reset
 
05.09.12
11:02
ТабДокумент.Вывести(ОбластьТовар);
заменить на
ТабДокумент.Присодинить(ОбластьТовар);
17 Reset
 
05.09.12
11:03
ПрисоЕдинить
18 Reset
 
05.09.12
11:04
Прочитай, наконец, описание этих методов
19 Reset
 
05.09.12
11:05
Еще кто-нибудь накажите его как-нибудь за СсылкаНаОбъект.Услуги[0].Содержание
20 Reset
 
05.09.12
11:06
Кроме того, я просил весь код, а не огрызок чуть побольше
21 Antakarana
 
05.09.12
11:11
Ветка почти с этого и начиналась)

СПАСИБО ОГРОМНОЕ, теперь выводит правильно!

Проблема состояла в том что параметр я задавал циклом а нужно было через СсылкаНаОбъект.Услуги[0].Содержание (и, кстати, почему это неправильно?)
22 Reset
 
05.09.12
11:15
- Потому что это запрос в цикле (хоть и кешируемый)
- Потому что логически странно для всех строк таблицы выводить значнеи из первой строки
23 Antakarana
 
05.09.12
11:21
Согласен, но таким образом он выводит значения по каждой строке. Тогда подскажите чем можно заменить эту строчку, пожалуйста?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой