Развитие разработки http://avprog.ru/public/138263/ для 1С 8.х
Что может:
Программно добавлять элементы ActiveX в табличный документ. Другими словами: размещать в произвольном месте в табличном документе картинки с прозрачным фоном, с возможностью произвольного смещения картинки по оси X/Y, c возможностью поворота картинки на произвольный градус. Поддержка вывода 81 типа штрих-кодов, в том числе двухмерные QR Code, Data Matrix и т.д. (корректно кодирует кириллицу).
Кроме того, при отсутствии зарегистрированного ActiveX в системе - обработка сама скопирует и зарегистрирует необходимый ActiveX (в ДЕМО присутствуют ActiveBMP и ActiveText).
Список поддерживаемых ActiveX ограничен (подробнее см. ниже). Для добавления в поддержку нового элемента ActiveX необходимо написать запрос автору.
Где использовать:
- при вставке подписей и печатей
- при вставке фирменных логотипов
- для реализации корпоративного оформления документов
- при вставке текста
- при вставке штрих-кодов (список доступных типов ШК см. ниже)
- и т.д.
Список поддерживаемых ActiveX:
1. ActiveX элемент управления bmp_1c.ocx (ActiveBMP) - автор Морев Андрей (Z1) (http://1c.proclub.ru/modules/mydownloads/personal.php?lid=2725&cid=111) - используется непосредственно для отображения картинок в таблице (обязательно)
2. ActiveX GFLAx (http://www.xnview.com/en/download_gfl.html) - для возможности произвольного поворота вставляемого изображения и конвертации входящего изображения в BMP (опционально)
3. ActiveX элемент управления text_1c.ocx (ActiveText) - автор Морев Андрей (Z1) (http://1c.proclub.ru/modules/mydownloads/personal.php?cid=129&lid=2726) - используется непосредственно для отображения картинок в таблице (опционально)
4. ActiveX элемент управления OcvitaBarcode.ocx - Разработчик: Ocvita (http://ocvita.ru/content/view/89/1/) На основе библиотеки zint (www.sourceforge.net/projects/zint) - используется для отображения ШК всевозможных типов в таблице
5. ActiveX элемент управления V8.Barcod - стандартный элемент управления "1С.V8.Печать штрих-кодов" для 1С 8.х
При наличии GFLAx - входящий файл картинки может быть практически любого графического формата, иначе - только BMP.
Для добавления в поддержку нового элемента ActiveX необходимо написать запрос автору.
Свойства:
ЕстьПроизвольноеСмещение - использовать произвольное смещение при размещении объекта в табличном документе (булево);
ПроизвольноеСмещениеНач_X, ПроизвольноеСмещениеКон_X, ПроизвольноеСмещениеНач_Y, ПроизвольноеСмещениеКон_Y - границы в пикселях для произвольного смещения (по умолчанию по 5 мм в каждую сторону);
ЕстьПроизвольныйПоворот - использовать поворот на произвольный градус при размещении объекта в табличном документе (булево);
ПроизвольныйПоворотНач, ПроизвольныйПоворотКон - границы для ограничения градуса поворота (по умолчанию от -15 до 15 градусов);
Методы:
Функция ДобавитьИзображение(Таб, Лево, Верх, Право, Низ, Тип, Путь, Макет) - добавление стандартного изображения
Функция ДобавитьТекст(Таб, Лево, Верх, Право, Низ, Тип, Текст) - добавление стандартного текста
Функция ДобавитьСтандартныйОбъект(Таб, Лево, Верх, Право, Низ, Тип, ТипОбъекта) - добавление стандартного объекта
Функция ДобавитьИзображение_Актив(Таб, Лево, Верх, Право, Низ, Тип, Путь, Макет) - добавление ActiveBMP
Функция ДобавитьТекст_Актив(Таб, Лево, Верх, Право, Низ, Тип, Текст) Текст- добавление ActiveText
Функция ДобавитьШК_1С8(Таб, Лево, Верх, Право, Низ, Тип, ШК) - добавление стандартного "1С.V8.Печать штрих-кодов"
Функция ДобавитьШК_Оквита(Таб, Лево, Верх, Право, Низ, Тип, ШК, ТипШК) - добавление штрих-кода (с помощью OcvitaBarcode)
Функция ДобавитьActiveX(Таб, Лево, Верх, Право, Низ, Тип, Имя) - добавление произольного ActiveX (в обработке должна быть поддержка данного ActiveX)
Все функции возвращают ссылку на Рисунок табличного документа (тип "РисунокТабличногоДокумента"). Доступ к свойствам ActiveX осуществляется через СсылкаНаРисунок.Объект
Опсание параметров:
Таб - ссылка на табличный документ, куда добавляется объект
Лево, Верх, Право, Низ - координаты добавления объекта в таблицу (см. "тип")
Тип - тип системы координат:
0 - пиксельная;
1 - табличная;
2 - левый верхний угол задается в табличной системе, в (право,низ) - задается смещение относительно левого верхнего угла
3 - то же самое что и п.2, только смещение укзывается в реальных мм (при автомасштабе - вычисляется реальная ширина листа при печати и размер)
Путь - путь к файлу изображения, либо расширение файла при непустом Макете
Макет - Макет с двоичными данными (с картинкой)
Текст - текст для вывода
ШК - штрих-код для добавления в таблицу
ТипШК - тип штрих-код для добавления в таблицу, можно передавать цифровой код или строковое название (доступные типы ШК см. ниже)
Имя - имя ActiveX (должен быть среди списка поддерживаемых обработкой ActiveX)
Пример добавления в таблицу подписи с печатью
...
ТабДок = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("Макет");
//вывод самого отчета
...
ТабДок.АвтоМасштаб = Истина;
//подсоединим внешнюю обработку "ИзображениеДляТаблицы"
//считаем что необходимая нам обработка лежит там же где и текущая обработка с примером
Обр = ВнешниеОбработки.Создать(СтрЗаменить(ЭтотОбъект.ИспользуемоеИмяФайла,"ПримерИспользования","ИзображениеДляТабличногоДокументаДЕМО"));
//добавим двумерный ШК для упрощения документооборота с клиентами
Рис = Обр.ДобавитьШК_Оквита(ТабДок, 27, 2, 40, 40, 2, ТекстДляШК , "QR Code");
//для печати необходим поворот изображения и смещение + реальные размеры
//установим признак произвольного вращения (по умолчанию от -15 до 15 градусов)
Обр.ЕстьПроизвольныйПоворот = Истина;
//установим признак произвольного смещения (по умолчанию от -5 до 5 мм)
Обр.ЕстьПроизвольноеСмещение = Истина;
Рис = Обр.ДобавитьИзображение_Актив(ТабДок, 13, 33, 40, 40, 3, "jpg",ЭтотОбъект.ПолучитьМакет("ТипаПечать"));
//для подписей необходим минимум смещений по оси Y и без поворота + реальные размеры
Обр.ЕстьПроизвольныйПоворот = Ложь;
Обр.ПроизвольноеСмещениеНач_Y = -2;
Обр.ПроизвольноеСмещениеКон_Y = 1;
Рис = Обр.ДобавитьИзображение_Актив(ТабДок, 20, 28, 55, 40, 3, "gif",ЭтотОбъект.ПолучитьМакет("Подпись_дир"));
Рис = Обр.ДобавитьИзображение_Актив(ТабДок, 21, 35, 33, 13, 3, "gif",ЭтотОбъект.ПолучитьМакет("Подпись_ГБ"));
Рис = Обр.ДобавитьИзображение_Актив(ТабДок, 19, 38, 43, 20, 3, "gif",ЭтотОбъект.ПолучитьМакет("Подпись_менеджер"));
//вывод на экран
ТабДок.Показать("Пример использования обработки ""ИзображениеДляТабличногоДокумента.epf""");
...
Почему платная:
Закономерный вопрос - почему данная разработка платная, если практически аналогичная по функционалу разработка на 7.7 - бесплатна? Ответ: в данной разработке использована другая методика подключения элементов ActiveX. Если в 7.7 можно было воспользоваться TableDoc.dll для добавления объекта в таблицу, то в 8.2 добавление объекта в табличный документ осуществляется стандартными средствами! Проблема в том что при программном добавлении объекта в табличный документ нет программных возможностей для привязки к этому объекту конкретного элемента ActiveX. Автор потратил немало времени, прежде чем нашел решение этого вопроса. Поэтому подчеркиваю: данная разработка платная за счет решения вышеописанной проблемы, а не за счет предоставление доступа к бесплатным ActiveX. Набор поддерживаемых ActiveX может быть любым, соответсвенно и решаемые данной обработкой задачи могут варьироваться.
Отличие от "предка" на 7.7:
1. Самый главный плюс решения на 8.х: перед добавлением объекта в табличный документ не надо выводить его на экран. Это основное неудобство решения на 7.7 при выводе сразу на принтер.
2. Реализована возможность авторегистрации недостающего в системе ActiveX. Для этого необходимо просто добавить файл с данным элементом в список Макетов обработки (как ДвоичныеДанные). При выполнении добавления элемента в табличный документ, обработка проанализирует отсутствие регистрации данного элемента в системе и при наличии этого элемента в списке Макетов обработки - скопирует файл с элементом ActiveX в каталог программы и зарегистрирует его. После чего добавит уже зарегистрированный элемент в табличный документ.
3. Возможность указания реальных размеров добавляемого объекта в мм, независимо от ширины табличного документа.
4. Сама структура обработки сделана максимально удобно для добавления в поддержку нового ActiveX (программный код обработки при этом не модифицируется).
Ограничение ДЕМО версии:
ДЕМО версия ограничена количеством рисунков в табличном документе равным одному. Если рисунков более одного - обработка сообщит об этом и не станет добавлять элемент.
Файлы обработки:
- Programmnoe dobavlenie ActiveX (izobrazhenijtekstaSHK i t.d.) v tablichnyj dokument_DEMO.zip Для скачивания нужна регистрация