helpf.pro
Регистрация

v8: Печать сертификатов

guilt
13.12.2012 15:30Прочитано: 4640
Здравствуйте. Есть нетиповая бухгалтерия (кардинально отличающаяся от российской), в которой ведется оптово-розничный учет медикаментов. При отгрузке товара вместе со счет-фактурой необходимо печатать сертификаты. Клиент просит, чтобы все сертификаты были в одном табличном документе. Написал следующий код:

Код 1C v 8.х
 ТабДокумент = Новый ТабличныйДокумент;

Макет = ПолучитьМакет("Макет");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка|Основная");

Каталог = Константы.КаталогДополнительнойИнформации.Получить();

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Различные
| РасходнаяНакладаяМедикаментыТаблицаТоваров.Серия.Сертификат КАК Сертификат
|ИЗ
| Документ.РасходнаяНакладаяМедикаменты.ТаблицаТоваров КАК РасходнаяНакладаяМедикаментыТаблицаТоваров
|ГДЕ
| РасходнаяНакладаяМедикаментыТаблицаТоваров.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка",Ссылка);

Выборка = Запрос.Выполнить().Выбрать();

ПервыйПроход = Истина;

Пока Выборка.Следующий() Цикл

Рисунок = ОбластьШапка.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 0;
Рисунок.Высота = 310;
Рисунок.Ширина = 200;
Рисунок.Лево = 0;


Путь = Каталог + "\" + СокрЛП(Выборка.Сертификат);
Рисунок.Картинка = Новый Картинка(Путь);
Рисунок.РазмерКартинки = РазмерКартинки.Пропорционально;

Если ПервыйПроход Тогда
ТабДокумент.Вывести(ОбластьШапка);
Иначе
ТабДокумент.Присоединить(ОбластьШапка);
КонецЕсли;

ТабДокумент.ВывестиВертикальныйРазделительСтраниц();

ПервыйПроход = Ложь;

КонецЦикла;

ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ТолькоПросмотр = Ложь;
ТабДокумент.ОтображатьЗаголовки = Ложь;
ТабДокумент.ОтображатьСетку = Ложь;

ТабДокумент.Показать();


Сами сертификаты в конфигурации не храняться, храняться лишь пути к этим сертификатам. Если на печать попадает один сертификат, то все хорошо, если 2 и более, то во-первых вместо них выходит пустота, а во-вторых они "залезли" на одну страницу. Более того, если повторно распечатать, то все сертификаты пустые. Объясните, пожалуйста, где я допустил ошибку. Спасибо.
Изменено 13.12.12 15:34:48
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
13.12.2012 16:03Ответ № 1
(0) guilt, сделай не программное добавление рисунка, а выведи его в область и при выводе обращайся к нему
guilt
13.12.2012 18:28Ответ № 2
Код 1C v 8.х
 Пока Выборка.Следующий() Цикл

//Рисунок = ОбластьШапка.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
//Рисунок.Верх = 0;
//Рисунок.Высота = 310;
//Рисунок.Ширина = 200;
//Рисунок.Лево = 0;


Путь = Каталог + "\" + СокрЛП(Выборка.Сертификат);
ОбластьШапка.Рисунки.D1.Картинка = Новый Картинка(Путь);
ОбластьШапка.Рисунки.D1.РазмерКартинки = РазмерКартинки.Растянуть;

Если ПервыйПроход Тогда
ТабДокумент.Вывести(ОбластьШапка);
Иначе
ТабДокумент.Присоединить(ОбластьШапка);
КонецЕсли;

ТабДокумент.ВывестиВертикальныйРазделительСтраниц();

ПервыйПроход = Ложь;

КонецЦикла;


Изменил, результат тот же. На печать вывожу 2 сертификата, второй пустой. При повторной печати, оба пустые. И странно, почему они на одной стороне выводятся.
guilt
13.12.2012 18:34Ответ № 3
Кстати, с размерами картинки поигрался, результаты те же.
E_Migachev
13.12.2012 18:55Ответ № 4
(3) guilt, что значит на одной стороне?
guilt
13.12.2012 19:06Ответ № 5
В смысле на одном листе. Картинку растянул на всю область. Когда печатаю один сертификат, все замечательно, когда 2 и более - косяки.
Кстати, формат сертификатов BMP, заставить перейти на другой не вариант, там этих сертификатов туева хуча.
http://s018.radikal.ru/i526/1212/41/fbe33d9d2252.jpg
http://s017.radikal.ru/i424/1212/f3/09ab2412081e.jpg
E_Migachev
13.12.2012 19:24Ответ № 6
а попробуй без присоединить, т.е. подряд выводи
guilt
13.12.2012 19:56Ответ № 7
Так выводит 1 сертификат на лист, но 2-ой сертификат выводит пустым листом. Да и одно из требований заказчика, чтобы вывод шел по-горизонтали
E_Migachev
13.12.2012 20:09Ответ № 8
(7) guilt, а на втором выводит элемент рисунок? или вообще пустота?
guilt
13.12.2012 20:21Ответ № 9
В общем "наколхозил", подогнал рисунок под A4, отключил автомасштаб, теперь выводит как надо. Но вторая проблема осталась. На втором выводит именно элемент рисунок, а в нем пустую картинку. Повторюсь, если повторно распечатать, то выводит и первый и второй рисунок с пустыми картинками. В отладчике смотрел, путь берет верный.
guilt
13.12.2012 20:32Ответ № 10
Поменял на jpg, все супер. У меня, к сожалению, только 2 сертификата. Непонятно, то ли 1С так работает с BMP, то ли файлы кривые, то ли руки ))
E_Migachev
14.12.2012 10:16Ответ № 11
(10) guilt, возможно BMP очень тяжелые, конвертируй все в jpg
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.