Имя: Пароль:
1C
1С v8
2 табличных документа на 1 странице
0 sooo_ez
 
28.03.19
10:09
Привет всем!
8.3.13.1513.

История такая. Нужно распечатать 2 разных табличных документа на листе а4.
Ещё раз, нужно - а4 ландшафт, визуально делим листок посередине: справа и слева разные а5 ориентации портрет.

Проблемы с которыми столкнулся:
1. Экземпляров на странице: бесполезная нерабочая штука. С настройками принтера ок (там есть не то бага, не то фича, что экземляры должны быть указаны только в одном месте: 1С или принтер). Всё равно - бесполезная нерабочая штука, мб работает только с копиями, не проверял, мне копии и не надо. Да и бьется она только по горизонтали, что не ок, т.к. нужно разбиение по вертикали как описано выше.
2. При выводе 2 табличных документов (метод Присоединить()) в 1 табличный документ - высота всей строки сквозь оба документа а5 определяется по максимально заполненной ячейке, что не ок, потому что одна ячейка документа слева плотно заполненав несколько строк, а ячейка этой же строки второго документа - просто пустая и растянутая по высоте ячейки левого документа. Т.к. строка одна и таже, т.к. табличный документ один и тот же по сути. В целом, если бы не эта проблема меня бы все устроило, т.к. в остальном всё +- получилось.
3. Печать отдельными страницами (ака "Печать комплекта") тоже не увенчалась успехом. Не удалось скомпоновать отдельные табличные документы, чтобы они выводились на одном листе а4. Тут я может что-то неправильно делаю?

Есть примеры рабочих решений или советы/подсказки/лайфхаки?
Мб можно получить независимую разрисовку ячеек на одном табличном документе? (по моему раньше как то получалось в макете и меня это бесило, а теперь это и нужно по сути, но как - я хз)
1 Ёпрст
 
28.03.19
11:17
2 sooo_ez
 
28.03.19
11:47
(1) Не видел этой темы, попробую. Спасибо!
3 Ёпрст
 
28.03.19
11:48
в поиске поройся, таких тем много и с решениями есть
4 sooo_ez
 
28.03.19
11:50
(3) Да начитался я уже, но ниче не сработало. Про СоздатьФорматСтрок() не знал, вот впервые увидел. Наверно, плохо ищу =)
5 sooo_ez
 
28.03.19
12:46
Собственно, не работает.

Синтаксис:

СоздатьФорматСтрок()
Описание:

Создает у области новый формат строк. В новом формате строк размеры колонок будут соответствовать размерам колонок, которые были установлены в области.

Ключевое слово "колонок". Мне нужно провернуть такую же дичь, только со строками.

Опять же, иначе можно как то выводить 2 листа разделенных ВывестиГоризонтальныйРазделительСтраниц() на одном. Но это тоже не получается средствами 1С.

&НаСервереБезКонтекста
Процедура ДобавитьОтчет(ТДПриемник, Отчет)

    // Здесь вставляем область справа.
    
    НачалоНовогоФорматаСтрок = ТДПриемник.ШиринаТаблицы + 1;
    ОбластьПрямоугольная = Отчет.Область(, 1, , Отчет.ШиринаТаблицы);
    ТДПриемник.ВставитьОбласть(ОбластьПрямоугольная, ТДПриемник.Область(1, НачалоНовогоФорматаСтрок));
    ТДПриемник.Область(, НачалоНовогоФорматаСтрок,
    , НачалоНовогоФорматаСтрок + Отчет.ШиринаТаблицы - 1).СоздатьФорматСтрок();
        
    // назначим высоту строк у новой области формата строк (???)
    Для Счетчик = 1 По Отчет.ВысотаТаблицы Цикл
        ТДПриемник.Область(Счетчик, НачалоНовогоФорматаСтрок).АвтоВысотаСтроки = Ложь;
        ТДПриемник.Область(Счетчик, НачалоНовогоФорматаСтрок).ВысотаСтроки =
            Отчет.Область(Счетчик, 1).ВысотаСтроки;
    КонецЦикла;
    
КонецПроцедуры

