Имя: Пароль:
1C
 
Вывод на печать в две колонки
0 Незнай
 
16.07.05
20:49
Уважаемые форумчане, подскажите, как реализовать подобное?
Суть такова, что начальство желает видеть расходные накладные в две колонки, чтобы все умещалось на одной странице, так как наименований более 50 бывает. Если можно и прайс в две колонки подскажите, пожалуйста.
1 Лошадка в пальто
 
16.07.05
20:50
а вот "тема ебли не раскрыта..."
2 Незнай
 
16.07.05
21:08
Дан документ РеализацияТоваров. Необходимо распечатать его через внешнюю обработку (чтобы не менять ничего в конфигурации). Но печать должна быть не стандартной, а две колонки: Колонка1(Товар, ЧислоУпаковок, ШтВУпаковке), Колонка2(Товар, ЧислоУпаковок, ШтВУпаковке), причем Колонка1 содержит строки с 1 по N, а Колонка2 с N по последнюю. Колонки должны быть приблизительно равные по высоте (плюс-минус строка). Приблизительный аналог - КалендарьПользователя, но там число строк в колонке строго определено, а как динамически рассчитывать, я не знаю. Теперь тема раскрыта?
3 Лошадка в пальто
 
16.07.05
21:10
да ... теперь ничо ... нужно купить журнал расчетов или позвать специалиста...
4 Незнай
 
16.07.05
21:14
А ссылку или подсказку можно вместо (3)?
5 Лошадка в пальто
 
16.07.05
21:16
6 Незнай
 
16.07.05
21:21
Очень интересно ;)
А по теме есть?
7 Рыжий Ап
 
16.07.05
21:31
Решение проблемы
1. Берешь документ складываешь пополам
2. По линейке акуратно отрываешь по месту сгиба
3. С помощью скотча создаешь новый документ с двумя колонками
8 Незнай
 
16.07.05
21:40
(7) Переведу ваше решение в 1С стиле
Выводим весь документ, кроме строчной части, затем выводим строчную часть и в процессе вывода проверяем, уместилось ли. Номер последней уместившейся строки запоминаем. Выводим документ заново, не уместившиеся строки выводим во вторую колонку (ТаблицаЗначений рулит) ;) Если нужны приблизительно равные колонки, число строк поделим пополам и округлим. Я прав или есть решение попроще?
9 snc
 
16.07.05
23:00
Есть. Используй ПрисоединитьСекцию(<ИмяСекции>)
10 snc
 
16.07.05
23:03
(9)+ или для 8-ки ТабДок.Присоединить(...)
11 Незнай
 
16.07.05
23:49
(9) и (10) А нельзя ли пример? или ссылку по теме?
12 Незнай
 
17.07.05
09:27
+ (11) Если использовать Присоединить, то выводится:
Товар1    Товар2
Товар3    Товар4
и у меня сейчас так,
а надо:
Товар1    Товар3
Товар2    Товар4
Может рассчитывать высоту строк, а каким методом?
13 Zoomerman
 
17.07.05
14:16
Выгружаешь результат запроса в таблицу.
Опытным путем подбираешь количество умещающихся строк на странице.
Выводишь строки документа в следующем стиле

ВыведеноСтрок = 0;
Пока ВыведеноСтрок < СтрокНаСтраницу Цикл
 ВыводимаяСтрока = ТЗ.Получить(ВыведеноСтрок);
 Область.Параметры.Заполнить(ВыводимаяСтрока);
 ТабДок.Вывести(Область);
 Попытка
   ВыводимаяСтрока = ТЗ.Получить(ВыведеноСтрок+СтрокНаСтраницу);
   Область.Параметры.Заполнить(ВыводимаяСтрока);
   ТабДок.ПРисоединить(Область);
 Исключение
   // хрен с ним - нет больше строк
 КонецПопытки;
КонецЦикла;

Ну, естественно, еще цикл по страницам внешний встроить надо...
14 Незнай
 
17.07.05
14:34
(13) Счастливое число ;)
Спасибо большое, а автоматически подбирать или вычислить число строк можно?
Опытным путем подобрать можно, а если начальство пожелает добавить чего в строку (у меня пожелало в одной строке две строчки - одну товар и т.д., вторая - сертификат) , а там еще чего придумает, чтобы мне не сиделось без дела...
15 Shaytan
 
18.07.05
10:23
Можно вывести в первую колонку строки по порядку сколько на лист влезет, а вторую колонку выводить через свой-тво "Текст" области табличного документа.
16 bs
 
18.07.05
17:52
Процедура ДвеКолонки(КвоСтрок)
ВсегоСтрок=Окр(КвоСтрок/2);
 Для ПерваяКолонка=1 По ВсегоСтрок Цикл
 НоваяСтрока=ТабличноеПоле.Добавить();
 НоваяСтрока.Колонка1=ПерваяКолонка;
 ВтораяКолонка=ВсегоСтрок+ПерваяКолонка;
 Если ВтораяКолонка <= КвоСтрок Тогда
   НоваяСтрока.Колонка2=ВтораяКолонка;
 КонецЕсли;
КонецЦикла;
КонецПроцедуры
17 Незнай
 
18.07.05
22:36
И снова спасибо за интересные подсказки
Однако хотелось бы динамически рассчитывать высоту строк в макете
(для печати прайса в 2 колонки надо)
Если это вообще можно?
18 Shaytan
 
19.07.05
08:35
(17) Что значит "динамически"? В (15) разве не динамически? Короче с ячейкаими табличного документа можно программно делать почти всё что интерактивно возможно в EXCEL(Объединять, разъединять ячейки, вставлять, удалять строки и т. д. и т. п.) Можно вывести каждую колонку в отдельный ТД и затем их соединить. Конкретная реализация зависит от специфики (например вероятность того что наименование не влезет в одну строку)и печатной формы.
19 Незнай
 
19.07.05
21:51
Прошу прощения за задержку, просматривал IT-форум.
http://itland.ru/forum/index.php?s=e430ddf67f0dbe99089eaf95317f65cf&showtopic=8973
Эта ссылка почти ответила на мой вопрос, но...
Как конкретно после вывода Колонки1 вывести рядом Колонку2 на той же странице???
Мой вариант - выводим:
Строка1 Строка(Х+МаксЧислоСтрокНаСтранице) как одну строку через присоединить
....... .......
СтрокаХ СтрокаY
Индексы Х и Y рассчитываем через ПроверитьВывод (пока не реализовал)
Хотелось бы:
Строка1
.......
СтрокаХ
затем переход как-то в начало но со сдвигом на вторую колонку и вывод:
Строка(Х+МаксЧислоСтрокНаСтранице)
.......
СтрокаY
Если можно и примерчик дайте.
Заранее спасибо всем!
20 427
 
19.07.05
22:19
тема обли в течении 3-х суток не раскрыта...
21 Незнай
 
20.07.05
19:38
Извините, если мои объяснения непонятны, просто у конкурентов есть такое, а начальство не желает отставать от прогресса, кроме того ссылка в (19) так и не объяснила до конца тему
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn