26.12.2016 Тюсин Владимир 13827
Печатная форма форматированного документа в ф...
  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 
 
     
 

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

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

 

Наши проекты

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

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

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

ПЭК
ПЭК

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

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

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

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

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

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

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

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

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

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

Госкорпорация «Ростех»
Госкорпорация «Ростех»

Отрасль:
Производство, ТЭК >> Машиностроение, приборостроение

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

Специалисты «Кодерлайн» помогли разработать и внедрить автоматизированную...

ЗАО «Ламбумиз»
ЗАО «Ламбумиз»

Отрасль:
Производство картонной упаковки

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

- Маркетинг;
- Продажи;
- Планирование закупок;
- Закупки;
- Регламенти...

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

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

- Разработка подсистемы оперативного учета транзакций...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

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

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

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый ...

ООО «Аэроэкспресс»
ООО «Аэроэкспресс»

Отрасль:

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

· Планирование закупок · Управление закупочными процедурами, включая 223 ФЗ ...

Филиал ГлавУпДК при МИД России фирма «Инпредкадры»
Филиал ГлавУпДК при МИД России фирма «Инпредкадры»

Отрасль:
Государственное управление

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

- Расчеты с контрагентами;
- Управленческий учет;
- Формирование отраслев...

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

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

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

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

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

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

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

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