1С 8.3 Вставка штрихкода на каждую страницу Word
Данные > Примеры кода 1С > 1С 8.3 Штрих-код (barcode)
Перейти в раздел примеры кода 1С 8.3:
- 1С 8.3 Word, PDF, Microsoft Office, OpenOffice
Пример кода от mаrkelа:
Процедура ВставкаШтрихкодЧерезXML(Чтение_XML, Запись_XML, ТекстВставкиШтампа) Экспорт
//1. У файла word меняется расширение на zip
//2. Распаковывается
//3. Находится xml файл "document.xml"
//4. В самое начало файла в узел "w:body" идет вставка своего куска xml из общего макета конфигурации
//ГК++ изменения связанные со вставкой ШК на каждой странице
//конец текущей страницы определяется по тегу w:lastRenderedPageBreak
ВставитьШтампТегСлед = Ложь;
Пока Чтение_XML.Прочитать() Цикл
Если Чтение_XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ВставитьШтамп = Ложь;
Если Чтение_XML.Имя = "w:body" Тогда
ВставитьШтамп = Истина;
КонецЕсли;
//ГК++
Если Чтение_XML.Имя = "w:lastRenderedPageBreak" Тогда
ВставитьШтампТегСлед = Истина;
КонецЕсли;
//ГК--
Запись_XML.ЗаписатьНачалоЭлемента(Чтение_XML.Имя);
Пока Чтение_XML.ПрочитатьАтрибут() Цикл
Запись_XML.ЗаписатьАтрибут(Чтение_XML.Имя,Чтение_XML.Значение);
КонецЦикла;
Если ВставитьШтамп Тогда
Запись_XML.ЗаписатьБезОбработки(ТекстВставкиШтампа);
ВставитьШтамп = Ложь;
КонецЕсли;
ИначеЕсли Чтение_XML.ТипУзла = ТипУзлаXML.Текст Тогда
Запись_XML.ЗаписатьТекст(Чтение_XML.Значение);
ИначеЕсли Чтение_XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Запись_XML.ЗаписатьКонецЭлемента();
//ГК++
Если Чтение_XML.Имя = "w:p" И ВставитьШтампТегСлед Тогда
Запись_XML.ЗаписатьБезОбработки(ТекстВставкиШтампа);
ВставитьШтампТегСлед = Ложь;
КонецЕсли;
//ГК--
КонецЕсли;
КонецЦикла;
//5. Запаковывается обратно и сохраняется
КонецПроцедуры
//1. У файла word меняется расширение на zip
//2. Распаковывается
//3. Находится xml файл "document.xml"
//4. В самое начало файла в узел "w:body" идет вставка своего куска xml из общего макета конфигурации
//ГК++ изменения связанные со вставкой ШК на каждой странице
//конец текущей страницы определяется по тегу w:lastRenderedPageBreak
ВставитьШтампТегСлед = Ложь;
Пока Чтение_XML.Прочитать() Цикл
Если Чтение_XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ВставитьШтамп = Ложь;
Если Чтение_XML.Имя = "w:body" Тогда
ВставитьШтамп = Истина;
КонецЕсли;
//ГК++
Если Чтение_XML.Имя = "w:lastRenderedPageBreak" Тогда
ВставитьШтампТегСлед = Истина;
КонецЕсли;
//ГК--
Запись_XML.ЗаписатьНачалоЭлемента(Чтение_XML.Имя);
Пока Чтение_XML.ПрочитатьАтрибут() Цикл
Запись_XML.ЗаписатьАтрибут(Чтение_XML.Имя,Чтение_XML.Значение);
КонецЦикла;
Если ВставитьШтамп Тогда
Запись_XML.ЗаписатьБезОбработки(ТекстВставкиШтампа);
ВставитьШтамп = Ложь;
КонецЕсли;
ИначеЕсли Чтение_XML.ТипУзла = ТипУзлаXML.Текст Тогда
Запись_XML.ЗаписатьТекст(Чтение_XML.Значение);
ИначеЕсли Чтение_XML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
Запись_XML.ЗаписатьКонецЭлемента();
//ГК++
Если Чтение_XML.Имя = "w:p" И ВставитьШтампТегСлед Тогда
Запись_XML.ЗаписатьБезОбработки(ТекстВставкиШтампа);
ВставитьШтампТегСлед = Ложь;
КонецЕсли;
//ГК--
КонецЕсли;
КонецЦикла;
//5. Запаковывается обратно и сохраняется
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник