|
Табличный документ. Использование функций Вывести() и Присоединить() | ☑ | ||
---|---|---|---|---|
0
Svetlana_Kazan
13.09.17
✎
11:23
|
Помогите разобраться. Не могу понять, почему у меня фактически табличный документ СекцияГод не присоединяется, а выводится друг под другом.
ТабДок = Новый ТабличныйДокумент; ... Счетчик = 0; Для каждого Элемента Из Год Цикл СекцияГод = Новый ТабличныйДокумент; //Здесь формируется табличный документ СекцияГод на каждый год ... //для вывода по два табличных документа на странице рядом Если Цел(счетчик/2)*2 = счетчик Тогда ТабДок.Вывести(СекцияГод); Иначе ТабДок.Присоединить(СекцияГод); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; счетчик = счетчик + 1; Конец Цикла //так выводится. Счетчик=0 - это табличный документ при Счетчик равным 0 и т.д. Счетчик=0 Счетчик=1 Счетчик=2 Счетчик=2 и т.д. |
|||
1
DrShad
13.09.17
✎
11:26
|
потому что 1 / 1 * 2 = 1
|
|||
2
Svetlana_Kazan
13.09.17
✎
11:29
|
А почему (1/1)*2?
Там делится на 2 и умножается на 2 |
|||
3
DrShad
13.09.17
✎
11:31
|
(2) сорри опечатлся, но результат от деления и умножения числа на одно и то же число все равно даст вам именно это число
|
|||
4
DrShad
13.09.17
✎
11:31
|
так что 1 / 2 * 2 = 1
|
|||
5
DrShad
13.09.17
✎
11:31
|
проверку на четность числа нужно делать по другому
|
|||
6
Svetlana_Kazan
13.09.17
✎
11:31
|
Там же функция Цел() применяется.
|
|||
7
DrShad
13.09.17
✎
11:32
|
еще раз сорри, сегодня 256-й день - туплю
|
|||
8
catena
13.09.17
✎
11:33
|
(5)С праздником?
|
|||
9
DrShad
13.09.17
✎
11:34
|
(8) угу...
|
|||
10
Svetlana_Kazan
13.09.17
✎
11:35
|
Счетчик = 0:
Цел(0/2)*2 = 0 Счетчик = 1: Цел(1/2)*2 = 0 Счетчик = 2: Цел(2/2)*2 = 2 Счетчик = 3: Цел(3/2)*2 = 2 и т.д. Вроде все правильно. Но вот при Присоединить() почему-то табличный документ не справа присоединяется, а выводится ниже. |
|||
11
DrShad
13.09.17
✎
11:36
|
(6) ну тогда чудес не бывает и хотя определение четности немного странное, но по коду все нормально
можно скрин результата? |
|||
12
catena
13.09.17
✎
11:38
|
(10)Присоединять надо области. Видимо, ваш табличный документ не ограничен "самой правой выведенной колонкой"
|
|||
13
Svetlana_Kazan
13.09.17
✎
11:42
|
(6) к сожалению не получается скрин разместить.
|
|||
14
Svetlana_Kazan
13.09.17
✎
11:43
|
(10) не совсем поняла.
Если я использую всегда Присоединить(), то у меня справа присоединяет нормально, но вот в чередованием Вывести() и Присоединить() не получается. |
|||
15
DrShad
13.09.17
✎
11:45
|
(14) не получается не в чередовании, а в размерах таб доков
|
|||
16
catena
13.09.17
✎
11:48
|
(14)
Синтаксис: Присоединить(<Таблица>, <Уровень>, <ИмяГруппы>, <Открыта>) Присоединяет табличный документ к результирующему табличному документу, помещая его в следующей колонке правее самой правой выведенной колонки, начиная со строки, с которой выводился предыдущий табличный документ. Т.е., у предыдущей секции должна быть четко-определенная правая граница. |
|||
17
Svetlana_Kazan
13.09.17
✎
11:48
|
Табличные документы идентичные по размеру. Количество строк не меняется и всегда = 20.
|
|||
18
DrShad
13.09.17
✎
11:49
|
а речь про количество колонок
|
|||
19
Svetlana_Kazan
13.09.17
✎
11:50
|
(18)Тоже всегда одинаковое = 15
|
|||
20
DrShad
13.09.17
✎
11:51
|
(19) не всегда ))), то что вам кажется, является таковым
|
|||
21
DrShad
13.09.17
✎
11:52
|
выводить и присоединять нужно не сам таб док СекцияГод, а лишь его область (1,1,20,15)
|
|||
22
Svetlana_Kazan
13.09.17
✎
12:29
|
(16) catena, а вы могли бы пример какой-нибудь привести? что означает "у предыдущей секции должна быть четко-определенная правая граница"?
|
|||
23
Ёпрст
13.09.17
✎
12:35
|
(0)
//Если Цел(счетчик/2)*2 = счетчик Тогда Если счетчик%2 = 0 Тогда ЗЫ: Присоединяй Область, а не табличный документ |
|||
24
h-sp
13.09.17
✎
12:38
|
(22) ну как быть для Вывести
Область = ПолучитьОбласть("Строка|Колонка"); а Область = ПолучитьОбласть("Строка"); не прокатит. |
|||
25
Ёпрст
13.09.17
✎
12:39
|
(24) прокатит, только Присоединить будет аналогичен Вывести .
|
|||
26
DrShad
13.09.17
✎
12:40
|
(22) что из (21) непонятно?
|
|||
27
aka AMIGO
13.09.17
✎
12:45
|
(13) не получается скрин разместить.
Скачай GreenShot , скопируй вот этот адрес/сайтик в свой браузер: https://pastenow.ru/ В настройках GreenShot"а можно установить режим вырезки прямоугольной области экрана. Жми PrtScr, выделяй область После Ctrl+V на сайтике, жми "Подробнее, и верхнюю строчку копируй сюда. |
|||
28
aka AMIGO
13.09.17
✎
12:47
|
+27 GreenShot - не обязателен, тогда выкладывается весь экран.
И - да, выкладывается то, что находится в буфере обмена. |
|||
29
Svetlana_Kazan
13.09.17
✎
12:49
|
Все заработало. Спасибо всем!
Если счетчик%2 = 0 Тогда НовыйТабДок.Вывести(СекцияГод.ПолучитьОбласть(1,1,20,15)); Иначе НовыйТабДок.Присоединить(СекцияГод.ПолучитьОбласть(1,1,20,15)); НовыйТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; Так как у меня строки - это месяцы года, то количество строк и столбцов у меня строго одинаковое всегда. |
|||
30
Svetlana_Kazan
13.09.17
✎
12:49
|
(28) Спасибо! Теперь буду знать.
|
|||
31
DrShad
13.09.17
✎
12:51
|
(29) вот только беда - в году 12 месяцев, а не 20 ))))
|
|||
32
Svetlana_Kazan
13.09.17
✎
12:52
|
Так ведь еще шапка + итоговая строка
|
|||
33
catena
13.09.17
✎
12:53
|
Так это все ради календаря?
|
|||
34
Svetlana_Kazan
13.09.17
✎
12:56
|
(33) не совсем, данные собираются по месяцам за год. В выводить надо по 2 года вместе.
|
|||
35
aka AMIGO
13.09.17
✎
12:58
|
Вот когда-то я трудился над календарным графиком..
http://catalog.mista.ru/public/20905/ |
|||
36
Ёпрст
13.09.17
✎
12:59
|
(29) задавать числа в методе - моветон. Пользуй ШиринаТаблицы, ВысотаТаблицы
|
|||
37
Svetlana_Kazan
13.09.17
✎
13:02
|
вот что получилось http://pastenow.ru/8d1b6fb88a240e47327567fee7dd49e0
я только начинаю и большое спасибо, что не оставили мой крик о помощи без внимания! |
|||
38
DrShad
13.09.17
✎
13:05
|
(37) присоедини пустую колонку между ними
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |