26.12.2016 Тюсин Владимир 14586
Печатная форма форматированного документа в ф...
  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с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

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

- Финансово-бухгалтерский блок
- Казначейство ...

ООО "СЖД"
ООО "СЖД"

Отрасль:
Торговля, склад, логистика, транспорт

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

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

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

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

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

ПЭК
ПЭК

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

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

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

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

Автоматизация бизнес-процессов...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

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

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- Ð...

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

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

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

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

Автоматизация учета на базе ПП "1С:Комплексная автоматизация 8" в ЗАО "Крюгер-Гранд"
ЗАО «Крюгер-Гранд»

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

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

- Создание интерфейсов и наборов прав пользователей;
- Отражению временных ...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

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

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

- Оперативный учет...

ООО «Фипар»
ООО «Фипар»

Отрасль:

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

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автомаÑ...

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

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

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

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

Внедрение ПП "1С:CRM ПРОФ" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

Внедренное типовое решение:
1С:CRM ПРОФ

- Управление отношениями с клиентами (CRM) ...

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

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

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

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