Имя: Пароль:
1C
1С v8
вывод логотипа фирмы при печати внизу каждой страницы
,
0 Hostess_
of_Love
 
17.08.11
11:29
я понимаю, что я повторяю старую тему, но если честно в ней так и не поняла как это сделать. сложность заключается в том что у меня на странице при печати области могут повториться не один раз, но при этом обязательно надо вывести этот дурацкий логотип. ПроверитьВывод пробовала, но, скорее всего, неправильно(
63 Hostess_
of_Love
 
17.08.11
18:23
завтра буду пробовать
64 Aprobator
 
18.08.11
09:23
(51) что данная область является последней на странице. СП не прочитать что ли?
65 Aprobator
 
18.08.11
09:28
(58) небось в массив области пихаешь, а надо табличный документ.
66 zzerro
 
18.08.11
09:32
(64) Так это значит что она будет отображаться внизу страницы, или после нее будет выведен разделитель страниц, и начата новая страница?
67 Aprobator
 
18.08.11
09:36
(66) ппц. Не валяй дурака. Что это еще может значить?
68 Hostess_
of_Love
 
18.08.11
09:48
zzerro, я нашла почему та ошибка вылетала. я забыла получить область пустой строки
69 Hostess_
of_Love
 
18.08.11
10:01
только все равно почему то не выводит так как надо
70 vis_tmp
 
18.08.11
10:04
(0)Посмотрите использование ПроверитьВывод() в УТ в печати ТОРГ-12 у РеализацииТоваров
71 Aprobator
 
18.08.11
10:11
на для примера:

ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее");
ОчереднаяВыводимаяОбласть = Макет.ПолучитьОбласть("Очередная");
МассивОбластейДляПроверки = Новый Массив;
МассивОбластейДляПроверки.Добавить(ОчереднаяВыводимаяОбласть);
МассивОбластейДляПроверки.Добавить(ПоследняяОбласть);
Если НЕ ТаблДок.ПроверитьВывод(МассивОбластейДляПроверки) Тогда
    ТаблДок.Вывести(ПоследняяОбласть);
    ТаблДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ТаблДок.Вывести(ОчереднаяВыводимаябласть);


72 zzerro
 
18.08.11
10:20
(71) Попробовал... Все, что делает свойство КонецСтраницы, это то что после вывода области вставляется разделитель страниц, вот и все. И это не значит что эта область будет именно внизу страницы.
Мой алгоритм подразумевает вывод области именно в низу печатной страницы, независимо от того, сколько текста выведено на страницу, целиком забита вся, или только на половину.
73 zzerro
 
18.08.11
10:24
(71) И кстати ТаблДок.ВывестиГоризонтальныйРазделительСтраниц(); не нужен, если у области стоит свойство КонецСтраницы
74 Hostess_
of_Love
 
18.08.11
10:25
zzerro, сейчас чуть отредактировала. выводит, но не в самом низу страницы, а в 2-3 см от выше. вот еще проблема. после первой страницы ваще хрень какая-то, на выводится только одна область, а потом внизу логотип
75 Hostess_
of_Love
 
18.08.11
10:28
с параметрами страницы хрень какая-то
76 zzerro
 
18.08.11
10:30
(74)
1. Параметры страницы табличного документа нужно задавать до формирования.
2. Если у тебя есть вертикальные секции, и их высота зависит от присоединенных секций, то лучше сначала их вывести в отдельный таб док (целиком строку), а потом ее выводить в результирующий таб док, что бы можно было коректно определить высоту всей области.
3. Высота секции с логотипом должна быть по размеру картинки, ну или картинка должна быть внизу секции.
4. Высоту области разделитель попробуй сделать поменьше
77 zzerro
 
18.08.11
10:32
(74) Проверь, не выводятся ли у тебя там случайно горизонтальные разделители страниц и не стоит ли свойство области КонецСтраницы?
78 zzerro
 
18.08.11
10:33
Для параметров страницы обязательно укажи

ТабДок.ИмяПараметровПечати = "ИмяТвоихпараметров";
79 Hostess_
of_Love
 
18.08.11
10:37
zzerro, исправила. оказалось, что достаточно перенести установку масштаба повыше
80 Hostess_
of_Love
 
18.08.11
10:37
остается одна проблема с выводом
81 Hostess_
of_Love
 
18.08.11
10:40
82 Hostess_
of_Love
 
18.08.11
10:40
на первой странице еще есть место
83 Hostess_
of_Love
 
18.08.11
10:44
и по логике вариант 2 должен там же выводиться
84 Aprobator
 
18.08.11
10:45
(72) млин - на первой странице один раз попасть в конец. Затем получить эту область с ТабличногоДокумента куда она выведена. Ставим свойство КонецСтраницы и пихаем данную область в ПоторятьСтроки.
85 Aprobator
 
18.08.11
10:46
(73) если стоит, то - да.
86 dka80
 
18.08.11
10:50
87 Hostess_
of_Love
 
18.08.11
10:51
dka80, читай тему выше и увидишь эту же ссылку
88 zzerro
 
18.08.11
10:51
(86) ну да ну да, смотри (43)
89 zzerro
 
18.08.11
10:52
(81) нету доступа на радикал, посмотреть скриншот не могу
90 zzerro
 
18.08.11
10:53
(84) Что то я сильно сомневаюсь, что так прокатит
91 Hostess_
of_Love
 
18.08.11
10:53
http://upwap.ru/1672215  попробуй тут
92 Hostess_
of_Love
 
18.08.11
10:54
сейчас чуть изменила и теперь на второй странице больше  областей отображается
93 zzerro
 
18.08.11
10:55
(91) сложно сказать не видя макета и кода вывода
94 Aprobator
 
18.08.11
10:55
а принтер, формат и ориентация листа указаны до ПроверитьВывод? А то по скрину ощущения, что изначально вывод шел на альбомную ориентация, а потом бах и вдруг портрет.
95 Aprobator
 
18.08.11
10:56
(93) +100500. Я бы сказал, практически нереально.
96 ukolabrother
 
18.08.11
10:56
На макете создаешь область, в нее помещаешь картинку, выводишь ее. Главное чтобы картинка помещалась в область.
?????
97 Hostess_
of_Love
 
18.08.11
10:57
ukolabrother тему внимательней перечитай
98 zzerro
 
18.08.11
14:02
Ну как, есть подвижки?
99 Hostess_
of_Love
 
18.08.11
14:44
да. спасибо. уже все закончила. правда пришлось похимичить с проверкой вывода практически после каждой области %)
100 Learn_
 
18.08.11
14:45
100
101 Grusswelle
 
18.08.11
14:45
100!
102 Grusswelle
 
18.08.11
14:45
блин :-/
103 Learn_
 
18.08.11
14:45
ха-ха
104 Aprobator
 
18.08.11
14:50
(90) делал когда то. Работало. Отловить координаты области по строкам не так уж и сложно (Тупо высота до вывода финальной области и высота после). Потом все пихается в повторить строки и проверка отключается (тупо флаг - Проверять).
105 Hostess_
of_Love
 
18.08.11
14:51
это если высота строк фиксированная?
106 Aprobator
 
18.08.11
14:53
(105) нет количество строк в таблице. Щаз пример кину.
107 Aprobator
 
18.08.11
15:00

ПроверятьВывод = Истина;
....
ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее");
ОчереднаяВыводимаяОбласть = Макет.ПолучитьОбласть("Очередная");
Если ПроверятьВывод Тогда
МассивОбластейДляПроверки = Новый Массив;
МассивОбластейДляПроверки.Добавить(ОчереднаяВыводимаяОбласть);
МассивОбластейДляПроверки.Добавить(ПоследняяОбласть);
Если НЕ ТаблДок.ПроверитьВывод(МассивОбластейДляПроверки) Тогда
    ПерваяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы + 1;
    ТаблДок.Вывести(ПоследняяОбласть);
    ПоследняяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы;
ОбластьДляПовторения = ТаблДок.Область(ПерваяСтрокаПоследнейОбласти,,ПоследняяСтрокаПоследнейОбласти);
    ОбластьДляПовторения.КонецСтраницы = Истина;
    ТаблДок.ПовторятьПриПечатиСтроки = ОбластьДляПовторения;
    ТаблДок.ВывестиГоризонтальныйРазделительСтраниц();
    ТаблДок.ПовторятьПриПечатиСтроки(ОбластьДляПовторения);
    ПовторятьВывод = Ложь;
КонецЕсли;
КонецЕсли;
ТаблДок.Вывести(ОчереднаяВыводимаябласть);
108 Aprobator
 
18.08.11
15:01
э в условии ПовторятьВывод = ПроверятьВывод - ошибся чуток.
109 Aprobator
 
18.08.11
15:05
а млин и строка там задублировалась.
110 Aprobator
 
18.08.11
15:08

ПроверятьВывод = Истина;
....
ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее");
ОчереднаяВыводимаяОбласть = Макет.ПолучитьОбласть("Очередная");
Если ПроверятьВывод Тогда
МассивОбластейДляПроверки = Новый Массив;
МассивОбластейДляПроверки.Добавить(ОчереднаяВыводимаяОбласть);
МассивОбластейДляПроверки.Добавить(ПоследняяОбласть);
Если НЕ ТаблДок.ПроверитьВывод(МассивОбластейДляПроверки) Тогда
    ПерваяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы + 1;
    ТаблДок.Вывести(ПоследняяОбласть);
    ПоследняяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы;
ОбластьДляПовторения = ТаблДок.Область(ПерваяСтрокаПоследнейОбласти,,ПоследняяСтрокаПоследнейОбласти);
    ОбластьДляПовторения.КонецСтраницы = Истина;
    ТаблДок.ПовторятьПриПечатиСтроки = ОбластьДляПовторения;
    ТаблДок.ВывестиГоризонтальныйРазделительСтраниц(); // это грят необязательно если у области поставить ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее"); ПоследняяОбласть.КонецСтраницы = Истина; не проверял - смотри сама
КонеСтраницы = Истина, т.е. сразу после
    ПроверятьВывод = Ложь;
КонецЕсли;
КонецЕсли;
ТаблДок.Вывести(ОчереднаяВыводимаябласть);
111 Aprobator
 
18.08.11
15:10
да что ж я нынче )

ПроверятьВывод = Истина;
....
ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее");
ОчереднаяВыводимаяОбласть = Макет.ПолучитьОбласть("Очередная");
Если ПроверятьВывод Тогда
    МассивОбластейДляПроверки = Новый Массив;
 МассивОбластейДляПроверки.Добавить(ОчереднаяВыводимаяОбласть);
МассивОбластейДляПроверки.Добавить(ПоследняяОбласть);
Если НЕ ТаблДок.ПроверитьВывод(МассивОбластейДляПроверки) Тогда
    ПерваяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы + 1;
    ТаблДок.Вывести(ПоследняяОбласть);
    ПоследняяСтрокаПоследнейОбласти = ТаблДок.ВысотаТаблицы;
ОбластьДляПовторения = ТаблДок.Область(ПерваяСтрокаПоследнейОбласти,,ПоследняяСтрокаПоследнейОбласти);
    ОбластьДляПовторения.КонецСтраницы = Истина;
    ТаблДок.ПовторятьПриПечатиСтроки = ОбластьДляПовторения;
    ТаблДок.ВывестиГоризонтальныйРазделительСтраниц(); // это грят необязательно если у области поставить ПоследняяОбласть = Макет.ПолучитьОбласть("Последнее"); ПоследняяОбласть.КонецСтраницы = Истина; не проверял - смотри сама

    ПроверятьВывод = Ложь;
КонецЕсли;
КонецЕсли;
ТаблДок.Вывести(ОчереднаяВыводимаябласть);
112 Aprobator
 
18.08.11
15:11
вроде так теперь.
113 Hostess_
of_Love
 
18.08.11
15:59
спасибо) в следующий раз попробую этот метод))
114 zzerro
 
18.08.11
17:56
(112) Да как вы пытаетесь через "повторять при печати строки" то это вывести??? не получается у меня. На первой странице выводит правильно, а на всех следующих - сверху страницы (собственно как и должен).
115 Hostess_
of_Love
 
18.08.11
18:28
вот еще одна проблема с рисунками =/ есть таблица, в которую выводится описание компонентов (на скриншоте видно). надо выводить изображение к каждой номенклатуре если оно имеется в базе. никак не разберусь (вообще это мой первый опыт работы с картинками в табличном документе)
116 EvgeniuXP
 
18.08.11
19:56
проверить вывод работает - но нужно точно понимать как он работает, тоже раньше с этим сталкивался, но мне нужно было выводить разный текст на разных страницах внизу в виде колонтитула - а колонтитул везде одинаков на всех страницах, поэтому он не подходил, а конец страницы надо было определять.
117 zzerro
 
18.08.11
20:45
(115)Такого пока не пробовал, но наверно как-то так: в нужную ячейку вставь объект: рисунок. При формировании секции заполняй этот рисунок своей картинкой.
Где то видел отчеты с выводом картинки номенклатуры, поищи на инфостарте примеры
118 Hostess_
of_Love
 
19.08.11
09:32
zzerro там есть только платно =/
119 Aprobator
 
19.08.11
09:38
(114) хм - странно.
120 Aprobator
 
19.08.11
09:40
(114) попробуй свойство КонецСтраницы до вывода в таблдок установить. Писал с ходу по памяти и работу не проверял.
121 Aprobator
 
19.08.11
09:41
а не - туплю наверное. При случае проверю и выложу рабочий вариант. Сейчас некогда.
122 zzerro
 
19.08.11
10:24
(120)Я его в макете установил для области
123 Hostess_
of_Love
 
19.08.11
10:40
все, эт полный дурдом уже
124 Aprobator
 
19.08.11
11:43
(122) а в коде не ставил?
125 Hostess_
of_Love
 
19.08.11
14:02
а (115) так и не решена =(
126 Aprobator
 
19.08.11
14:39
Если речь о табличном документа, то лови пример из СП:

ТабДок = Новый ТабличныйДокумент;
МояКартинка = Новый Картинка("C:\My Documents\qwerty.bmp");
Рис=ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Индекс=ТабДок.Рисунки.Индекс(Рис);
ТабДок.Рисунки[Индекс].Картинка = МояКартинка;
ТабДок.Рисунки[Индекс].Расположить(ТабДок.Область("R1C1:R4C4"));
ТабДок.Показать();
127 Hostess_
of_Love
 
19.08.11
14:49
(126) пробовала несколько разных враиантов. сейчас разбираю код к печати прайс-листа с фото, может найду что-нибудь
128 Hostess_
of_Love
 
22.08.11
10:51
не хотит картинка к номенклатуре выводиться =/
оригинальный код:
           Если ВыводитьКартинки Тогда
               СекцияКартинка.Область(1, 1, 1, 1).ЦветФона = ЦветФона;
               Если НазваниеГруппировки = "Номенклатура" Тогда
                   ПустаяКартинка = Новый Картинка;
                   СекцияКартинка.Рисунки["Изображение"].Картинка = ПустаяКартинка;
                   //СекцияКартинка.Рисунки["Изображение"].ГраницаСверху = Ложь;
                   //СекцияКартинка.Рисунки["Изображение"].ГраницаСнизу = Ложь;
                   //СекцияКартинка.Рисунки["Изображение"].ГраницаСлева = Ложь;
                   //СекцияКартинка.Рисунки["Изображение"].ГраницаСправа = Ложь;
                   //СекцияКартинка.Рисунки["Изображение"].ВыводитьНаПечать = Ложь;
                   Если Выборка.Номенклатура.ЭтоГруппа = Ложь Тогда
                       Картинка = Выборка.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
                       Если Картинка <> Неопределено Тогда
                           СекцияКартинка.Рисунки["Изображение"].Картинка = Картинка;
                       Иначе
                           СекцияКартинка.Рисунки["Изображение"].Картинка = ПустаяКартинка;
                       КонецЕсли;
                   КонецЕсли;    
               КонецЕсли;        
           КонецЕсли;

мой код:
   Карт = Новый Картинка;
       Карт = Справочники.Номенклатура.НайтиПоНаименованию(Товар).ОсновноеИзображение.Хранилище.Получить();
       
       Если Справочники.Номенклатура.НайтиПоНаименованию(Товар).ОсновноеИзображение.Хранилище.Получить() <> Неопределено Тогда
           ОбластьКартинки.Параметры.Текст = "Нет фото";
       Иначе    
           ОбластьКартинки.Рисунки["Картинка"].Картинка = Карт;
       КонецЕсли;        
в первом случае нормально все выводится, а во втором ругается:
{ВнешняяОбработка.КоммерческоеПредложение.МодульОбъекта(202)}: Поле объекта не обнаружено (Картинка)
           ОбластьКартинки.Рисунки["Картинка"].Картинка = Карт;
129 Aprobator
 
22.08.11
10:59
код действительно оригинальный. Из (126) непонятно как картинки вставляются и как к ним обращаться?
130 Hostess_
of_Love
 
22.08.11
12:15
(129)там используется фиксированный макет. а у меня ячейки меняются каждый раз
131 Aprobator
 
22.08.11
12:17
(130) не вижу связи нефига.
132 Hostess_
of_Love
 
22.08.11
12:20
(131)не видишь и не надо
133 Aprobator
 
22.08.11
12:28
объясни какая связь то? Ну меняется месторасположения вывода картинки. Кстати в СП СекцияКартинка.Рисунки["Изображение"] вместо "изображение" используется индекс (число). Так в чем должна быть разница?
134 Hostess_
of_Love
 
22.08.11
18:08
сделала вывод этих картинок и тут же сбился вывод логотипа =/ он теперь выводтся практически по середине. если ставить на макете конецстраницы, то масштаб печати уменьшается до микроскопического =/
135 Hostess_
of_Love
 
23.08.11
10:13
ап
136 Aprobator
 
23.08.11
10:33
не иначе картинки вставляешь после того как весь документ сформирован.
137 Hostess_
of_Love
 
23.08.11
10:45
которые именно?
138 Aprobator
 
23.08.11
10:50
вообще. Я вижу отсюда какие именно?
139 zzerro
 
23.08.11
10:54
(137) Опубликуй полный код вывода области с наименованием номенклатуры и картинкой к ней
140 Hostess_
of_Love
 
23.08.11
10:58
(139)http://upwap.ru/1682009
так это выглядет при выводе на печать

   Таб = Новый Массив;
   
   ТабДокумент = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("КоммерческоеПредложение");
   ТабДокумент.автомасштаб = истина;
   
   
   ОбластьПодвалаДокумента = Макет.ПолучитьОбласть("ПодвалДокумента");
   
   ОбластьПустойСтроки = Макет.ПолучитьОбласть("ПустаяСтрока");
   
   Таб.Добавить(ОбластьПустойСтроки);
   Если ТабДокумент.проверитьвывод(Таб) Тогда
       ТабДокумент.Вывести(ОбластьПустойСтроки);
       Таб.Очистить();
   КонецЕсли;
   Таб.Добавить(ОбластьПодвалаДокумента);
   
   ЕстьСкидки = Ложь;
   Для каждого ВыборкаСтрокТовары Из СсылкаНаОбъект.Товары Цикл
       Если ЗначениеЗаполнено(ВыборкаСтрокТовары.ПроцентСкидкиНаценки) Тогда
           ЕстьСкидки = Истина;
           Прервать;
       КонецЕсли;
   КонецЦикла;
   
   //область заголовка
   ОбластьЗаголовка = Макет.ПолучитьОбласть("Заголовок");
   
   АдресКонтрагента = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(СсылкаНаОбъект.Контрагент, СсылкаНаОбъект.Дата);
   
   Если АдресКонтрагента.ЮридическийАдрес <> "" Тогда
       
       НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
       НаборЗаписей.Отбор.Объект.Установить(СсылкаНаОбъект.Контрагент);
       НаборЗаписей.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Адрес);
       НаборЗаписей.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
       НаборЗаписей.Прочитать();
       МассивПолей = НаборЗаписей[0];
       Регион  = МассивПолей.Поле2;
       Район   = МассивПолей.Поле3;
       Город   = МассивПолей.Поле4;
       НаселенныйПункт = МассивПолей.Поле5;
       Улица   = МассивПолей.Поле6;
       Дом     = МассивПолей.Поле7;
       Корпус  = МассивПолей.Поле8;
       Квартира= МассивПолей.Поле9;
       Индекс  = МассивПолей.Поле1;
       
       Если Город <> "" Тогда
           
           Если Регион = "" Тогда
               ОбластьЗаголовка.Параметры.РегионИГород = Город;
           Иначе    
               ОбластьЗаголовка.Параметры.РегионИГород = Регион + ", " + Город;
           КонецЕсли;
           
       Иначе
           
           Если Регион = "" Тогда
               ОбластьЗаголовка.Параметры.РегионИГород = НаселенныйПункт;
           Иначе
               ОбластьЗаголовка.Параметры.РегионИГород = Регион + ", " + НаселенныйПункт;
           КонецЕсли;
           
       КонецЕсли;
   Иначе
       ОбластьЗаголовка.Параметры.РегионИГород = "";
   КонецЕсли;
   ОбластьЗаголовка.Параметры.НаименованиеОрганизации = СсылкаНаОбъект.Контрагент.НаименованиеПолное;
   ОбластьЗаголовка.Параметры.КонтактноеЛицо = СсылкаНаОбъект.КонтактноеЛицоКонтрагента;
   
   ТабДокумент.Вывести(ОбластьЗаголовка);
   
   Таб.Вставить(Таб.Количество()-1,ОбластьЗаголовка);
   
   ОбластьКомПред = Макет.ПолучитьОбласть("КомПред");
   ТабДокумент.Вывести(ОбластьКомПред);
   
   Таб.Вставить(Таб.Количество()-1, ОбластьКомПред);
   
   Если ИдСпецификации = 0 Тогда
       
       ИдСпецификации = СсылкаНаОбъект.Товары.Выгрузить();
       ИдСпецификации.Свернуть("ИДСпецификации, Утвержден");        
       ИдСпецификации.Сортировать("Утвержден Убыв, ИДСпецификации");
       
       Пока ИдСпецификации.Количество()>1 Цикл
           ИдСпецификации.Удалить(ИдСпецификации.Количество()-1)
       КонецЦикла;    
       
       // область варианта
       ОбластьВарианта = Макет.ПолучитьОбласть("Вариант");
       ОбластьВарианта.Параметры.Вариант = "Вариант утвержден";
       ТабДокумент.Вывести(ОбластьВарианта);
       ТабДокумент = ВывестиТаблицуВПечатныйДокумент(ТабДокумент, 0, Макет, ЕстьСкидки, Таб);              
       ИдСпецификации = 0;
       
   ИначеЕсли ИдСпецификации = -1 Тогда
       
       ИдСпецификации = СсылкаНаОбъект.Товары.Выгрузить();
       ИдСпецификации.Свернуть("ИДСпецификации, Утвержден");
       ИдСпецификации.Сортировать("Утвержден Убыв, ИДСпецификации");
       
       Для Каждого СтрокаТаблицы Из ИдСпецификации Цикл
           
           Если СтрокаТаблицы.Утвержден Тогда    
               ДобавитьКОбластиВариант = " (утв.)";
           Иначе
               ДобавитьКОбластиВариант = "";
           КонецЕсли;
           
           // область варианта
           ОбластьВарианта = Макет.ПолучитьОбласть("Вариант");
           ОбластьВарианта.Параметры.Вариант = "Вариант " + СтрокаТаблицы.ИдСпецификации + ДобавитьКОбластиВариант;
           ТабДокумент.Вывести(ОбластьВарианта);
           
           ТабДокумент = ВывестиТаблицуВПечатныйДокумент(ТабДокумент, СтрокаТаблицы.ИдСпецификации, Макет, ЕстьСкидки, Таб);              
           ОбластьОписаниеВарианта = Макет.ПолучитьОбласть("ОписаниеВарианта");
           ФормаДок = СсылкаНаОбъект.ПолучитьФорму("ФормаДокумента");
           Коммент = ФормаДок.ЭлементыФормы.Комментарий.Значение;
           ОбластьОписаниеВарианта.Параметры.ПредставлениеОписания = Коммент;
           ТабДокумент.Вывести(ОбластьОписаниеВарианта);
           
           Таб.Вставить(Таб.Количество()-1,ОбластьОписаниеВарианта);
           Если не ТабДокумент.проверитьвывод(Таб) Тогда
               ВывестиНижнийЛоготип(ТабДокумент,ОбластьПодвалаДокумента,ОбластьПустойСтроки);
               Таб.Очистить();
               Таб.Добавить(ОбластьПодвалаДокумента);
           КонецЕсли;
           
       КонецЦикла;
       ИдСпецификации = -1;
   иначе
       
       // область варианта
       ОбластьВарианта = Макет.ПолучитьОбласть("Вариант");
       ОбластьВарианта.Параметры.Вариант = "Вариант " + НомерСпецификации;
       ТабДокумент.Вывести(ОбластьВарианта);
       
       ТабДокумент = ВывестиТаблицуВПечатныйДокумент(ТабДокумент, ИдСпецификации, Макет, ЕстьСкидки, Таб);  
       ОбластьОписаниеВарианта = Макет.ПолучитьОбласть("ОписаниеВарианта");
       ФормаДок = СсылкаНаОбъект.ПолучитьФорму("ФормаДокумента");
       Коммент = ФормаДок.ЭлементыФормы.Комментарий.Значение;
       ОбластьОписаниеВарианта.Параметры.ПредставлениеОписания = Коммент;
       ТабДокумент.Вывести(ОбластьОписаниеВарианта);
       
       Таб.Вставить(Таб.Количество()-1,ОбластьОписаниеВарианта);
       Если не ТабДокумент.проверитьвывод(Таб) Тогда
           ВывестиНижнийЛоготип(ТабДокумент,ОбластьПодвалаДокумента,ОбластьПустойСтроки);
           Таб.Очистить();
           Таб.Добавить(ОбластьПодвалаДокумента);
       КонецЕсли;
       
       
   КонецЕсли;    
   
   ОбластьОписание = Макет.ПолучитьОбласть("Описание");
   ТабДокумент.Вывести(ОбластьОписание);
   
   ОбластьОписаниеКомпонентов = Макет.ПолучитьОбласть("ОписаниеКомпонентов");
   СписокТоваров = ПолучитьСписокТоваров(ИдСпецификации);  
   
   Для Каждого Товар Из СписокТоваров Цикл
       ОбластьОписаниеКомпонентов.Параметры.Содержание = товар.номенклатура.НаименованиеПолное;
       ОбластьОписаниеКомпонентов.Параметры.ОписаниеИзСправочника = Строка(Справочники.Номенклатура.НайтиПоНаименованию(Товар).Комментарий);
       Карт =  Справочники.Номенклатура.НайтиПоНаименованию(Товар.номенклатура.Наименование).ОсновноеИзображение.Хранилище.Получить();
       Картц = Справочники.Номенклатура.НайтиПоНаименованию(Товар.номенклатура.Наименование).ОсновноеИзображение.Пустая();
       Если картц  Тогда
           ОбластьОписаниеКомпонентов.Рисунки.Очистить();
           ОбластьОписаниеКомпонентов.Параметры.Текст = "Нет фото";
       Иначе    
           ОбластьОписаниеКомпонентов.Рисунки.Картинка.Картинка = Карт;
       КонецЕсли;        
       
       ТабДокумент.Вывести(ОбластьОписаниеКомпонентов);
   КонецЦикла;
   
   Таб.Вставить(Таб.Количество()-1,ОбластьОписаниеКомпонентов);
   Если не ТабДокумент.проверитьвывод(Таб) Тогда
       ВывестиНижнийЛоготип(ТабДокумент,ОбластьПодвалаДокумента,ОбластьПустойСтроки);        
       Таб.Очистить();
       Таб.Добавить(ОбластьПодвалаДокумента);
   КонецЕсли;
   
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   
   ФормаОрг = Справочники.Организации.НайтиПоНаименованию(СсылкаНаОбъект.Организация).ПолучитьФорму("ФормаЭлемента");
   РуководительФИО = ФормаОрг.ЭлементыФормы.Руководитель.Значение;
   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(СсылкаНаОбъект.Организация, СсылкаНаОбъект.Дата, );
   Руководитель = Руководители.Руководитель;
   ОбластьПодвал.Параметры.ФамилияИОРуководителя = РуководительФИО;
   ОбластьПодвал.Параметры.ФамилияИООтветственного = СсылкаНаОбъект.Ответственный;
   ТабДокумент.вывести(ОбластьПодвал);
   
   Таб.Вставить(Таб.Количество()-1,ОбластьПодвал);
   Если ТабДокумент.проверитьвывод(Таб) или не ТабДокумент.проверитьвывод(таб) Тогда
       ВывестиНижнийЛоготип(ТабДокумент,ОбластьПодвалаДокумента,ОбластьПустойСтроки);
       Таб.Очистить();
   КонецЕсли;
   
   
   НомерПечать = ПолучитьНомер(СсылкаНаОбъект);
   
   ТабДокумент.ВерхнийКолонтитул.Выводить = Истина;
   ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "Исх. № " + НомерПечать + " от " + Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yy");
   ТабДокумент.НижнийКолонтитул.Выводить = Истина;
   ТабДокумент.НижнийКолонтитул.ТекстСправа = "Стр. [&НомерСтраницы] из [&СтраницВсего]";
   
   Возврат ТабДокумент;
141 zzerro
 
23.08.11
11:03
(140) У тебя масштаб при печати стоит Авто? Если да, то у тебя макет очень широкий получился и на страницу не влазит, из-за этого он её уменьшает
142 zzerro
 
23.08.11
11:03
+ Уреж ширину макета, наврено пустые колонки лишние есть
143 zzerro
 
23.08.11
11:09
Что это?
       Карт =  Справочники.Номенклатура.НайтиПоНаименованию(Товар.номенклатура.Наименование).ОсновноеИзображение.Хранилище.Получить();

Так не лучше:
Карт =  Товар.номенклатура.ОсновноеИзображение.Хранилище.Получить();
144 Hostess_
of_Love
 
23.08.11
11:11
(143)эту часть не я химичила))
145 zzerro
 
23.08.11
11:11
// А это как понимать?
Если ТабДокумент.проверитьвывод(Таб) или не ТабДокумент.проверитьвывод(таб) Тогда
146 Hostess_
of_Love
 
23.08.11
11:16
(145)думаешь я помню? xD
147 Aprobator
 
23.08.11
11:25
однозначно, ветку в юмор.
148 Hostess_
of_Love
 
23.08.11
11:25
(145)все, сделала. оказалось, что в макете хз где стоялакартинка и конецстраницы по вертикали.
149 Hostess_
of_Love
 
23.08.11
11:27
(147)тебя самого туда отправить надо =/ я только учусь, мне простительно
150 zzerro
 
23.08.11
11:28
(148) Молодца
151 zzerro
 
23.08.11
11:32
Но вот это ваще жесть:

 ФормаОрг = Справочники.Организации.НайтиПоНаименованию(СсылкаНаОбъект.Организация).ПолучитьФорму("ФормаЭлемента");
   РуководительФИО = ФормаОрг.ЭлементыФормы.Руководитель.Значение;
152 Hostess_
of_Love
 
23.08.11
11:35
(151)кхм.. эт, так сказать, неопытность( потом нашла как грамотнее сделать, эту часть кода закомментировала, а потом забыла удалить и она опять попала в код из-за shift+ctrl+/
153 Aprobator
 
23.08.11
11:40
(152) это не неопытность. Это полное непонимание. Т.е. шлепание кода на уровне - так работает и ладно.
(151) ага, а как тебе это?

...
   Таб.Добавить(ОбластьПустойСтроки); // Таб - массив
   Если ТабДокумент.проверитьвывод(Таб) Тогда
       ТабДокумент.Вывести(ОбластьПустойСтроки);
       Таб.Очистить();
   КонецЕсли;
   Таб.Добавить(ОбластьПодвалаДокумента); // типа подвал через строчку лепится?
...

я вообще не вкуриваю - какой смысл этого кода. Дальше, даже смотреть - страшно.
154 Hostess_
of_Love
 
23.08.11
11:51
(153)а ты когда начинал программировать сразу все вкуривал?
155 zzerro
 
23.08.11
11:52
(153)
Если пустая строка входит на страницу, тогда выводим, иначе будем выводить подвал ))
156 Hostess_
of_Love
 
23.08.11
11:57
(155)http://upwap.ru/1682105
попробуй объяснить вот это. почему вдруг на новую страницу перескакивает, хотя место есть?
157 Aprobator
 
23.08.11
12:14
(154) нет, я брал учебник и тетрадь и конспектировал, чтобы понять, что и где. А не учился программировать методом тупого тыка и терзанием форумов.
(156) очередная загадка из серии угадай код по картинке.
158 Aprobator
 
23.08.11
12:15
(155) иначе там нет. Подвал выводится всегда. Вот пустая строка над ним лепится, только если влезает на страницу. А потом, что и куда там выводится. Даже боюсь представить себе полный код этого безобразия.
159 Ирис_яркая
 
23.08.11
12:21
Ладно вам)

(0) молодец)) в любом случае))
160 Hostess_
of_Love
 
23.08.11
12:23
(157)кому как удобнее. я учись методом проби ошибок, а не зубрежкой
161 Aprobator
 
23.08.11
12:31
(160) результат такого подхода мы видим в этой ветке. Элементарный код пишется уже 6 дней. И это еще не конец. Кончится тем, в идеале, что найдется какой нибудь доброхот и тупо выполнит всю работу за 2 часа.
162 Hostess_
of_Love
 
23.08.11
12:37
(161)значит сейчас не идеальная концовка.