Имя: Пароль:
1C
1С v8
В один таб док с двух макетов
,
0 Anjo
 
14.02.13
08:49
Значится перечитал кучу похожих постов... но что то прям внятного ответа на мой конкретный пример не нашел

Есть 2 типовых макета ,допустим это ТТН и Счет-фактура (количество колонок и ширина у них конечно разные), задача вывести их в один документ через разделитель страниц,ориентация ландшафт,автомасштаб указан. Далее ТабДок.Показать()... при предварительном просмотре, ТТН (она меньше по ширине) не растягивается по ширине...формат строк убирал...еще варианты есть?
1 Cube
 
14.02.13
08:56
(0) "при предварительном просмотре, ТТН (она меньше по ширине) не растягивается по ширине"
Ну так кто ж знает, чего ты там наворотил, телепатов тут нет.

Сохрани макет ТТН в файл, выложи на какую-нить файлопомойку и ссылку сюда.
Если у тебя внешняя печатная форма, то давай её всю, посмотрим. А так гадать...
2 AaNnDdRrEeYy
 
14.02.13
09:00
ширина колонок всего таб док устанавливается по ширине первой строки таб дока. попробей вывести первой строкой пустую область такой шириной какой тебе хочется получить весь таб док.
3 Cube
 
14.02.13
09:01
(2) Бред.
4 AaNnDdRrEeYy
 
14.02.13
09:03
(3) это проверено.
5 Cube
 
14.02.13
09:12
(4) Да хоть запроверяйся: http://files.mail.ru/2A240AFE2657413E96C14365499B76E4

Поставь масштаб "По ширине" и объясни мне, почему таблица не доходит до правого края страницы?
6 Anjo
 
14.02.13
09:18
7 Anjo
 
14.02.13
09:19
(4) по твоей логике я могу сначала вывести самый широкий макет а потом все остальные и будет мне счастье... нет не будет пробовал =)
8 AaNnDdRrEeYy
 
14.02.13
09:22
(5) у тебя не то что в (0) имели ввиду, удали колонку 2 и 3 и дойдет до конца.
вот в (5) видно что два макета имеют разную ширину колонки 1
сделай одинакой их ширину.

вот тахе проблема, автор конкретно говорит чему ширина равна
http://www.1c-galaxy.ru/forum4/topic308277/
9 AaNnDdRrEeYy
 
14.02.13
09:24
(7) когда выводил сначало самый широкий ширина колонок на втором узком изменилась? стала шире?
10 Cube
 
14.02.13
09:25
(6) Прикольно. Похоже, придется тебе делать макеты одинаковой ширины...
11 Cube
 
14.02.13
09:27
(8) В (5) пример чисто для тебя, чтобы показать тебе, что масштаб "По ширине" вычисляется не по первой строке ТД, а по самой широкой строке ТД.
12 Anjo
 
14.02.13
09:28
(10) вот и у меня такое чувство.. что предстоит мне (не дает мне анти-мат обрисовать эту часть тела)  =)
(7) нет ширина не менялась
13 AaNnDdRrEeYy
 
14.02.13
09:32
(11)я про вертикальную черточку справа вкурсе, вопрос про то как она устанавливается при выводе областей  с разной шириной (этой самой вертикальной пунктирной черточкой ) в один таб док.
14 zak555
 
14.02.13
09:34
не экономь бумагу --- переходи на ЖДО
15 zak555
 
14.02.13
09:34
*ЭДО
16 Anjo
 
14.02.13
09:36
(14) не совсем понял это ты к чему?
17 Anjo
 
14.02.13
09:43
Единственный up... а вдруг кто нить все таки блеснет
18 НЕА123
 
14.02.13
09:54
(0)(5)
так и должно быть. масштаб - свойство дока печати.
единственное - областьпечати. имхо.
19 zak555
 
14.02.13
09:55
(16) Электронный ДокументОборот
20 Anjo
 
14.02.13
10:00
(19) нет я понял что такое ЭДО... я не понял " не экономь бумагу" у тебя есть решение моей проблемы?
21 zak555
 
14.02.13
10:01
(20) не печатать
22 Anjo
 
14.02.13
10:05
(21) а вот оно что... ну это не решение =)
23 AndyD
 
14.02.13
11:22
в макетах исходных сделай ширину одинаковую итоговую
24 Anjo
 
14.02.13
11:48
(23) "ширину одинаковую итоговую" ты имеешь ввиду сделать одинаковой шириной последние области?
25 Лодырь
 
14.02.13
11:52
меня в свое время выручила откуда то спи..ная функция:
Процедура ЗадатьФорматСтрок(прТаб)
       
       лкКоличествоСтрок = прТаб.ВысотаТаблицы;
       лкКоличествоКолонок = прТаб.ШиринаТаблицы;
       лкШирина1 = "";
       лкШирина2 = "";
       лкСтрока1 = 0;
       лкСтрока2 = 0;
       Для лкСтр=1 По лкКоличествоСтрок Цикл
           
           лкШирина2 = "";
           Для лкКол=1 По лкКоличествоКолонок Цикл
               лкШирина2 = лкШирина2 + "," + прТаб.Область(лкСтр,лкКол).ШиринаКолонки;
           КонецЦикла;
           Если лкШирина1 = лкШирина2 Тогда
               лкСтрока2 = лкСтрока2 + 1;
           Иначе
               Если лкСтрока1 <> 0 Тогда
                   прТаб.Область(лкСтрока1,,лкСтрока2).СоздатьФорматСтрок();
               КонецЕсли;
               лкШирина1 = лкШирина2;
               лкСтрока1 = лкСтр;
               лкСтрока2 = лкСтр;
           КонецЕсли;
           
       КонецЦикла;
       
       Если лкСтрока1 <> 0 Тогда
           прТаб.Область(лкСтрока1,,лкСтрока2).СоздатьФорматСтрок();
       КонецЕсли;
       
   КонецПроцедуры
26 SherifSP
 
14.02.13
11:57
Лодырь - Серега?
27 SherifSP
 
14.02.13
11:57
А методом присоединить область пробовал играться?
28 Лодырь
 
14.02.13
12:00
(26) Нет я не Серега.
29 Anjo
 
14.02.13
12:57
(25) че то не помогает... (27) а что именно ты имеешь ввиду ... до присоединять области до нужной ширины?
30 Лодырь
 
14.02.13
14:13
(29)
Логично что не помогает я ж не написал как ей пользоваться )
А работает она примерно так:

ИтоговыйДокумент = Новый ТабличныйДокумент;
Док = ПечатьТЧ();
ИтоговыйДокумент.Вывести(Док);
Док = ПечатьРеализацияТоваров();
ЗадатьФорматСтрок(Док);
Если не ИтоговыйДокумент.ПроверитьВывод(Док) Тогда
   ИтоговыйДокумент.ВывестиГоризонтальныйРазделительСтраниц();    
КонецЕсли;    
ИтоговыйДокумент.Вывести(Док);
31 mikecool
 
14.02.13
14:16
(0) все возможно, в поиск
32 mikecool
 
14.02.13
14:19
33 Evrepid
 
14.02.13
14:20
2(0) Русский прошел мимо в школе?
34 Anjo
 
14.02.13
15:30
(33) тебе написать больше негде ... иди в OFF
35 Anjo
 
14.02.13
16:38
(29) не помогло
(32) я все это уже пересмотрел... и вроде дельные советы есть но не помогло ничего =(

может глянете код... может я под вечер уже туплю http://files.mail.ru/36DD5B5B62FB4EBDB798E9105C076B5C
36 Лодырь
 
14.02.13
17:21
решил вчитаться в то что хочет автор)
похоже он хочет чтобы страницы масштабировались по разному, я верно понял? то бишь масштаб одной страницы отличался от другого и они обе занимали ровно по листу?
37 Лефмихалыч
 
14.02.13
17:26
(0) Для того, чтобы табличный документ растягивался по ширине, у него хотя бы у одной колонки должна стоять ширина = Авто
38 Лодырь
 
14.02.13
17:27
(37) Прочти (36)
39 Лефмихалыч
 
14.02.13
17:35
(38) я одно знаю точно - автор хочет какой-то неведомой ёперной струйни. Видимо нашел где-то принтер в аренду, за который снимают плату за каждое задание, и вот решил оптимизировать стоимость владения ИТ
40 Anjo
 
14.02.13
17:58
(36) да нужно чтобы каждый лист был заполнен по ширине т.е. не было пустот от того что один макет щире другого
41 Anjo
 
14.02.13
18:02
(39) комментарий не в тему помоему
42 Лодырь
 
14.02.13
18:56
Можешь кстати пойти экстенсивным путем. Вычислить абсолютную ширину всех документов, вычислить коэффициенты относительно широчайшего и изменять ширину колонок пропорционально )
43 SUA
 
14.02.13
19:02
а чем типовая пакетная печать не нравится?
44 Anjo
 
14.02.13
22:48
(42) вот! тоже такая идея пришла, уже реализовал =) хотел зайти подытожить... а тут уже есть решение... все всем спс
45 Anjo
 
15.02.13
10:41
(44) ну собственно не все получилось в итоге какие то формы так и не вывелись как надо... их пришлось руками подгонять
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший