|
Работа с макета и вывод таб документа в таб документа | ☑ | ||
---|---|---|---|---|
0
Rizhij_Nikitos
15.09.11
✎
16:37
|
Пишу обработку печать ценников, где можно выбирать шаблоны для ценника, их размеры и количество. Но вот такое дело, если выбрать для товаров одинаковый шаблон и размер, то все будет четко как тута ftp://213.234.18.51/4.jpg
А если разные шаблоны, то все плывет, причем плывет не понятно почему, как бы макеты одни и те же а размеры уменьшаются сами. Все это выглядит так: ftp://213.234.18.51/3.jpg Еще такая проблема линии почему то , то не доконца пририсовываются, как тута: ftp://213.234.18.51/1.jpg ftp://213.234.18.51/2.jpg ftp://213.234.18.51/5.jpg Вот сам код, вывода таб документов. ДокументПечати = Новый ТабличныйДокумент; ПоискВыбранных = Новый Структура(); ПоискВыбранных.Вставить("Выбран",Истина); СтрокиДляПечати = Товары.НайтиСтроки(ПоискВыбранных); ЭтотОбъект = РеквизитФормыВЗначение("Объект"); ПустойТабДок = Новый ТабличныйДокумент; Для НомерСтроки = 0 По СтрокиДляПечати.Количество()-1 Цикл ДокументЦенник = Новый ТабличныйДокумент; СтрокаДанных = СтрокиДляПечати.Получить(НомерСтроки); Макет= ЭтотОбъект.ПолучитьМакет(СтрокаДанных.ШаблонЦенника+СтрокаДанных.РазмерЦенника); ОбластьМакета = Макет.ПолучитьОбласть("Организация|Столбец"); ОбластьМакета.Параметры.Организация = Объект.Организация; ДокументЦенник.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Наименование|Столбец"); ОбластьМакета.Параметры.Наименование = СтрокаДанных.Номенклатура; ДокументЦенник.Вывести(ОбластьМакета); Попытка Если СтрокаДанных.ШаблонЦенника = "ЦенникЛинолеум" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена|Столбец"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ОбластьМакетаДопЦена = Макет.ПолучитьОбласть("ДопЦена"); ОбластьМакетаДопЦена.Параметры.ДопЦена = ПредставлениеЦены(СтрокаДанных.ДопЦена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаДопЦена); ДокументЦенник.Вывести(ОбластьМакетаЦена); ИначеЕсли СтрокаДанных.ШаблонЦенника = "ЦенникПлитка" ИЛИ СтрокаДанных.ШаблонЦенника="ЦенникЛаминат" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ОбластьМакетаДопЦена = Макет.ПолучитьОбласть("ДопЦена|Столбец"); ОбластьМакетаДопЦена.Параметры.ДопЦена = ПредставлениеЦены(СтрокаДанных.ДопЦена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаЦена); ДокументЦенник.Вывести(ОбластьМакетаДопЦена); ИначеЕсли СтрокаДанных.ШаблонЦенника = "ЦенникБольшинствоТоваров" Тогда ОбластьМакетаЦена = Макет.ПолучитьОбласть("Цена|Столбец"); ОбластьМакетаЦена.Параметры.Цена = ПредставлениеЦены(СтрокаДанных.Цена,Объект.Валюта); ДокументЦенник.Вывести(ОбластьМакетаЦена); ОбластьМакета = Макет.ПолучитьОбласть("ЕдиницаИзмерения|Столбец"); ОбластьМакета.Параметры.ЕдиницаИзмерения = СтрокаДанных.Упаковка; ДокументЦенник.Вывести(ОбластьМакета); КонецЕсли; Исключение КонецПопытки; ОбластьМакета = Макет.ПолучитьОбласть("КодТовара|Столбец"); ОбластьМакета.Параметры.КодТовара = СтрокаДанных.Код; ДокументЦенник.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Подпись|Столбец"); ДокументЦенник.Вывести(ОбластьМакета); //Заполняем выходной документ ценниками с их указанным количеством Если СтрокаДанных.РазмерЦенника = "Малыш" Тогда КоличествоВСтроке = 4; КоличествоСтрок = 8; ИначеЕсли СтрокаДанных.РазмерЦенника = "Малый" Тогда КоличествоВСтроке = 2; КоличествоСтрок = 6 ; ИначеЕсли СтрокаДанных.РазмерЦенника = "Средний" Тогда КоличествоВСтроке = 1; КоличествоСтрок = 5; ИначеЕсли СтрокаДанных.РазмерЦенника = "Большой" Тогда КоличествоВСтроке = 1; КоличествоСтрок =2; КонецЕсли; ТекСтолбец = 0; ТекСтрока = 0; Для КоличествоКопией = 0 По СтрокаДанных.КоличествоЦенников-1 Цикл Если ТекСтолбец <КоличествоВСтроке Тогда ДокументПечати.Присоединить(ДокументЦенник); ДокументПечати.ВывестиВертикальныйРазделительСтраниц(); ТекСтолбец = ТекСтолбец + 1; КонецЕсли; Если ТекСтолбец = КоличествоВСтроке Тогда ТекСтрока = ТекСтрока + 1; ТекСтолбец = 0; ДокументПечати.Вывести(ПустойТабДок); КонецЕсли; Если ТекСтрока = КоличествоСтрок И КоличествоКопией<СтрокаДанных.КоличествоЦенников-1 Тогда ТекСтрока = 0; ДокументПечати.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли КонецЦикла; //переход на новую страницу для ценников другого товара ДокументПечати.ВывестиГоризонтальныйРазделительСтраниц(); КонецЦикла; ДокументПечати.ОтображатьСетку = Ложь; Возврат ДокументПечати; |
|||
1
mikecool
15.09.11
✎
16:38
|
если плывет макет - надо для каждой области устанавливать размеры вручную, т.е. отключать автовысоту и автоширину
|
|||
2
Rizhij_Nikitos
15.09.11
✎
17:02
|
Да вроде бы сам макет, фиксированный, я его в один табдокумент заполняю, в другой выгружаю, высоту и тд и тп, в соотвествии с самим макетом. То есть я ширину и высоту им не проставляю. А где все это отключить.
|
|||
3
ptiz
15.09.11
✎
17:06
|
В 1ой картинке ширина 1го столбца больше, чем во второй. Что непонятного?
|
|||
4
ptiz
15.09.11
✎
17:07
|
тьфу, наооборот, во 2ой картинке ширина больше
|
|||
5
Rizhij_Nikitos
15.09.11
✎
17:17
|
Я и сказал, что плывет, а почему не понятно ...
|
|||
6
mikecool
15.09.11
✎
17:17
|
(5) что не понятно в "отключать автовысоту и автоширину"?
|
|||
7
ptiz
15.09.11
✎
21:06
|
(5) Потому что столбец шире. Либо делать везде одинаковую, либо делать для каждой секции "особую" ширину (т.е. выделить секцию-строку в макете в конфигураторе и изменить ширину столбцов).
|
|||
8
Rizhij_Nikitos
16.09.11
✎
08:50
|
(7) че значит особую ширину.
(6) программно отключать или в настройках? Везде одинаковая смотрите 3 рисунок, там же все нормально, макеты одни и те же и размеры тоже. |
|||
9
Rizhij_Nikitos
16.09.11
✎
09:03
|
Up
|
|||
10
Rizhij_Nikitos
16.09.11
✎
09:58
|
Вверх
|
|||
11
Rizhij_Nikitos
16.09.11
✎
11:09
|
Up
|
|||
12
ptiz
16.09.11
✎
12:02
|
На рисунке ftp://213.234.18.51/3.jpg
первый столбец шире других. Еще раз про "особую" ширину. Выделить секцию-строку в макете в конфигураторе и (не убирая выделения) мышкой изменить ширину столбцов (1С выдаст вопрос). Тогда столбцы секции будет иметь "особую" ширину, которая не будет сбиваться при выводе в таб.док. |
|||
13
Rizhij_Nikitos
16.09.11
✎
12:24
|
(12) да я уже их менял двигал эту ширину, даже писал
ТабДок.ШиринаСтраницы и указывал, и все равно первый ценник как в рисунке ftp://213.234.18.51/3.jpg, шире, зато другие более менее уже одинаковые... |
|||
14
ptiz
16.09.11
✎
12:32
|
(13) У тебя, видимо, выводятся секции в один таб.док из разных макетов. В таком случае ширина колонок приводится к ширине первой выведеной секции. Чтобы этого не было, я и писал про "особую" ширину для секции, которые "не первые".
|
|||
15
ptiz
16.09.11
✎
12:32
|
Если всё совсем плохо, выложи куда-нибудь обработку.
|
|||
16
Rizhij_Nikitos
16.09.11
✎
12:39
|
Да все выводится в один таб док. Конструкция такая у меня 16 макетов, со своими размерами и видами. И в зависимости от выбюираемых параметров берется один из этих макетов, штампуется в соотвествии с количеством. Но почему то вот так получается. И тока щас уже первый, остальные нормально идут.
|
|||
17
Rizhij_Nikitos
16.09.11
✎
12:40
|
(15) НАсчет секций, нет секции в один табдок, а этот табдок лепится в другой. В коде посмотрие последние строчки в цикле, в (0) сообщении.
|
|||
18
Шапокляк
16.09.11
✎
12:50
|
Сделай в макетах все колонки одной ширины, а для вывода широких записей объединяй ячейки. Неужели не очевидно?
|
|||
19
ptiz
16.09.11
✎
13:04
|
Я так и не понял - сделана "особая" ширина у исходных секций или нет. Выложи любой макет.
|
|||
20
Rizhij_Nikitos
16.09.11
✎
16:29
|
ftp://213.234.18.51/%cf%e5%f7%e0%f2%fc%d6%e5%ed%ed%e8%ea%ee%e2.epf
вот моя обработка, можешь посмотреть там макеты и тд, даже будет работать, если есть УТ 11.0, даже демо наверно подойдет. |
|||
21
Rizhij_Nikitos
16.09.11
✎
18:29
|
UP!
|
|||
22
Rizhij_Nikitos
19.09.11
✎
11:49
|
up
|
|||
23
ptiz
19.09.11
✎
12:50
|
С 7го поста долблю как в стену.
Надо сделать ЭТО для всех секций ценников всех макетов. http://narod.ru/disk/25595964001/ЦенникБольшинствоТоваровБольшой.mxl.html |
|||
24
Rizhij_Nikitos
19.09.11
✎
16:29
|
Я честно не понял, что это сделать и как?
|
|||
25
Rizhij_Nikitos
19.09.11
✎
16:32
|
И что ты сделал в скинутом макете...
|
|||
26
ptiz
19.09.11
✎
17:40
|
См. (12).
В макете из (23): Кликни сначала в строку, которая входит в секцию - посмотри ширину столбцов. Потом кликни в строку вне секции - посмотри ширину столбцов. |
|||
27
Rizhij_Nikitos
20.09.11
✎
08:59
|
(26) да терь я понял в чем дело, твоя идея мне подсказала, дело в столбцах, так они изначально разные в самих макета, и как бы я не увеличивал и не уменьшал, все будет ехать, если не в начале то в конце, все же в один табдок выводится будет, а там все будет ровняться по первому выведеному макету. спасибо за помощь.
|
|||
28
Шапокляк
20.09.11
✎
09:42
|
(27) Если б ты прочитал (18), то понял бы это несколько раньше.
|
|||
29
Rizhij_Nikitos
20.09.11
✎
13:48
|
(28) ну я прочитал, я же говорил спасибо, но до этого надо еще самому дойти, так более лучше запомнить)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |