![]() |
|
Печать документа | ☑ | ||
---|---|---|---|---|
0
BuHHu_l7yx
05.10.11
✎
10:44
|
Всем добрый день!
Прошу помощи в разъяснении, как работает метод ПроверитьПрисоединение у табличного документа. |
|||
1
BuHHu_l7yx
05.10.11
✎
10:47
|
извиняюсь, случайно нажал на ctrl-enter
Пытаюсь вывести на печать многострочный документ с большим количеством колонок. Необходима проверка на то, чтобы документ помещался по ширине, если нет - разбивать страницы по ширине. Ниже привожу код. ОбластьШапкаНоменклатура.Параметры.ДатаЗаявки = Дата; ТД.Вывести(ОбластьШапкаНоменклатура); СпК = СписокКонтрагентов.Получить(); //массив вывода МассивВыводимыхОбластей = Новый Массив; //вывод шапки Для Сч=0 По СпК.Количество()-1 Цикл ОбластьШапкаКонтрагент.Параметры.Контрагент = СпК.Получить(Сч).Значение; МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьШапкаКонтрагент); МассивВыводимыхОбластей.Добавить(ОбластьШапкаИтВ); Если НЕ ТД.ПроверитьПрисоединение(МассивВыводимыхОбластей) Тогда ТД.Присоединить(ОбластьШапкаИтВ); ТД.ВывестиВертикальныйРазделительСтраниц(); ТД.Присоединить(ОбластьШапкаНоменклатура); КонецЕсли; ТД.Присоединить(ОбластьШапкаКонтрагент); КонецЦикла; ТД.Присоединить(ОбластьШапкаИтВ); //итого по странице верт //инициализация Массив = Новый Массив(ТаблицаЗаявки.Количество()); Для Сч=0 По Массив.Количество()-1 Цикл Массив[Сч] = 0; КонецЦикла; Для Каждого Стр Из ТаблицаЗаявки Цикл ОбластьСтрокаНоменклатура.Параметры.Номенклатура = Стр.Номенклатура; ТД.Вывести(ОбластьСтрокаНоменклатура); Для Каждого Знч Из СпК Цикл Если Знч.Значение = Справочники.Контрагенты.БелыйЯр Тогда ИмяКолонки = "БелыйЯр"; Иначе ИмяКолонки = "Колонка_"+Знч.Значение.Код; КонецЕсли; МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьСтрокаИтВ); МассивВыводимыхОбластей.Добавить(ОбластьСтрокаКонтрагент); Если НЕ ТД.ПроверитьПрисоединение(МассивВыводимыхОбластей) Тогда ОбластьСтрокаИтВ.Параметры.ИтогоВ = Массив[ТаблицаЗаявки.Индекс(Стр)]; ТД.Присоединить(ОбластьСтрокаИтВ); ТД.ВывестиВертикальныйРазделительСтраниц(); ТД.Присоединить(ОбластьСтрокаНоменклатура); Массив[ТаблицаЗаявки.Индекс(Стр)] = 0; КонецЕсли; ОбластьСтрокаКонтрагент.Параметры.Количество = Стр[ИмяКолонки]; ТД.Присоединить(ОбластьСтрокаКонтрагент); Массив[ТаблицаЗаявки.Индекс(Стр)] = Массив[ТаблицаЗаявки.Индекс(Стр)]+Стр[ИмяКолонки]; КонецЦикла; КонецЦикла; ОбластьСтрокаИтВ.Параметры.ИтогоВ = Массив[ТаблицаЗаявки.Индекс(Стр)]; ТД.Присоединить(ОбластьСтрокаИтВ); ТД.Показать(); шапка выводится нормально, а вот строки криво. подскажите, в чем неправ. Заранее спасибо! |
|||
2
BuHHu_l7yx
05.10.11
✎
11:32
|
up
|
|||
3
BuHHu_l7yx
05.10.11
✎
12:21
|
ап
|
|||
4
BuHHu_l7yx
05.10.11
✎
12:46
|
может неясно вопрос задал:
вот в этом куске кода ОбластьШапкаНоменклатура.Параметры.ДатаЗаявки = Дата; ТД.Вывести(ОбластьШапкаНоменклатура); СпК = СписокКонтрагентов.Получить(); //массив вывода МассивВыводимыхОбластей = Новый Массив; //вывод шапки Для Сч=0 По СпК.Количество()-1 Цикл ОбластьШапкаКонтрагент.Параметры.Контрагент = СпК.Получить(Сч).Значение; МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьШапкаКонтрагент); МассивВыводимыхОбластей.Добавить(ОбластьШапкаИтВ); Если НЕ ТД.ПроверитьПрисоединение(МассивВыводимыхОбластей) Тогда ТД.Присоединить(ОбластьШапкаИтВ); ТД.ВывестиВертикальныйРазделительСтраниц(); ТД.Присоединить(ОбластьШапкаНоменклатура); КонецЕсли; ТД.Присоединить(ОбластьШапкаКонтрагент); КонецЦикла; ТД.Присоединить(ОбластьШапкаИтВ); все работает замечательно, происходит проверка на то,что влазит или нет очередная колонка по ширине и,если не влазит, вставляется разделитель вертикальный и присоединяется 1я колонка. а вот в этом куске кода Для Каждого Стр Из ТаблицаЗаявки Цикл ОбластьСтрокаНоменклатура.Параметры.Номенклатура = Стр.Номенклатура; ТД.Вывести(ОбластьСтрокаНоменклатура); Для Каждого Знч Из СпК Цикл Если Знч.Значение = Справочники.Контрагенты.БелыйЯр Тогда ИмяКолонки = "БелыйЯр"; Иначе ИмяКолонки = "Колонка_"+Знч.Значение.Код; КонецЕсли; МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьСтрокаИтВ); МассивВыводимыхОбластей.Добавить(ОбластьСтрокаКонтрагент); Если НЕ ТД.ПроверитьПрисоединение(МассивВыводимыхОбластей) Тогда ОбластьСтрокаИтВ.Параметры.ИтогоВ = Массив[ТаблицаЗаявки.Индекс(Стр)]; ТД.Присоединить(ОбластьСтрокаИтВ); ТД.ВывестиВертикальныйРазделительСтраниц(); ТД.Присоединить(ОбластьСтрокаНоменклатура); Массив[ТаблицаЗаявки.Индекс(Стр)] = 0; КонецЕсли; ОбластьСтрокаКонтрагент.Параметры.Количество = Стр[ИмяКолонки]; ТД.Присоединить(ОбластьСтрокаКонтрагент); Массив[ТаблицаЗаявки.Индекс(Стр)] = Массив[ТаблицаЗаявки.Индекс(Стр)]+Стр[ИмяКолонки]; КонецЦикла; КонецЦикла; ОбластьСтрокаИтВ.Параметры.ИтогоВ = Массив[ТаблицаЗаявки.Индекс(Стр)]; ТД.Присоединить(ОбластьСтрокаИтВ); та же самая проверка не отрабатывает корректно и все колонки выводятся подряд так,как будто все влазят по ширине листа.Хотя на самом деле это не так. Если кто сталкивался с подобным выводом на печать, подскажите, как сделать проверку. |
|||
5
BuHHu_l7yx
05.10.11
✎
13:28
|
неужели никто никогда не печатал столь широкие документы?((
|
|||
6
BuHHu_l7yx
05.10.11
✎
14:42
|
ап
|
|||
7
BuHHu_l7yx
06.10.11
✎
07:57
|
up
|
|||
8
BuHHu_l7yx
06.10.11
✎
13:55
|
последний ап
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |