Имя: Пароль:
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
Согласен, но таким образом он выводит значения по каждой строке. Тогда подскажите чем можно заменить эту строчку, пожалуйста?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn