Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:35

Автоматически расставлялась печать и подпись организации в счета.

Автор Igor100500, 27 дек 2016, 15:11

0 Пользователей и 1 гость просматривают эту тему.

Igor100500

Здравствуйте. Задача такая - в УПП, есть несколько организаций( у каждой своя печать и подпись). Нужно чтобы при печати счетов она автоматически выводилась. (стандратного изменения макета как в 8.3 - нет) где можно в организации загружать подпись и печать)).
Сделал так:
В справочнике организации, заходим в нужную нам организацию и загружаем в файлы(временное хранилище) наши картинки - печать и подпись.
потом рисуем макет и т.д
пишем код для того чтобы получить ссылку на картинку(Печать)
Функция ЗапросФайла(Объект,Название,ПустаяСсылкаОбСпр) Экспорт
 
  ЗапросНаФайл=Новый Запрос;
  ЗапросНаФайл.Текст="ВЫБРАТЬ
                     | ХранилищеДополнительнойИнформации.Ссылка
                     |ИЗ
                     | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                     |ГДЕ
                     | ХранилищеДополнительнойИнформации.Объект = &Объект
                     | И ХранилищеДополнительнойИнформации.Наименование = &Наименование";
  ЗапросНаФайл.Параметры.Вставить("Объект",Объект);
  ЗапросНаФайл.Параметры.Вставить("Наименование",Название);
  ЗапросНаФайлВыполнить=ЗапросНаФайл.Выполнить();
  Если ЗапросНаФайлВыполнить.Пустой() Тогда
   Возврат(ПУстаяСсылкаОбСпр);
  Иначе
   Результат=ЗапросНаФайлВыполнить.Выбрать();
   Пока Результат.Следующий() Цикл
    Возврат(Результат.Ссылка);
   КонецЦикла;
  КонецЕсли;
КонецФункции


Потом в процедуре печати
ПустаяСсылкаОбСпр=Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка();
СсылкаНаФайл=ЗапросФайла(Объект.Организация.Ссылка,"Печать",ПустаяСсылкаОбСпр);
Если НЕ СсылкаНаФайл=ПустаяСсылкаОбСпр Тогда
ПечатьКартинка=СсылкаНаФайл.Хранилище.Получить();
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Высота = 40;
Рисунок.Ширина = 40;
Рисунок.Верх = 0;
Рисунок.Лево = 110;
Рисунок.Линия=новый линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Рисунок.ГраницаСверху=Ложь;
Рисунок.ГраницаСлева=Ложь;
Рисунок.ГраницаСнизу=Ложь;
Рисунок.ГраницаСправа=Ложь;
Рисунок.ВыводитьНаПечать=Истина;
Рисунок.РазмерКартинки = РазмерКартинки.Растянуть;
Рисунок.Узор=ТипУзораТабличногоДокумента.БезУзора;

Он находит картинку, но не выводит.
Чего не хватает?

alexandr_ll

Сделать несколько готовых макетов на каждую организацию с внедренными сканами подписи и печати, в зависимости от выбранной организации выводить нужный макет. Думаю, внешняя печатная форма.

Igor100500

Да, если бы было 2-4 организации
а когда там 15-20.
+ когда надо будет что-то менять это редактировать макеты, а так обновил картинку во временное хранилище и все.

alexandr_ll

Цитата: Igor100500 от 27 дек 2016, 15:11
Здравствуйте. Задача такая - в УПП, есть несколько организаций( у каждой своя печать и подпись). Нужно чтобы при печати счетов она автоматически выводилась. (стандратного изменения макета как в 8.3 - нет) где можно в организации загружать подпись и печать)).
Сделал так:
В справочнике организации, заходим в нужную нам организацию и загружаем в файлы(временное хранилище) наши картинки - печать и подпись.
потом рисуем макет и т.д
пишем код для того чтобы получить ссылку на картинку(Печать)
Функция ЗапросФайла(Объект,Название,ПустаяСсылкаОбСпр) Экспорт
 
  ЗапросНаФайл=Новый Запрос;
  ЗапросНаФайл.Текст="ВЫБРАТЬ
                     | ХранилищеДополнительнойИнформации.Ссылка
                     |ИЗ
                     | Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
                     |ГДЕ
                     | ХранилищеДополнительнойИнформации.Объект = &Объект
                     | И ХранилищеДополнительнойИнформации.Наименование = &Наименование";
  ЗапросНаФайл.Параметры.Вставить("Объект",Объект);
  ЗапросНаФайл.Параметры.Вставить("Наименование",Название);
  ЗапросНаФайлВыполнить=ЗапросНаФайл.Выполнить();
  Если ЗапросНаФайлВыполнить.Пустой() Тогда
   Возврат(ПУстаяСсылкаОбСпр);
  Иначе
   Результат=ЗапросНаФайлВыполнить.Выбрать();
   Пока Результат.Следующий() Цикл
    Возврат(Результат.Ссылка);
   КонецЦикла;
  КонецЕсли;
КонецФункции


Потом в процедуре печати
ПустаяСсылкаОбСпр=Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка();
СсылкаНаФайл=ЗапросФайла(Объект.Организация.Ссылка,"Печать",ПустаяСсылкаОбСпр);
Если НЕ СсылкаНаФайл=ПустаяСсылкаОбСпр Тогда
ПечатьКартинка=СсылкаНаФайл.Хранилище.Получить();
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Высота = 40;
Рисунок.Ширина = 40;
Рисунок.Верх = 0;
Рисунок.Лево = 110;
Рисунок.Линия=новый линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Рисунок.ГраницаСверху=Ложь;
Рисунок.ГраницаСлева=Ложь;
Рисунок.ГраницаСнизу=Ложь;
Рисунок.ГраницаСправа=Ложь;
Рисунок.ВыводитьНаПечать=Истина;
Рисунок.РазмерКартинки = РазмерКартинки.Растянуть;
Рисунок.Узор=ТипУзораТабличногоДокумента.БезУзора;

Он находит картинку, но не выводит.
Чего не хватает?
Вот переменная ПечатьКартинка, она как в дальнейшем используется при выводе на печать?
Наверное, должна быть еще строка типа
Рисунок.Картинка=ПечатьКартинка;
Примерно как в синтакс-помощнике в примере к РисунокТабличногоДокумента.Расположить

Igor100500

Спасибо. Именно этого не хватало.
ПустаяСсылкаОбСпр=Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка();
СсылкаНаФайл=ЗапросФайла(Объект.Организация.Ссылка,"Печать",ПустаяСсылкаОбСпр);
Если НЕ СсылкаНаФайл=ПустаяСсылкаОбСпр Тогда
ПечатьКартинка=СсылкаНаФайл.Хранилище.Получить();
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Высота = 40;
Рисунок.Ширина = 40;
Рисунок.Верх = 0;
Рисунок.Лево = 110;
Рисунок.Линия=новый линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Рисунок.ГраницаСверху=Ложь;
Рисунок.ГраницаСлева=Ложь;
Рисунок.ГраницаСнизу=Ложь;
Рисунок.ГраницаСправа=Ложь;
Рисунок.ВыводитьНаПечать=Истина;
Рисунок.Картинка= Новый Картинка(ПечатьКартинка);
Рисунок.РазмерКартинки = РазмерКартинки.Растянуть;
Рисунок.Узор=ТипУзораТабличногоДокумента.БезУзора;
КонецЕсли;


Всем спасибо. Вопрос закрыт.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск