Пример создания динамической таблицы в шаблоне MS Office Word 2010 и вставка в него картинки

22.06.13

Интеграция - Загрузка и выгрузка в Excel

Обработка с открытым кодом, для формирования в шаблоне MS Office Word 2010  динамической таблицы по результату запроса и вставке в него картинки. Картинка и шаблон - также в макете обработки.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка
.epf 101,78Kb
77
77 Скачать (1 SM) Купить за 1 850 руб.
Пример (все файлы в архиве)
.rar 181,84Kb
58
58 Скачать (1 SM) Купить за 1 850 руб.
шаблон ворд
.doc 35,50Kb
27
27 Скачать (1 SM) Купить за 1 850 руб.

Обработка с открытым кодом. В обработке имеется шаблон (в виде макета) MS Office Word 2010 с  таблицей, эта таблица в макете имеет одну строку данных и итоговую строку, при обходе результата запроса в эту таблицу добавляются новые строки данных перед итогами. Так же - пример вставки картинки в конец документа.

В шаблоне MS Office Word 2010 использованы ключевые параметры типа #Период#, которые ищутся и заменяются.

 

Вариант 2:

Здесь представлю вариант передачи заменяемых параметров через макрос.

Внимание:

  • при использовании данного варианта необходимо зайти в word включить работу vba (word 2010) см. картинку //infostart.ru/upload/iblock/560/dddd.png.
  • а также у переменной в коде "ТекстДляЗамены" длина не может превышать 255 знаков
Word = Новый COMОбъект("Word.Application");
Doc=Word.Documents.Add(ИмяФайла,0, 0);
Fnd = Word.ActiveDocument.Range().Find;

// Вставляем комментарий в котором укажем номер сделки и печатной формы

Попытка
    ФормаПроцесса.НадписьСостоянияПрогрессора = "Вывод примечания в шаблоне MS Word с информацией по печатной форме";
    ФормаПроцесса.Обновить();
    Документ_актив = Word.ActiveDocument();

    м_Selection = Word.Selection.Range;
    мКоммент = Документ_актив.Comments.Add(м_Selection);
    //мКоммент.ShowTip = Истина;
    мКоммент.Author = "Сысоев Павел";// строка (назначает автора примечанию, чтобы можно было делать отбор примечаний по автору. Автор всегда будет выводится, а здесь задается его представление)
    //мКоммент.Date = ТекущаяДата(); // дата
    мКоммент.Initial = "Сысоев ПС"; // строка (выводит текст в шапке примечания, ограничение 9 знаков)
    мКоммент.Range.Text = НазваниеПечатнойФормы + ДопИнформация;
Исключение

КонецПопытки;

ПримерМакроса = "Sub UPN_FormSdelki()";

 

СтруктураПечатнойФормы = Новый Структура;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| КурсыВалют.Период КАК Период,
| КурсыВалют.Курс КАК Курс
|ИЗ
| РегистрСведений.КурсыВалют КАК КурсыВалют
|ГДЕ
| КурсыВалют.Валюта В(&Валюта)
| И КурсыВалют.Период МЕЖДУ &НачПериод И &КонПериод
|
|УПОРЯДОЧИТЬ ПО
| Период";

МВалюта = Новый Массив;
МВалюта.Добавить(Справочники.Валюты.НайтиПоКоду("840"));
Запрос.УстановитьПараметр("Валюта", МВалюта);
Запрос.УстановитьПараметр("НачПериод", НачалоДня(НачПериода));
Запрос.УстановитьПараметр("КонПериод", КонецДня(КонПериода));

Результат = Запрос.Выполнить().Выбрать();
СумммаИтог = 0;
сч=1;
Пока Результат.Следующий() Цикл
СтруктураПечатнойФормы.Вставить("Период"+сч);
СтруктураПечатнойФормы.Вставить("Курс"+сч);
СтруктураПечатнойФормы.Вставить("КурсПрописью"+сч);
СтруктураПечатнойФормы.Вставить("ИтогКурс");
СтруктураПечатнойФормы.Вставить("ИтогКурсПрописью");


СтруктураПечатнойФормы["Период"+сч] = Формат(Результат.Период,"ДФ=dd.MM.yyyy");
СтруктураПечатнойФормы["Курс"+сч] = Результат.Курс;
СтруктураПечатнойФормы["КурсПрописью"+сч] = ЧислоПрописью(Результат.Курс,?(Результат.Курс=Окр(Результат.Курс),"Л = ru_RU; НД=Ложь ДП=Ложь","Л = ru_RU; ДП=Истина"),"рубль ,рубля,рублей,м,копейка,копейки,копеек,м,2");

КонецЦикла;

 

ПримерМакроса = ПримерМакроса + Символы.ПС +
"
| ' выводим примечание с информацией по сделке и печатной форме
| '
| '
| ActiveWindow.ActivePane.VerticalPercentScrolled = 0
| Selection.Comments.Add Range:=Selection.Range
| Selection.TypeText Text:= """ + "Номер сделки: Сделка " + """

| Selection.TypeParagraph
| Selection.TypeText Text:= """ + "Код печатной формы: 1" + """
| Selection.TypeParagraph
| Selection.TypeText Text:= """ + "Название печатной формы: сделка"  + """
| Selection.TypeParagraph
| Selection.TypeParagraph
| Selection.TypeParagraph
| Selection.TypeText Text:= ""Для того чтобы не печатать это примечание:""
| Selection.TypeParagraph
| Selection.TypeText Text:= ""Просто удалите его (щелкнув на нем правой клавишей мышки и выбрать """"удалить примечание"""")""
| Selection.TypeParagraph
|
| ' перейдем с примечания к тексту
| '
| Selection.EscapeKey
|
|";

 

КолвоПараметров = СтруктураПечатнойФормы.Количество();
ТекНомерПараметра = 0;

 


Для Каждого Реквизит из СтруктураПечатнойФормы Цикл

    ТекНомерПараметра = ТекНомерПараметра + 1;

    Если НЕ ТипЗнч(Реквизит.Значение) = Тип("Картинка") Тогда


        ТекстДляЗамены = СокрЛП(Реквизит.Значение);
        КолВоВхожденийПереносаСтроки = СтрЧислоВхождений(СокрЛП(Реквизит.Значение), Символы.ПС); // обрабатываем текст как (ОАО "СБЕРБАНК РОССИИ")
        Если КолВоВхожденийПереносаСтроки > 0 Тогда
            ТекстДляЗамены = СтрЗаменить(ТексДляЗамены, Символы.ПС, "^p"); //"^l"
        КонецЕсли;

        КолВоВхожденийКавычек = СтрЧислоВхождений(СокрЛП(Реквизит.Значение),""""); // обрабатываем текст как (ОАО "СБЕРБАНК РОССИИ")
        Если КолВоВхожденийКавычек > 0 Тогда
            ТекстДляЗамены = СтрЗаменить(ТекстДляЗамены, """", """""");
        КонецЕсли;


        ПримерМакроса = ПримерМакроса + Символы.ПС +
        "
        |Selection.Find.ClearFormatting
        | Selection.Find.Replacement.ClearFormatting
        | With Selection.Find
        | .Text = """ + "#"+Реквизит.Ключ+"#" + """
        | .Replacement.Text = """ + ТекстДляЗамены + """
        | .Forward = True
        | .Wrap = wdFindContinue
        | .Format = False
        | .MatchCase = False
        | .MatchWholeWord = False
        | .MatchWildcards = False
        | .MatchSoundsLike = False
        | .MatchAllWordForms = False
        | End With
        | Selection.Find.Execute Replace:=wdReplaceAll
        | ";

////КонецЕсли;

    Иначе


        ИмяФайлаКартинки = ПолучитьИмяВременногоФайла();
        Картинка =Реквизит.Значение;
        Картинка.Записать(ИмяФайлаКартинки);
        ПримерМакроса = ПримерМакроса + Символы.ПС +
        "
        |'
        |' Вставяем картинку объекта
        |'
        |'
        |Selection.Find.ClearFormatting
        |With Selection.Find
        | .Text = ""#КартинкаПланОбъекта#""
        | .Replacement.Text = ""
        | .Forward = True
        | .Wrap = wdFindContinue
        | .Format = False
        | .MatchCase = False
        | .MatchWholeWord = False
        | .MatchWildcards = False
        | .MatchSoundsLike = False
        | .MatchAllWordForms = False
        |End With
        |Selection.Find.Execute
        |Selection.InlineShapes.AddPicture FileName:= _
        |""" + ИмяФайлаКартинки + """, LinkToFile:=False, _
        | SaveWithDocument:=True
        |ActiveWindow.ActivePane.HorizontalPercentScrolled = 6
        |
        |";
    КонецЕсли;
КонецЦикла;

 

ТекстМакроса = ПримерМакроса + Символы.ПС + "End Sub";

 

VBComponents = Word.ActiveDocument.VBProject.VBComponents;
Count = VBComponents.Count();
VBComponents.Add(1);
VBComponents.Item(Count + 1).CodeModule.InsertLines(1, ТекстМакроса);
Word.Application.Run("UPN_FormSdelki");

 

Word.Caption = " " + Строка(Сделка) + " - (" + УправлениеСделками.УдалениеЛидирующихНулейВНомере(Сделка.ОбъектСтроительства.МакетыПечатныхФорм.Найти(GUID,"GUID").МодульПечатнойФормы.Код) + ") " + Сделка.ОбъектСтроительства.МакетыПечатныхФорм.Найти(GUID,"GUID").МодульПечатнойФормы.Наименование; //ActiveDocument.FullName

//Word.PrintOut(); // распечатать док

Word.Visible = 1;
Word.Activate();
Word.WindowState = 2; // wdWindowStateMinimize (с) статья _http://forum.foxclub.ru/read.php?32,177182,258927
Word.WindowState = 1; // wdWindowStateMaximize

См. также

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    22347    23    49    

39

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Забудьте о ручном вводе: загружайте документы из Excel в 1С за секунды! Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С.

6000 5100 руб.

09.11.2016    240145    1100    906    

1031

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы преобразуете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, Детский мир, МагнитЭкспресс (быв.Казань-Экспресс), Леруа Мерлен, ЭНФАНТА (Акушерство), ЛаМода, Летуаль, Твой дом, Золотое Яблоко в документы "Отчет комиссионера (агента) о продажах" и другие. Работает в 1С:БП 3.0, 1С:БП 3.0 КОРП, 1С:УТ 11, 1С:УНФ, 1С:КА 2, 1С:ERP Управление предприятием. Возможность подключить любые маркетплейсы. Анализ продаж ОZON. 30 дней БЕСПЛАТНОГО пользования!

5400 руб.

12.08.2021    37278    396    68    

170

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

19.08.2020    26148    25    1    

28

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 7.хх учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

24.04.2017    52370    104    165    

91

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.02.2025, версия 9.9 - 9.15)

16800 руб.

20.11.2015    158340    385    378    

515

Внешние источники данных Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Готовая интеграция для управляемых форм. Встраивается в вашу 1С как расширение. Реализует автоматический обмен данными между 1С (1С:Фитнес клуб и аналогов) и СКУД RusGuard, автоматизирует бизнес-процессы по созданию и учету сотрудников в СКУД. Значительно упрощает работу специалистов отдела кадров и отдела безопасности: избавляет от двойного ввода информации в 1С и СКУД.

94999 руб.

11.07.2024    1189    1    0    

3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

84000 руб.

05.10.2022    11452    13    8    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. trunix 19.10.11 03:58 Сейчас в теме
2. jko 19.10.11 06:14 Сейчас в теме
Прикольно. Скоро будем делать, что то подобное на 2007 офисе. Спасибо.
3. ARL 316 19.10.11 09:50 Сейчас в теме
Полезный пример. Всегда может пригодиться.
4. koka 87 19.10.11 10:01 Сейчас в теме
Спасибо. Познавательно для создания документов из 1С.
5. galyausik1 4 19.10.11 10:21 Сейчас в теме
С удовольствием пользуюсь вашим примером. Спасибо, познавательно.
6. ph_1984 21 19.10.11 16:11 Сейчас в теме
А чем ваша разработка отличается от подсистемы печати в библиотеке стандартных подсистем? В ней так же есть функция формирования документа в Word по шаблону.
7. pavel_pss 290 19.10.11 17:38 Сейчас в теме
Guran пишет:
А чем ваша разработка отличается от подсистемы печати в библиотеке стандартных подсистем? В ней так же есть функция формирования документа в Word по шаблону.


Я не знаю, что там за функция, поэтому не знаю их разницу, но у меня была задача формировать word и я ее решил на 1с8,1 так как это сделано в этой обработке. В ней так же было решение именно добавления строки для word 2010, может в 2007 она тоже будет работать (не помню проверял или нет)
8. gr0ck 20.10.11 08:45 Сейчас в теме
Надо будет посмотреть
9. orsprog 20.10.11 09:33 Сейчас в теме
спасибо...обязательно воспользуюсь этим примером...позновательно и полезно...в ближайшем будущем пригодится
10. Ihty 226 21.10.11 13:05 Сейчас в теме
Супер. Мне понравилось.
11. zag2art 23.10.11 19:25 Сейчас в теме
12. igor_1c 18 25.10.11 23:26 Сейчас в теме
я сейчас разрабатываю аналогичную универсальную систему систему печати MSWord из шаблонов. Для этого пришлось сделать справочник шаблонов, и обработку "Печать шаблонов" только у меня вместо # угловые скобки < >. Работает два варианта: переменные в <> и закладки. Как нить выложу свою систему, когда пройдет полный контроль на УПП. С помощью её печатают договора, доп. соглашения с таб. частью, сейчас пошли печатать кадровые документы (очень много заморочек с ними)
13. ann_ver 26.10.11 15:24 Сейчас в теме
14. Zya 21.02.12 22:43 Сейчас в теме
Спасибо большое за обработку

Интересует только еще один момент, в каждой ячейке таблицы после вывода #Переменных#
автоматически к тексту добавляется символ возврат каретки.
Может кто-нибудь знает, как этого избежать? А-то сильно увеличивается размер таблицы и получается неоптимальный расход бумаги..
15. pavel_pss 290 22.02.12 00:12 Сейчас в теме
(14) Zya,
по идее такого быть не должно, если ты сама не передаешь вместе со строкой возврат каретки. Попробуй либо сокрЛП(твойТекст) попробуй отформатировать свой шаблон ворда, тоесть проверить чтобы там небыло возврата каретки. Точнее не скажу как то не обращал внимание и пользователи о подобном не говорили. Завтра при случае просмотрю у себя.
16. Abadonna 3970 23.07.12 06:54 Сейчас в теме
(0) Автор, спасибо, конечно, но: попросил меня один нищеброд скачать, пришлось аж три файла качать :(
Мог бы и в один архив все засунуть.
17. пользователь 27.11.12 12:44
Сообщение было скрыто модератором.
...
18. pavel_pss 290 21.02.13 16:38 Сейчас в теме
не забываем ставить плюсы
Оставьте свое сообщение