Имя: Пароль:
1C
1С v8
Добавление колонки в макет, УТ 10.3
0 Ruslan-9031
 
29.09.13
17:01
Здравствуйте!

Нужно в макет программно добавить колонки, количество колонок неизвестно. Добавляю следующим образом:
Для К = 0 По КоличествоДней Цикл
НужнаяДата = Дата(НачалоПериода + 86400 * К);
Шапка1 = Макет.ПолучитьОбласть("Область4|Дата");
Шапка1.Область().Текст = Формат(НужнаяДата, "ДФ=dd.MM.yyyy");
ТабДокумент.Присоединить(Шапка1);
КонецЦикла;

Но колонки добавляются куда угодно, но только не в нужное место! Что неправильно, подскажите пожалуйста!
1 vicof
 
29.09.13
17:03
непонятно, что значит "нужное"
2 Ruslan-9031
 
29.09.13
17:07
Как сюда картинку добавить?!)
3 vicof
 
29.09.13
17:20
залей куда-нить и ссылку кинь
4 Ruslan-9031
 
29.09.13
17:24
http://yadi.sk/d/RPsTAasaA6CfE - это макет, Колонки должны добавляться справа, на пересечении областей "Дата" и "Область4".

http://yadi.sk/d/Bjc6PASwA6Ckm - это как они добавляются
5 vicof
 
29.09.13
17:43
[Шапка1 = Макет.ПолучитьОбласть("Область4|Дата");]
Учитывая, что у тебя Область4 состоит из хрен знает скольки колонок, пересечение ее и области Дата, будет давать хрен знает какой результат, скорей всего строку шириной в Область4. Также у тебя в пересечении этих областей не определен никакой параметр, как у тебя какие-то значения в макет выводятся - вообще непонятно.
6 bard666
 
29.09.13
17:48
(5) Текст тоже можно вставлять.
Но всё стоит Область4 ограничить одной колонкой с параметром на строке 7 (пересечение с областью Дата). Код будет примерно такой:


ПервыйРаз = Истина
Для К = 0 По КоличествоДней Цикл
НужнаяДата = Дата(НачалоПериода + 86400 * К);
Шапка1 = Макет.ПолучитьОбласть("Область4");
Шапка1.Параметры.ТвойПараметр = Формат(НужнаяДата, "ДФ=dd.MM.yyyy");
Если ПервыйРаз Тогда
ТабДокумент.Вывести(Шапка1);
Иначе
ТабДокумент.Присоединить(Шапка1);
КонецЕсли;
КонецЦикла;
7 bard666
 
29.09.13
17:49
И перед КонецЦикла не забудь Прописать
ПервыйРаз = Ложь;
8 Ruslan-9031
 
29.09.13
18:05
Сделал как (6), получилось вот так

http://yadi.sk/d/V3SmjoRnA6KyZ - макет

http://yadi.sk/d/AD_f0YerA6LYs - результат

Почему-то поехал макет!
9 bard666
 
29.09.13
18:10
Можешь базу прислать?
10 Ruslan-9031
 
29.09.13
18:12
Базу прислать не могу, очень большая, SQL, черт знает сколько времени будет выгрузка делаться!
11 bard666
 
29.09.13
18:15
хоть cf
12 Ruslan-9031
 
29.09.13
18:16
cf сейчас попробую!
13 bard666
 
29.09.13
18:18
хорошо
14 Ruslan-9031
 
29.09.13
18:18
Куда прислать?
15 bard666
 
29.09.13
18:19
Можно прям на почту 117765@mail.ru
16 Ruslan-9031
 
29.09.13
18:24
Отправил!
17 bard666
 
29.09.13
18:44
Какое значение у Область4? Просто перечислить дни?
18 Ruslan-9031
 
29.09.13
18:47
Там в зависимости от периода будут перечисляться даты, а в строках, под датами, напротив контрагента будут ставиться суммы, если есть продажи.
19 bard666
 
29.09.13
19:04
Посмотри, сейчас кину в ответ Обработину.
20 Ruslan-9031
 
29.09.13
19:15
А макет все равно поехал...

http://yadi.sk/d/RYbCg9OLA6dRQ
21 bard666
 
29.09.13
19:28
С этим сложнее. Нет данных в базе сложно тестировать.
22 Ruslan-9031
 
29.09.13
19:35
Сейчас добавлю данные и скину dt
23 bard666
 
29.09.13
19:40
давай
24 Ruslan-9031
 
29.09.13
20:23
Отправил)
25 bard666
 
29.09.13
20:25
качаю
26 bard666
 
29.09.13
20:51
Сейчас отправлю
27 bard666
 
29.09.13
20:52
Тестируй
28 Ruslan-9031
 
29.09.13
21:07
Все так! Только один момент: под датами мне надо выводить суммы заказов, напротив определенного контрагента. Если мы будем сначала выводить Левую часть, а потом добавлять колонки с датами, можно будет организовать что-то типо поиска по макету, чтобы напротив нужного контрагента вставлять под датой сумму?
29 Ruslan-9031
 
29.09.13
21:11
Потому что если добавлять колонки таким образом, то только поиском потом можно определить куда что вставлять!
30 bard666
 
29.09.13
21:19
Попробуй запихнуть в цикл по выводу Областей. Вывел контрагента, сразу к нему Области4 бобахнул..
31 bard666
 
29.09.13
21:27
Только вывод разграничить: Для первого контрагента Вся Область4, для следущих Пересечение "Область4|Область3" (Где там контрагенты выводятся)..
32 Ruslan-9031
 
29.09.13
21:50
Если так делать макет начинает плясать!