gifts2017

Создание ШК в Word средствами 1С (OLE)

Опубликовал Andrey Андрей (PointAnd) в раздел Программирование - Практика программирования

Создание ActiveX BarCode в Word из 1С 8.1 по OLE

Ищет в документе Word "тег" - [~ПометкаДоговор~], соответсвенно если есть, тогда вставляем ШК.

 

Что нужно для работы:

 1CBarCod - "V8.Barcod" (нужно проинcталить, чтобы все это прописалось в Word).

 

текст процедуры:

 

МС = Новый COMОбъект("Word.Application");
Док = МС.Documents;
файл = Док.Add(КаталогВременныхФайлов()+"tmp.doc");
ActDoc=МС.ActiveDocument;
МС.Visible=0;

//Ищем "тег" 
ЕстьПометка = ActDoc.Content.Find.Execute("[~ПометкаДоговор~]");
Если ЕстьПометка = 0 Тогда
      Возврат;
Иначе
 

//Удаляем "тег", теперь он нам не нужен

Поиск = ActDoc.Content.Find;
Поиск.Execute("[~ПометкаДоговор~]",,,,,,,,,"",2);

// вставляем ActivX  
Попытка
   МС.Selection.InlineShapes.AddOLEObject("V8.Barcod.1", "" , False, False);//,"",0,"","");
Исключение
      Сообщить("Не установлена компонента V8.Barcod.1",СтатусСообщения.Важное);
КонецПопытки;


Если ActDoc.InlineShapes.Count > 0 Тогда//на всякий случай проверяем, вставился ли наш ActivX  

//заполняем нужный параметры
      Obj = ActDoc.InlineShapes.Item(0);
      bar = Obj.OleFormat;
      bar.Object.ТипКода = 4;//тип ШК, в данном случае COD128
      bar.Object.Сообщение = Формат(ВыбНоменклатура.Код,"ЧГ=0")+" "+НомерДоговора;
КонецЕсли; 
 
 
 МС.Visible=1;

Может это кому-то будет интересно. 

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Толмачев (sss999) 07.04.10 12:22
написали бы для чего это нужно и что это такое а то как то непонятно
2. Andrey Андрей (PointAnd) 07.04.10 13:43
Что не понятного?
Эта процедура выполняет замену "тега" на ActiveX в WORD, а уж где это применять дело личное каждого.
Я например это применяю при печати договора из шаблона, т.к. у каждого договора есть штрих код для идентификации.
3. Александр (Aragorn) 03.08.10 12:10
word 2007 и window 7 пишет что данный объект не обнаружен в системе. Хотя из 8.1 обрабатывает без проблем.
4. Andrey Андрей (PointAnd) 03.08.10 16:15
На word 2007 и window 7 не тестировалось. Может там есть свои заморочки.
5. artem2922 (pizhenkov) 24.01.11 13:53
А что за компанента используется и как ее проинсталить в ворд?
6. solarlion (solarlion) 08.11.11 16:02
стоит протестить в word 2010
7. Станислав Патырило (wondermaker) 12.10.12 05:01
Тестировал на Word 2010
1) такой код на 100% не сработал - ставило изображение в начало текста. Дописал вставку в место по закладке
RG = ActDoc.Bookmarks("ШтрихКодДокумента").Range;
МС.Selection.InlineShapes.AddOLEObject("V8.Barcod", "" , False, False,,,, RG);

2) в коде пишем Obj = ActDoc.InlineShapes.Item(1); // вместо нуля

3) почему-то размер изображения меньше положенного и штрихкод не отображается
Пока побороть не получилось - никаким кодом размер не меняется :(

4) минус в том, что вставляется как OLE, а хотелось бы изображением
McLer; servicetrend; +2 Ответить