Это такая же фигня из СП, но "типа для строк", конечно же, не работает.
Но стоило попробовать)
6 sooo_ez
 
28.03.19
12:48
По результату получилось тоже самое что и Присоединить(), т.е. часть с установкой высоты не отработала по факту. Без ошибок, просто ничего не изменилось после прогонки
7 1Сергей
 
28.03.19
12:49
можно попробовать скопировать колонки (область) из одного мокселя в другой.

СоздатьФорматСтрок здесь не подойдёт. Тебе же надо справа присоединить
8 1Сергей
 
28.03.19
12:51
(6) а... так у тебя по высоте разьезжается. Нельзя ли макеты унифицировать по высоте?
9 sooo_ez
 
28.03.19
13:41
(7) Не понял, что Вы имеете ввиду. Либо копировать область в "первый" макет - это сделано процедурой выше, не сработало. Либо же использовать 2 разных табличных документа, но их на одном листе вывести у меня не получилось. Не важно даже это ВывестиГоризонтальныйРазделительСтраниц() в одном макете или действительно 2 разных макета ака "Печать комплекта", я только "за", но у меня правда не получилось. Пробовал экспериментировать с параметрами "Автомастаб", "ОриентацияСтраницы", "РазмерСтраницы" и "ЭкземпляровНаСтранице". Ни одного успешного вывода. Получилось только с пом. Присоединить(), но появилась проблема, которую я описал. В этом случае, проблема одна.

(8) С унификацией скорее всего не получится. Слишком они разные. Вот скрин, дабы визуализировать трабл.
https://cdn1.savepice.ru/uploads/2019/3/28/999894ab47c8ae83947371fc9a53e5fd-full.jpg
10 sooo_ez
 
28.03.19
13:44
(9) В скрине поле "Номер" наследует ширину поля "Текст" (т.е. её области, где стоит параметр заполнения данных). В идеале бы сделать их независимыми, но чет 1С не могёт.
11 1Сергей
 
28.03.19
13:45
(10) не могёт
12 sooo_ez
 
28.03.19
13:49
(11) Обида =) Есть мб альтернативы какие?

То что "не могёт" - морально допустимо, но 2 таб. дока разных тоже нельзя распечатать на одной странице через настройки 1С? И тут, как понимаю, нужно отстраивать эту ситуацию в настройках принтера. Для меня - это не варик, принтеры разные бывают, а конфа одна и хотелось бы в ней это сделать.

Может костыли есть? Я готов к ним, к сожалению.
13 sooo_ez
 
28.03.19
14:09
(12) Можно выводить в ворд или эксель.

В эксель +- тоже самое, как понимаю.

Ворд - вариант, но как только там начнется проблема с избытком текста и макет станет выпирать по вертикали за низ страницы, как это проконтролировать я хз, тьма. Уменьшение шрифта, мастаб, аналог "ПроверитьВывод", есть ли механизмы типа "умещать на 1 листе"?

Просто, если это в теории возможно, отпишите плз, я уж разберусь. На шару писать печатную форму в ворде до такой же или аналогичной проблемы и терять 2 дня - глупо.

Если ничего нового не узнаю, рискну, конечно =)
14 1Сергей
 
28.03.19
14:10
Не, ничего в голову не приходит
15 sooo_ez
 
28.03.19
14:11
(14) В любом случае спасибо!

Если будут идеи - пишите, если у меня будет результат - я поделюсь.
16 Ёпрст
 
28.03.19
14:11
17 Ёпрст
 
28.03.19
14:12
(13) в эксель не выведешь, даже разные ширины колонки (вложенные )- там этого вообще нет
18 Ёпрст
 
28.03.19
14:18
И.. для строк врят ли что-то придумаешь, проще выводить через горизонтальный разделитель страниц и играться с количеством экземпляров на странице
19 sooo_ez
 
28.03.19
14:24
(16) Ок, я посмотрю, но вангую, это аналог СоздатьФорматСтрок(). Т.е. ориентирован на работу с колонками. Я думаю не умеет 1С со строками вытворять подобное. Как и сказал, я протестирую.

(18) К сожалению, пока без результатов.