26.12.2016 Тюсин Владимир 12799
Печатная форма форматированного документа в ф...
  Screenshot_1.jpg   
     
 

   Поступила задача разработки печатной формы документа с наклонами, выделением текста и т.д.

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

Итак, как мне создать печатную форму 1С и сохранить в формате WORD?

-  Поле HTML документа – это что? Обычная строка.

- Можно использовать возможности объекта ТекстовыйДокумент? Можно.

После таких умозаключений разделил макет, тип ТекстовыйДокумент  с HTML разметкой на области (#Область Имя области <Содержимое> #КонецОбласти) . 
 
  Screenshot_2.jpg
Screenshot_3.jpg   
 
     
  И набросал две простенькие функции. Жизнь стала прекрасна  
     
 

Функция ПолучитьОбласть(МакетHTML,ИмяОбласти)

        ТекОбласть = МакетHTML.ПолучитьОбласть(ИмяОбласти);

        //Удаляем строки с определением области  #Область, #КонецОбласти

        ТекОбласть.УдалитьСтроку(1);

        ТекОбласть.УдалитьСтроку(ТекОбласть.КоличествоСтрок());

        Возврат ТекОбласть;

КонецФункции

Функция ВывестиОбласть(Область,Параметры = Неопределено)

        Текст = Область.ПолучитьТекст();

        Если ТипЗнч(Параметры) = Тип("Структура") и Параметры.Количество() Тогда

               Для каждого Эл из Параметры Цикл

                       Текст = СтрЗаменить(Текст,"["+Эл.Ключ+"]",Эл.Значение);

               КонецЦикла;

        КонецЕсли;

        Возврат Текст;

КонецФункции 
 
     
  Далее простая обработка.   
     
  Например:   
     
 

Функция ПолучитьТекстHTML()

        МакетHTML = РеквизитФормыВЗначение("Объект").ПолучитьМакет("МакетПечати");

       

        ОбластьШапка           = ПолучитьОбласть(МакетHTML,"Шапка");

        ОбластьШапкаТаблицы    = ПолучитьОбласть(МакетHTML,"ШапкаТаблицы");

        ОбластьСтрока          = ПолучитьОбласть(МакетHTML,"Строка");

        ОбластьПодвал          = ПолучитьОбласть(МакетHTML,"Подвал");

        ПараметрыШапки         = Новый Структура("Номер,Дата,Контрагент"

                                              ,"000001"

                                              ,"01.01.2016"

                                              ,"ООО Рога и Копыта");

        ТекстHTML      = ТекстHTML+Символы.ПС

                               + ВывестиОбласть(ОбластьШапка,ПараметрыШапки);

                              

        ТекстHTML      = ТекстHTML+Символы.ПС

                               + ВывестиОбласть(ОбластьШапкаТаблицы);

        СуммаИтог = 0;

        Для Сч= 1 по 10 Цикл

               Рандом  = Новый ГенераторСлучайныхЧисел(150*Сч);

               Артикул = Рандом.СлучайноеЧисло(10000,30000);

               Рандом = Новый ГенераторСлучайныхЧисел(15*Сч);

               Цена           = Окр(Рандом.СлучайноеЧисло(100,30000)/100,2);

               Рандом = Новый ГенераторСлучайныхЧисел(Сч);

               Количество             = Рандом.СлучайноеЧисло(1,20);

               Сумма                  = Окр(Цена*Количество,2);

               СуммаИтог              = СуммаИтог+Сумма;

               ПараметрыСтроки = Новый Структура("НомерСтроки,Артикул,Товар,Количество,Цена,Сумма"

                                              ,Сч

                                              ,Артикул

                                              ,"Товар такойто "+ Строка(Сч)

                                              ,Количество

                                              ,Формат(Цена,"ЧДЦ=2")

                                              ,Формат(Сумма,"ЧДЦ=2"));

               ТекстHTML = ТекстHTML+Символы.ПС

                                 + ВывестиОбласть(ОбластьСтрока,ПараметрыСтроки);   

        КонецЦикла;

        ПараметрыПодвала = Новый Структура("Сумма",Формат(СуммаИтог,"ЧДЦ=2"));                

       

        ТекстHTML = ТекстHTML+Символы.ПС

                         + ВывестиОбласть(ОбластьПодвал,ПараметрыПодвала);

        Возврат ТекстHTML             

КонецФункции 
 
     
 

ПС: Как получить макет с HTML разметкой в 1С? Все знают, что 1С таблицу или документ WORD можно сохранить как HTML.

Так же мы можем сохранить результат c расширением doc  и получим обычный документ WORD 
 
     
 

    Владимир Тюсин,

разработчик компании ООО «Кодерлайн» 

 

Наши проекты

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Учет спецодежды и спецоснастки
Управление отношениями с кли...

Внедрение «1С:Бухгалтерия 8 ПРОФ» в компании «Мостехника»
ООО «Мостехника»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

Документооборот (ECM):
- Учет рабочего времени;
Управление персоналом и кадровый учет (HRM):
- Кадровый учет;
- Расчет зарп...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление складскими запасами;
- Логистика адресного склада;
- Оф...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

Внедренное типовое решение:
1С:Управление производственным предприятием

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

Реализовали разработку уникального модуля «Интернет-магазины» на базе программного продукта «1С:Управление холдингом» согласно технического ...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и ИТ процессами
• Автоматизация бизнес-процессов
Управлени...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

Фирма 1С
Фирма 1С

Отрасль:

Внедренное типовое решение:
1С:Документооборот

- Подготовка функциональной модели прикладного решения «1С:Документооборот» для сервиса «1С:Облачная карта решений»; - Возможность интеграц...

Внедрение ПП «1С:Предприятие 8. Аренда и управление недвижимостью на базе "1С:Бухгалтерия 8"» в компании «Бутово Молл»
ООО «Бутово Молл»

Отрасль:
Недвижимость

Внедренное типовое решение:
1С:Аренда и управление недвижимостью на базе «1С:Бухгалтерия 8»

Управление продажами, логистикой и транспортом (SFM, WMS, TMS):
- Оформление заказов покупателей;
- Планирование продаж ...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Ална-Байк»
ИП Титов Виктор Сергеевич «Ална-Байк»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складами;
- Управление заказами поставщиков;
- Управление заказами покупателей...

ООО “РТИТС”
ООО “РТИТС”

Отрасль:
Транспортные системы

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Блок регламентированного кадрового учета и расчета заработной платы в 1С:ERP;
Согласование договоров, командировок в ДО;
Контроль испо...

МИР ХОББИ
МИР ХОББИ

Отрасль:
Торговля. Интернет магазин

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Оформление заказов поставщикам
Взаиморасчеты с покупателями
Оформление заказов покупателей
Логистика адресного склада
Управление...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение