Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
Автор: Administrator Категория: Автоматизация
Дата публикации Просмотров: 1574
Печать


Сканирование, хранение и печать сертификатов продукции[Обновлено 17.01.2011]

I. Сканирование.

 

Сканирование происходит с помощью WIA (Windows Image Acquisition). В Windows 7 соответствующие dll уже входят в комплект, а для XP нужно качать и регистрировать (с сайта Microsoft, где в архиве есть инструкция). Код для сканирования из 1с следующий:

 


Image = Новый COMОбъект("WIA.ImageFile"); //создаем объект "Изображения" в WIA для дальнейшей работы с ним
DevManager = Новый COMОбъект("WIA.CommonDialog"); //а это диалог сканирования
Image = DevManager.ShowAcquireImage(); //записываем сканированное изображение
IP = Новый COMОбъект("WIA.ImageProcess"); //создаем фильтр для сохранения изображения
IP.Filters.Add(IP.FilterInfos("Convert").FilterID);
IP1 = IP.Filters(1);
Для
К = 1 По IP1.Properties.Count Цикл
Если
IP1.Properties(К).Name = "FormatID" Тогда
IP1.Properties(К).Value = "{B96B3CAF-0728-11D3-9D7B-0000F81EF32E}"; //конвертируем в PNG
Прервать;
КонецЕсли;
КонецЦикла;

Image = IP.Apply(Image); //применяем фильтр на изображение

 

После этого можно сохранить объект Image на диск и прочитать её уже средствами 1с:


УдалитьФайлы(ИмяФайла); //удалим старый файл
Image.SaveFile(ИмяФайла); //сохраним на жесткий диск объект WIA
ЭлементыФормы.СертификатИзображение.Картинка = Новый Картинка(ИмяФайла); // Читаем картинку с жесткого диска

Полученное изображение можно повертеть с помощью того же WIA:


Если Image = Неопределено Тогда
Возврат;
КонецЕсли;

IP = Новый COMОбъект("WIA.ImageProcess"); //создаем объект WIA для редактирования изображения
IP.Filters.Add(IP.FilterInfos("RotateFlip").FilterID); //создаем WIA-фильтр для поворота
IP1 = IP.Filters(1);
Для
К = 1 По IP1.Properties.Count Цикл
Если
IP1.Properties(К).Name = "RotationAngle" Тогда
IP1.Properties(К).Value = Градусов; //вертеть можно на 90,180 и 270 грудосов
Прервать;
КонецЕсли;
КонецЦикла;

Image = IP.Apply(Image); //применяем фильтр на изображение

 

II. Сохранение

Наиболее естественным местом хранения изображения сертификата - это справочник Хранилище дополнительной информации с привязкой к номенклатуре. В зависимости от разных обстоятельств один и тот же сертификат может быть привязан к различным позициям номенклатуры,  к различными характеристиками и сериями одной номенклатуры. Хранилище дополнительных данных не позволяет устанавливать соответствие между списком номенклатуры/характеристиками/сериями. Поэтому алгоритм хранения информации выглядит следующим образом:

1.Для сертификата состаляеся таблица: Номенклатура, характеристика, серия.

2.При записи сертификата изображение сохраняется в хранилище и привязывается к первой по списку номенклатуре.

3.Для каждого номенклатуры по списку ищется связанный элемент справочника Хранилище дополнительной информации под именем ТаблицаДляСертификатов (если его нет, то создается). В этом хранилище помещается таблица Номенклатура, характеристика, серия, ссылка на хранилище изображение сертификата. В эту таблицу добавляются новые данные и она снова записывается в хранилище.

Кроме того, в таблицу добавляется дополнительная информации о сертификате: дата начала, дата окончания и описание.

Таким образом, получаем 2 элемента Хранилища дополнительной информации: сами изображения сертификатов и таблицы, в которых хранится дополнительная  и более подробная о принадлежности сертификатов относительно характеристик и серий.

 

III. Печать.

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

 

З.Ы. Вот по этим ссылкам можно посмотреть пример, что ещё можно сделать с помощью WIA с картинками.

http://msdn.microsoft.com/en-us/library/ms630819(VS.85).aspx
http://www.codeproject.com/KB/shell/resize_image_script_all.aspx

Ссылка на обработку 1C: http://infostart.ru/public/79794/files/

Автор: © Александр Медведев (anig99)

(Информация с ресурса http://infostart.ru)

 

Add comment


Security code
Refresh

Последние новости

Written on 16/05/2012, 10:29 by admin
ob-otvetstvennosti-i-bezotvetstvennosti-ili-kak-opredelit-doljnostnye-obyazannosti-rabotnikovПоговорим о должностных обязанностях. Казалось бы, что тут может быть интересного?! Обязанности – они, как говорится, и в Африке обязанности. Нет ничего...
Written on 06/05/2012, 01:19 by admin
upravlenie-znaniyami-sozdanie-bazy-znanii-a-chto-na-praktikeПродолжая тему двух предыдущих постов (первый и второй), в которых проводилось исследование на тему управления знаниями и были рассказаны основные...
Written on 05/05/2012, 22:26 by admin
kak-pobedit-vorovstvo-sobstvennyh-sotrudnikovТы скажи нам, Карамзин,Как там Тверь, Калуга, Клин?И ответил Карамзин: «Да везде воруют, БЛИН!»Как вы полагаете, кто способен нанести бизнесу больший...
Written on 05/05/2012, 22:14 by admin
kak-naiti-chujoe-myloРуководство содержит описание поиска личных и корпоративных email различными методами с использованием специальных сервисов и поисковых систем....
Written on 05/05/2012, 22:10 by admin
prognozirovanie-prodaj-i-motivaciya-truda«…Конечно, можно платить и от продаж. Но лучше платить людям за то, что они делают на самом деле».   Территориальный менеджер крупной табачной...

Последние сообщения

  • linx 12.05.2012 13:49
    а как тоже самое сделать через политики в домене?

    Read more...

     
  • Super User 27.04.2012 09:03
    Вот пример как можно обработать перетаскивание из Excel: Отключаем стандартную обработку у табличного ...

    Read more...

     
  • Super User 27.04.2012 09:03
    1) Нужно установить свойство "РазрешитьНачал оПеретаскивания " у табличного поля из которого будем ...

    Read more...

     
  • Unknown181538 06.04.2012 14:36
    Я имею ввиду текст, который пишется для обработки в режиме пользователя. По умолчанию обработка ...

    Read more...

     
  • Administrator 06.04.2012 14:29
    Уважаемый, Unknown181538. По первому пункту согласен, спасибо. Видимо оператор "выполнить" "остался" ...

    Read more...

Login Form