Помощь - Поиск - Пользователи - Календарь
Полная версия: Извращенская задача
1C-PRO - Форум по 1С > Форумы по платформе "1С:Предприятие 8.0 и 8.1" > (8.0 и 8.1) Конфигурирование на платформе "1С:Предприятие 8.0 и 8.1"
Kruck
Необходимо распечатать на лист А4 в ориентации Альбом (Ландшафт) таблицу в 2 или более колонки!

| Наименование | Количество | | Наименование | Количество |
| Наименовани1 | 211213255 | | Наименовани5 | 211217255 |
| Наименовани2 | 211217255 | | Наименовани6 | 211219255 |
| Наименовани3 | 211218255 |
| Наименовани4 | 211216255 |

типа того.

В ячейках куда выводится наименование установлено свойство "Размещение текста" - "Переносить".

Мозгов нехватает, мож кто поможет?
tirk
а в чем собственно проблема то???
ТабДОк.Напечатать() - если сразу на принтер
ТАбДОк.Показать() - если сначало просмотр...
Более подробно отпешите проблему
Kruck
Блин печатается (выводится) таблица, достигает конца страницы и начинает печататься в другом столбце на этой же странице с начала странице. Можно задать количество строк на сранице при выводе, НО высота строки нефиксирована (установлено свойство "Размещение текста" - "Переносить"). КАК ПОНЯТЬ ПОНЯТЬ КОГДА НУЖНО НАЧАТЬ ВЫВОДИТЬ В ДРУГОЙ СТОЛБЕЦ???
tirk
не понял.. т.е. вы на одной странице хотетте печатать один столбец.. а на второй другой так чтоль? Если да ну сделайте масштаб 200% и принтер сам вам будет разбивку делать.. Как в экселе
Kruck
Цитата(tirk @ 15.7.2009, 10:29) *

не понял.. т.е. вы на одной странице хотетте печатать один столбец.. а на второй другой так чтоль? Если да ну сделайте масштаб 200% и принтер сам вам будет разбивку делать.. Как в экселе
Ну ёксиль моксиль "в другом столбце на этой же странице". На одной
LxS
Можно попробовать перед выводом в табличный документ использовать метод ПрисоединитьОбласть(). Но это сущее извращение.

Поправка. Присодединить(). Но! это в данном случае неприменимо, поскольку данные метод присоединяет колонки правее начальной.
Kruck
Нет такого метода! По крайней мере в последней версии 8.1
Извращенская задача требует извращенского решения.

А никак нельзя узнать высоту выводимой строка, зная сколько в ней символов??? Тока надо учесть что символ "Щ" и допустим "П" разной реальной ширины (не пункты) и строка содержащая "широкие" буквы перенесется быстрее.
LxS
Синтакс-помощник:
Цитата
ТабличныйДокумент.ПроверитьВывод (SpreadsheetDocument.CheckPut)
ТабличныйДокумент (SpreadsheetDocument)
ПроверитьВывод (CheckPut)
Синтаксис:
ПроверитьВывод(<Таблицы>)
Параметры:
<Таблицы> (обязательный)
Тип: Массив, ТабличныйДокумент. Массив из проверяемых таблиц или табличный документ.
Возвращаемое значение:
Тип: Булево. Истина - умещаются; Ложь - в противном случае.
Описание:
Проверяет, умещаются ли переданные табличные документы на страницу при печати.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
При возникновении проблем с получением информации о текущем принтере (например, в системе не установлено ни одного принтера), будет вызвано исключение.
Пример:
Т.Добавить(ШапкаДокумента);
Т.Добавить(СтрокаДокумента);
Т.Добавить(ПодвалДокумента);
Если Не ТабДок.ПроверитьВывод(Т) Тогда
Сообщить("Документ не умещается на страницу!");
КонецЕсли;


В табличный документ вывод построчный с возможностью перед выводом строки добавить колонки справа.

Ты можешь изначально формировать все в таблице значений, потом ее выгружать в ТабДок и проверять вышеописанным методом, затем, достигнув конца страницы, в ТЗ добавлять повторяющиеся колонки и снова из забивать, ориентируюясь, на уже известную высоту таблицы, а затем вывести в табдок, но все равно с использованием присоединения.
Kruck
Похоже что это - вариант!, только придется несколько итераций вывода и проверки производить, т.к. данные строк второго столбца так-же влияют на высоту строк всего выводимого табдока. Можно обойтись и без присоединения - нарисовав в макете область сразу и для второго столбца.

Какие еще есть варианты??
LxS
Цитата(Kruck @ 15.7.2009, 16:46) *

...Можно обойтись и без присоединения - нарисовав в макете область сразу и для второго столбца..


)) Ну, нарисуешь ты два столбца..но ведь у тебя их может быть 8, 10.. и т.д. Все равно придется добавлять. Я не говорю,что это обязательно, и без этого никак. Можешь вывести две секции на поллиста в альбом и не париться.. Тут дело в методе вывода. Он у тебя нестандартный.

В общем, задачка интересная. Вечером набросаю чего-нибудь.
Kruck
>"Можешь вывести две секции на поллиста в альбом и не париться.. " это как?
Stack_G
есть прикольная идейка. перевернуть лист ))
т.е. печатать столбец как строку с поворотом надписей... а дальше, ну не знаю, может покопаться в СП, перевернуть обратно, или сразу на принтер.
может и не получится - эт так с ходу - еще одно направление )
Kruck
Звучит красиво, но пока невтыкал как это. Видимо придется вечером поразвлечся с этой идейкой-индейкой ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2010 Invision Power Services, Inc.