26.12.2016 Тюсин Владимир 13875
Печатная форма форматированного документа в ф...
  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С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

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

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

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

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

ООО "Смена"
ООО "Смена"

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

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

Банк и касса
Расчеты с контрагентами
Торговые операции
Взаиморасчеты с...

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

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

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

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

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

Документооборот (ECM):
- Учет рабочего времени;
Управление персоналом и ка...

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

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

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

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

ПЭК
ПЭК

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

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

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

ООО «Иви.ру»
ООО «Иви.ру»

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

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

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

1с-РАРУС МСК
1с-РАРУС МСК

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

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

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

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

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

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

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

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