Заполнение шаблонов в Word и Excel




Внешняя обработка подключаемая как "Печатная форма" через регистрацию внешних печатных форм. Для заполнения подготовленных документов в Word или Excel.

Добавлена "универсальность" отчета. Теперь работает с любой, даже самописной, конфигурацией без каких-либо доработок.
ОБНОВЛЕНИЕ от 29.09.2010

В комплекте идет пример работы для ТиС, печать обычной накладной, тупо чтобы показать принцип работы.

Как ставить: Копируем в каталог внешних печатных форм «ExtFormsPrnForms» и через встроенную обработку «Регистрация внешних печатных форм…» добавляем для нужных документов / справочников.

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

Что из себя представляет и как работает:

Создаете любой документ в Word или Excel, оформляем как душе угодно. В любом месте документа куда надо вставить значения из 1С просто пишем:

для Word: формулу 1С заключенную в фигурные скобки { и } (Если фигурные скобки используется в вашем документе, то их можно заменить на любые другие символы в конце текста модуля), например: {«Текущая дата: «+ТекущаяДата()} или {Конт.ДатаДок} и т.п.
для Excel: добавляем в ячейку примечание (правой кнопкой мыши и выбрать «создать примечание»), в тексте примечания пишем формулу 1С

Новое! Колонтитулы в Word и Excel обрабатываются по правилам оформления шаблона Word, то есть формулы 1С заключаются в фигурные скобки, например {Конт.ДатаДок}

Контекст формы из которой вызвана обработка хранится в переменной Конт, соответственно ее можно использовать в формуле в Word, например: {Конт.Контрагент.ЮрФизЛицо.ПолнНаименование}

Если необходимо вывести табличную часть документа, то оформляем таблицу как вам надо (шапка, подвал и т.д.), и в строке куда надо вставить данные из 1С, так же как и выше вставляем формулы 1С и в первой формуле в начале строки ставим знак доллара $, все. При заполнении, эта строка будет размножена и заполнена. При этом если поля находятся в таблице, будут добавлены строки таблицы, если просто строка не в таблице, то она будет скопирована. То же самое относится и к константам имеющие тип «ТаблицаЗначений» (присваивается из внешних отчетов/обработок). При заполнении табличной части в Excel можно отключить вставку новых строк, для этого необходимо указать не один, а два знака доллара.

Так же можно определять свои собственные константы любого типа (Строка, Число, справочник и т.п.) И изменять их перед печатью. Список констант хранится отдельно для каждого шаблона. Использовать константы просто, используем их в формулах как переменные в 1с, например:

{«1-а константа: «+Конст1+» 2-я константа: «+Конст2.Наименование}

Если константа определена как отчет/обработка, то перед заполнение шаблона будет вызвана эта обработка/отчет с передачей в него контекста формы из которой была вызвана печать. После выполнения внешнего отчета/обработки значение переданное из нее в Форма.Параметр присваивается константе и может использоваться в шаблоне. Возвращаемое значение может иметь тип «ТаблицаЗначений», тогда его можно использовать для формирования табличной части, точно так же как и с контекстом документа (см. выше).

Если что спрашивайте, буду рад, если кому-нибудь пригодится.

 

Изменения от 25.04.2009

Если необходимо размножить более одной строки, то после знака $ указывается еще один символ «>», если надо чтобы каждая строка табличной части документа начиналась с новой страницы, добавляем еще один символ «>». В последней строке, которую необходимо размножить указываем последовательность «$<«. Примеры:

Размножение одной строки шаблона с заполнением из табличной части:

{$НомерСтроки} | {Конт.Номенклатура} | {Конт.Количество}

Размножение двух строк шаблона между «командами» {$> и {$<:

{$>}Номер строки документа: {НомерСтроки}

Наименование товара: {Конт.Номенклатура}{$<}

То же самое, но каждая строка документа будет идти с новой строки:

{$>>}Номер строки документа: {НомерСтроки}

Наименование товара: {Конт.Номенклатура}{$<}

Изменения от 08.07.2009

Добавлена обработка колонтитулов документов (для Word’а учитываются настройки страницы и различия первой и нечетной страниц). Правила оформления формул 1С аналогично оформлению шаблонов в Word’е. Все формулы заключаются в фигурные скобки (открывающая и закрывающая команда, могут быть изменены), например: Накладная № {Конт.НомерДок} от {Конт.ДатаДок}

Изменения от 29.09.2010

По просьбе пользователей внес небольшие изменения: теперь при открытии обработки, просто как внешнего отчета, выводится список метаданных (документов, справочников) текущей конфигурации. Что позволяет работать с любой, даже нестандартной конфигурацией без каких-либо изменений со стороны программиста. Хоть и не совсем удобно (приходится сначала выбирать тип данных «Справочник» или «Документ», затем вид и только потом сам объект, с которым необходимо работать).

Изменения от 20.10.2010

Исправлена проблема при заполнении колонтитулов в некоторых версиях Excel’я. Спасибо за описание ошибки и терпение Весниной Оле

Изменения от 09.09.2024

По просьбе Ивановой Дониэлы добавлена возможность сортировать список шаблонов и группировать шаблоны. Вспомогательная форма перенесена в основной файл, поэтому файл extprint_.ert удален за ненадобностью.

90 Comments

  1. DDD2005

    Еще бы такой примерчик с Open Office

    Reply
  2. zsrg

    У меня не стоит Open Office, но гляну что можно сделать…

    Reply
  3. AklexK

    Вот генератор вывода в Word и ОpenOffice, Word на компе не нужен

    http://infostart.ru/projects/362/

    Reply
  4. inquiro

    Ценная вещь. После мелкой доработки можно вводить формулы 1С непосредственно в поле «Значение», а в поля Word вписывать только имена констант.

    Reply
  5. inquiro

    Хорошо бы привязать список шаблонов к форме, из которой открывается эта обработка, причём, не размножая файлы настроек.

    Reply
  6. Alex_Sun

    Привет колись, как мне в 2007 Word сделать свои поля текстового ввода такие подсвеченые серым.

    Само поле сделал но оно нифига непохоже на то что уже есть в примере.?!

    Reply
  7. zsrg

    Я на стандартных панелях не нашел такой команды, поэтому тупо через настройки панели «Быстрого доступа», есть такая под основной панелью, добавил кнопку из списка всех команд команду «Вставить поле» и пользовался ей.

    Reply
  8. Alex_Sun

    Ок. Это и я понял. Открывается форма «поле» а в нем есть поле — «Поля:» а там?

    Reply
  9. zsrg

    Это не просто «Поле», а «Текстовое поле» в разделе «Поля формы».

    Во всех офисах до 2007 его легко найти на панели «Формы»: Меню «Вид» — «Панели инструментов» — «Формы»

    А в Word 2007 я не нашел такой панели, на память я точно не помню как называется команда, но

    раз «Вставить поле» у тебя выдает диалог с типами полей, значит это не то, ищи команду «Вставить текстовое поле» или «Вставить поле формы» или «InsertFormField»

    Reply
  10. zsrg

    ОБНОВИЛ!

    Так как очень часто поступали вопросы: «Как добавить поле?», я переделал обработку, теперь нет необходимости ничего дополнительно вставлять. Просто пишем формулу 1С заключенную в фигурные скобки и все! Никаких дополнительных действий делать не надо!

    Если фигурные скобки используются в тексте документа, то их можно заменить на любые другие символы или строки в конце текста модуля, например заменить на:

    НачКоманды=»{*»;

    КонКоманды=»*}»;

    Тогда одинарные скобки будут игнорироваться.

    Успехов!

    Reply
  11. Alex_Sun

    Спасибо, это безусловно более простое решение, но с полями смотрится как то более пафоснее.

    Reply
  12. masterprint

    Отличная вещь, может подскажите как правильно встроить в документ — требуется чтоб из одного только дока заполнялся Word?

    Спасибо, Александр masterprint@aplus.by

    Reply
  13. zsrg

    По многочисленным просьбам добавлено:

    — Работа с документами Excel

    — привязка списка шаблонов к виду документов/справочников

    — получение значений констант из внешних отчетов/обработок

    — работа со значениями констант типа «ТаблицаЗначений»

    — проверка прав доступа к объектам в списке констант

    подробнее в описании программы

    Пишите!

    Reply
  14. Shontas

    zsrg, даже и не знаю как отблагодарить.

    Сам ковырялся с подобной проблемой, но шел другим путем и не туда ушел. У нас на базе платформы 1С7 самописная база для учета и ведения заявок по ремонту, из этой же базы планировалось формировать договор и доки для контрагента.

    Так что обработка В ТЕМУ. Спасибо

    Reply
  15. zsrg

    Рад что обработка пригодилась не только мне! 🙂

    Вообще я начинал писать эту обработку для кадровиков в контору в которой нет своего программиста. Они хотели делать личные карточки, трудовые договоры и т.п.

    Им хотелось чтобы они сами могли создать любой документ в Office и заполнить его из 1С. Поэтому и была сделана такая обработка. Потом уже она дорабатывалась и превратилась в то, что вы сейчас видите.

    Есть еще много идей по развитию этой обработки, так что если кому-то нравится и есть свои идеи, подкидывайте, буду дорабатывать!

    Reply
  16. Снп_1

    Отличная и нужная разработка. Большое спасибо за такой чудесный подарок.

    Reply
  17. Снп_1

    Уважаемый zsrg! У меня много конфигураций разработанных с нуля, практически во всех не поддерживается обработка «Регистрация внешних форм», поэтому вашу обработку встроила в отчеты и вывываю из документа «ОткрытьФормуМодально». При этом, если вхожу в документ , после того как его закрыла список шаблонов чист и к нему надо вновь искать путь. Как поправить?

    Reply
  18. zsrg

    Список шаблонов привязывается к контексту из которого он был вызван. Так как обработка писалась под стандартный вызов внешней печатной формы, то необходимо так же вызывать ее и из своих конфигураций. А именно важно только два момента:

    1. передавать в обработку значение типа «СписокЗначений»

    2. в списке значений должен быть передан контекст вызываемой формы

    Пример вызова для Вашего случая:

    Сп = СоздатьОбъект(«СписокЗначений»);

    Сп.Установить(«Контекст»,Контекст);

    ОткрытьФормуМодально(«Отчет»,Сп,»..extprint.ert»);

    Все настройки хранятся в файле extprint.ini и имеют вид:

    [Наименование шаблона]

    Файл=ПУТЬ_ДО_ФАЙЛА_ШАБЛОНА

    Контекст=Тип контекста, например: Документ.Реализация

    СПИСОК КОНСТАНТ

    Список констант имеет вид:

    ИмяКонстанты=ТипКонстанты:Значение_Константы

    ТипКонстанты имеет вид: ТипЗначения.Длина.Точность

    Значение_Константы: это строковое представление значения полученное функцией ЗначениеВСтроку()

    Например:

    ДокументДатаНомер=Строка.60.0.0:{«Строка»,»Номер»}

    Если возникнут проблемы или пожелания, пишите буду рад помочь.

    Reply
  19. zsrg

    Ах да, забыл уточнить, что в описании типа константы могут отсутствовать такие параметры как «Точность», за ненадобностью, например для Даты, и присутствовать дополнительные параметры, например для строки этот будет:

    Строка.ДлинаСтроки.ПризнакМногострочногоТекста.ПризнакСтрокиНеограниченнойДлины

    Если ПризнакСтрокиНеограниченнойДлины = 1, то параметр «ДлинаСтроки» не имеет смысла но всеравно должен присутствовать

    Reply
  20. Снп_1

    Уважаемый zsrg! В одну из своих разработок вставила все функции для работы обработки «Регистрация внешних форм» и ваша обработка прекрасно заработала в моей оригинальной конфигурации.

    Еще раз большое спасибо. Из всего, что здесь представлено использую в своей работе :

    1.FormEx

    2.OSV252

    3.Группировки

    Ваша разработка в ряду этих действительно нужных, полезных и умных для меня разработок. Еще раз спасибо.

    Reply
  21. zsrg

    И Вам спасибо за внимание к моей работе 🙂

    Reply
  22. vitae

    Cпасибо Вам! Я и сам постоянно работаю над связками Office + 1C, но Ваши произведения более профессиональны.

    Reply
  23. zsrg

    Рад, что пригодилась обработка.

    Странно, что у всех кто пользуется обработкой нет пожеланий и замечаний. Такого быть не может, чтобы обработка полностью удовлетворяла…

    Ну если так, то хорошо, конечно

    Reply
  24. zsrg

    Так как часто обработкой пользуются неопытные программисты, добавил возможность просмотра структуры справочников и документов, а также формирование примера шаблона в Word’e и Excel’e на основе текущего документа.

    Reply
  25. walent555

    Уважаемый zsrg! Не могу реализовать формулу вида

    {?(конт.рекв=1,»строка1″,»строка2″)} в Word.

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

    Подскажите, если такое возможно,

    а вообще обработка отличная, большое спасибо!!!

    Reply
  26. Душелов

    (25) В шаблоне одно наименование реквизита.

    А уже при заполнении надо по условие подставлять нужное значение.

    Reply
  27. walent555

    Извините, все работает, ставил не те кавычки…

    Спасибо за обработку!

    Reply
  28. maximaorsk

    Здравствуйте, zsrg! Подключаю вашу обработку к документу «возврат поставщику» (1С 7.7. конф. «торговля+склад»). Шаблон Word содержит карточку товара с различными переменными. Необходимо вывести данные из табличной части документа, но не в форме таблицы, а так, что бы на каждый товар была заполнена своя карточка и что бы все эти карточки были в одном документе. В общем получить список товаров возврата кроме как в виде таблицы (при использовании знака $) не получается. Что делать?

    Reply
  29. zsrg

    Привет, maximaorsk! Сейчас никак, но ты можешь скинуть мне на zsrg@yandex.ru образец того, что ты хочешь получить, я подумаю как изменить обработку. Завтра 23/04 я на разъездах по клиентам, а вот в выходные займусь и сделаю

    Reply
  30. zsrg

    Как и обещал, доработал обработку и обновил ее и описание на странице. Вот что добавилось:

    Если необходимо размножить более одной строки, то после знака $ указывается еще один символ «>», если надо чтобы каждая строка табличной части документа начиналась с новой страницы, добавляем еще один символ «>». В последней строке, которую необходимо размножить указываем последовательность «$<«.

    Примеры:

    Размножение одной строки шаблона с заполнением из табличной части:

    {$НомерСтроки} | {Конт.Номенклатура} | {Конт.Количество}

    Размножение двух строк шаблона между «командами» {$> и {$<:

    {$>}Номер строки документа: {НомерСтроки}

    Наименование товара: {Конт.Номенклатура}{$<}

    То же самое, но каждая строка документа будет идти с новой строки:

    {$>>}Номер строки документа: {НомерСтроки}

    Наименование товара: {Конт.Номенклатура}{$<}

    Жду новых пожеланий и замечаний! 🙂

    Reply
  31. elis

    супер!

    Reply
  32. zsrg

    Спасибо 🙂

    Reply
  33. ГАВ

    Отличная разработка, в ТиС работает на ура. А вот как ее прикрутить в 1С 7.7 Бух к документам «поступление товаров» и «услуги сторонних организаций»? В этих документах вообще нет кнопки печать…

    Reply
  34. xVaSx

    Супер. Ещё бы в колонтитулах формулы работали.

    Reply
  35. zsrg

    (34) xVaSx, не вопрос, я сейчас в отпуске, до конца недели, с понедельника выйду на работу и внесу изменения в обработку, будет работать и колонтитулы 🙂 Как поправлю, сразу сообщу.

    Reply
  36. xVaSx

    Сенькствую. Я уж и сам управился, убогенько, правда, но всё же. Щас над багом колдую. Почему то у некоторых формул (и не только, пока не понял закономерности) в таблице обрезается первый символ и остается конец команды. А в вашем же примере в подвале таблицы вылазит вот это:

    _____________________

    № | Товар | Кол-во|…

    _____________________

    [сего: | |…

    {Конт.Итог(] | 0 |

    ————————

    Хрюша про сп2

    Ворд 2003

    Reply
  37. xVaSx

    Область.SetRange(Поз + НачПоз — 1, Поз + КонПоз + СтрДлина(КонКоманды) — 1);

    Выделяет на один символ позже и с начала и с конца, хотя сами НачПоз и КонПоз вычисляются правильно (с учетом табов). Видимо сам ворд криво проглатывает символ табуляции при переходе в др. колонку.

    Reply
  38. xVaSx

    Это происходит, когда в таблице нет повторяющихся строк ($) (табличная часть пуста), но не всех таблицах (в вашем примере «Отпустил», «Получил» выходят нормально). И ещё (может не существенно) в двух разных случаях глючила формула из второй ячейки строки.

    У меня тоже таблица 1х2, просто для оформления, причем в колонтитуле (не спрашивайте меня зачем).

    Reply
  39. zsrg

    Скиньте на zsrg@yandex.ru свой шаблон, посмотрю в чем дело. Но не раньше понедельника, не люблю домой тащить работу, отпуск есть отпуск. Обещаю в понедельник посмотреть в чем дело и сразу отпишусь

    Reply
  40. xVaSx

    (39)У меня сейчас мой шаблон через вашу обработку нормально отработался, правда не в колонтитуле, а в теле документа. В общем заполните своей обработкой свой же шаблон (Пример.doc) документом у которого табличная часть пуста. Глюки немного разные, но причина видимо одна.

    Reply
  41. xVaSx

    Справился я со своим глюком. Я просто рассматривал каждый колонтитул как отдельный параграф, а надо было как отдельную область документа со своим набором параграфов.

    И всё же глюк с пустой табличной частью имеет место быть…

    Reply
  42. zsrg

    Как и обещал исправил и дополнил обработку. Добавлена обработка колонтитулов и исправлена бага с пустой табличной частью документа, при формировании шаблона в Word’е.

    Всем спасибо! 🙂

    Reply
  43. zsrg

    (33), ГАВ. На вопрос: «А вот как ее прикрутить в 1С 7.7 Бух к документам «поступление товаров» и «услуги сторонних организаций»? В этих документах вообще нет кнопки печать…», отвечаю:

    Чтобы сделать заполнение Word и Excel из документа, в котором нет кнопки «Печать» и при этом не переделывать конфигурацию, необходимо открыть обработку просто как внешний отчет через меню в 1С «Файл-Открыть…» или скопировать ее в папку ExtForms и добавить в разделе «Сервис-Дополнительные возможности» обозвав, например «Внешняя печать» или еще как.

    Действия в обработке следующие:

    1. ДОбавляем шаблон (Word или Excel)

    2. Добавляем константу, назвав, например «Док» и выбираем ее тип как «Документ» нужного вида.

    3. В шаблоне вместо «Конт.» перед реквизитами документа, указываем имя константы «Док.» и все. Все остальное как обычно.

    Разница в том, что перед заполнением надо будет два раза щелкать в ячейке «Значение» рядом константной «Док» и выбирать нужный документ. Потом только жать «Заполнить». Будут вопросы пишу, отвечу сразу 🙂

    Reply
  44. sh67dgfy

    Хорошая работа, спасибо за труд.

    Reply
  45. Юля21

    Здравствуйте! Я начинающий программист 1С и до этого времени не работала с подобным видом отчетов. Пытаюсь разобраться и подключить свой внешний отчет к этой обработке но у меня постоянно выдает ошибку «Значение не предоставляет агрегатный объект». Я явно что то не так делаю))))Только хоть убей не могу разобраться что) не подскажите в каком виде приблизительно должна быть внешняя обработка. что бы все работало? Заранее спасибо

    Reply
  46. zsrg

    Здравствуйте, Юля!

    Моя обработка подключается как внешняя печатная форма. Нет необходимости писать для этого что-то свое. Достаточно проделать следующее:

    1. Скопировать все файлы из архива в папку ExtFormsPrnForms в вашей конфигурации 1С.

    2. Непосредственно при работе в 1С:Предприятии открыть пункт меню «Сервис — Регистрация внешних печатных форм»

    3. Выбрать нужный вид документа/справочника

    4. Нажать кнопку «Изменить» и выбрать «Внести в список» и выбрать «extprint»

    5. Открыть любой документ выбранного вида в журнале документов, и нажать стрелку рядом с кнопкой печати, чтобы выбрать мою обработку.

    6. Далее все по инструкции из описания к моей обработке на этой странице

    Если всетаки есть необходимость вызывать мою обработку из своей, то используем тот же принцип, что и при вызове внешней печатной формы, а именно:

    Сп = СоздатьОбъект(«СписокЗначений»);

    Сп.Установить(«Контекст»,КонтекстДокументаИлиСправочника);

    ОткрытьФормуМодально(«Отчет»,Сп,»ПутьКМоейОбработкеextprint.ert»);

    Но что-то мне подсказывает, что Вы просто не можете сделать шаблон непосредственно в Word’е / Excel’е и называете его внешним отчетом…

    Если это так, то пришлите мне Ваш шаблон на почту zsrg@yandex.ru я внесу коррективы и добавлю комментарии к Вашим ошибкам.

    Reply
  47. Chuba73

    Сердечно благагодарю, ибо аналоги стоят денег.

    Reply
  48. victory

    Нет слов. Спасибо!

    Reply
  49. Немел

    а вот такую обработку можно сделать только для 1с Предприятие 7.7. Бухгалтерский учет?

    Возможно ли это сделать для 1с Предприятие 7.7 Платежные документы?

    Reply
  50. zsrg

    49. Обработка универсальная и работают с любой конфигурацией 1С 7.7. Хоть самописной.

    С месяц назад начал работать с 8-й, мне пока не потребовалось, но если надо, могу переработать обработку под работу под 8-й.

    Reply
  51. Немел

    а вы не могли б написать процедуру как это все сделать в Платежных документах там просто нету во вкладки Сервис вкладки Регистрация внешних печатных форм

    Reply
  52. zsrg

    51. Я уже описывал в 46-м сообщении, посмотрите чуть ниже на этой странице в конце сообщения, как вызывать обработку из своего отчета.

    Если уже совсем просто надо, без программирования, то я доработаю ее завтра немного.

    Reply
  53. Немел

    Я попробовал в 1с Предприятие 7.7. Бухгалтерский учет все замечательно,а вот в 1с Предприятие 7.7. Платежные документы она не работает, как мне сделать чтоб в 1с Предприятие 7.7. Платежные документы она тоже могла выполнять обработку?

    Reply
  54. zsrg

    53. Сегодня-завтра, я доработаю обработку и все будет работать и с платежными документами. Пока же необходимо написать свою обработку из которой уже вызывать мою. Что конечно же не удобно, поэтому просто немного подождите.

    Reply
  55. zsrg

    53. Обновил обработку. Теперь просто открываешь ее как внешнюю обработку, выбираешь нужный документ/справочник и печатаешь. Не совсем удобно, но зато ничего дописывать не надо и работает с любой конфигурацией.

    Reply
  56. Ольга7

    Здрасти. Мне не понятно где в Платежных документах находится внешняя обработка? Напишите пожалуйста как это все сделать в Платежных документах

    Reply
  57. zsrg

    56. Ольга, просто жмете меню «Файл — Открыть» или Ctrl+Щ на клавиатуре, или кнопку с желтой папочкой и стрелкой на панели, выбираете файл extprint.ert тот что без подчеркивания в конце, появится выбор типа метаданных «Справочник» или «Документ», затем список видов метаданных и потом непосредственно выбор нужного элемента справочника или документа. А дальше все как описано выше, указываете шаблоны, дополнительные переменные….

    Reply
  58. Ольга7

    При открытии выходит ошибка

    Стр=глПредставлениеДокумента<<?>>(Зн);

    {C:PROGRAM FILES1CV77ORDERSEXTFORMSEXTPRINT.ERT(1199)}: Функция не обнаружена (глПредставлениеДокумента)

    Reply
  59. zsrg

    58. Ольга, простите, на автомате использовал стандартные функции классических конфигураций. Поправил и обновил файл. Загрузите и все должно быть хорошо 🙂 Еще раз извините

    Reply
  60. Ольга7

    Спасибо.Все открывается. Но в шоблоне не работает {Конт.Контрагент.ЮрФизЛицо.ПолнНаим} пишет Поле агрегатного объекта не обнаружено (Контрагент)

    Reply
  61. zsrg

    Ольга, ничего удивительного, так как конфигурация имеет свою структуру метаданных.

    Заходите в режиме конфигуратора, открывайте соответствующий документ и смотрите структуру. Тут уже моя обработка совсем не причем. Скорее всего там реквизит имеет наименование «Клиент» или «Плательщик» или еще что, это уже конкретную конфигурацию смотреть надо.

    Reply
  62. Ольга7

    Спасибо я во всем разобралась, в ворде все шикарно работает огромное спасибо, а вот в екселе ошибка постоянно

    Л.PageSetup.LeftHeader = ТекТекст;

    {G:EXTPRINT(4)EXTPRINT.ERT(257)}: Microsoft Office Excel: Нельзя установить свойство LeftHeader класса PageSetup

    Помогите пожалуйста

    Reply
  63. zsrg

    62. Оля, простите за ожидание. Обновил обработку — проверяйте

    Reply
  64. Griz

    Добрый день. Искали примеры выгрузки в Word. Наткнулись на Вашу обработку, очень монументально. У нас задача немножко другая. Может, подскажите. Есть шаблон Word, в него выгружаем данные из 1С по сотруднику. Все замечально, но надо для списка сотрудников, и чтобы было одним файлом Word, т.е есть список сотрудников, есть файл Word, в нем на каждой странице данные одного из сотрудника по списку, данные отображаются по определенному шаблону. Как этот шаблон повторять с новой страницы, меняя только данные сотрудников. Файл прилагается

    Reply
  65. zsrg

    64. Griz. Скачайте обновленную версию моей обработки, в ней исправлен небольшой баг, как раз связанный с постраничным выводом.

    В прикрепленном файла пример Вашего шаблона для постраничного заполнения. Я только ФИО заполняю, там по аналогии можете все остальное заполнить. Действия следующие:

    1. Запускаете мою обработку как внешний отчет, либо из контекста нужного документа. Пример делался для обычного режима через «Файл — Открыть». Когда спросит тип метаданных, жмите «Отмена»

    2. Добавляете в список шаблонов мой пример

    3. Добавляете константу «Сотр» с видом «Внешний отчет» и выбираете файл из архива с примером — «ВыборСотрудника».

    Жмете «Заполнить». Появится диалог выбора сотрудников, указываете нужных сотрудников и жмете «Сформировать». Все. Должно заполниться постранично.

    Фишка в том, что обработка «ВыборСотрудника» возвращает значение «ТаблицаЗначений» в которой перечислены сотрудники. Я создал там несколько колонок, в частности «Фамилия», «Имя», «Отчество». Данные из которых и заполняются в шаблон.

    Успехов! 🙂

    Reply
  66. Griz

    Добрый день. Что-то сходу не заработало. Выводится просто пустой шаблон. Не совсем понятно каким образом заполняются поля шаблона. Значения берутся из внешнего отчета «Выбор сотрудника». Что тогда должно быть прописано в полях шаблона?

    Reply
  67. zsrg

    Все просто, если обратите внимание, в начале Вашего шаблона идет строчка {$>>Сотр} Что расшифровывается: $ — табличная часть, Первый > — начало копируемого блока, второй > — каждый блок с новой страницы, Сотр — имя константы из которой берется табличная часть. Так как Сотр — у нас Внешний отчет, то внешний отчет должен возвращать значение типа «ТаблицаЗначений» которая и будет использоваться.

    Что произойдет при заполнении: Начиная со строки {$>>Сотр} будет запущена внешняя обработка, затем начнется выборка из табличной части, которую вернулся внешняя обработка. Копировать будет блок до строки {$<}.

    Как заполняются данные — так как значение Сотр содержит таблицу значений, то обращаемся к ее колонкам. В примере, во внешней обработке, добавлено четыре колонки: «Сотрудник» — элемент справочника, «Фамилия», «Имя», «Отчество» — составляющие выделенные из наименования сотрудника.

    Таким образом, чтобы вывести, например, Фамилию, пишем в шаблоне: {Сотр.Фамилия}

    Для Имени: {Сотр.Имя} и т.д.

    Reply
  68. Griz

    Добрый день. Не вижу строчки {$>>Сотр}. В самом верху поставить?

    В результате при первом формировании документа возникает ошибка

    Сотр<<?>>.Фамилия

    Переменная не определена (Сотр)

    И вполе фамилия — [Сотр.Фамилия].

    А если, не закрывая, еще попытаться сформировать, то вроде нет ошибки.

    Reply
  69. Ольга7

    Спасибо Сергей все работает замечательно, большое спасибо вам

    Reply
  70. zsrg

    68. Griz, если ругается на «Сотр» значит Вы не определили ее в списке констант. Второй список, под списком шаблонов. Когда добавляете спрашивает имя константы, пишите вместо «Конст1», значение «Сорт» затем выбираете тип «Внешний отчет» и затем файл обработки для выбора сотрудников. {$>>Сотр} должна стоять в самом начале страницы перед первой строкой. И, не забудьте обновить обработку, если еще этого не сделали. Скачайте последнюю версию обработки для заполнения.

    69. Оля, Вам спасибо за терпение 🙂

    Reply
  71. Griz

    Добрый день. Да что-то не получается.

    Reply
  72. АннаШ

    Спасибо за разработку!

    У меня встал вопрос: есть в Word шаблоне надпись, в которой тоже есть текст для замены (подписи сторон). Вот там замены не происходит.Не поможете?

    Все равно спасибо.

    Reply
  73. Ольга7

    Спасибо за обработку

    Reply
  74. Ольга7

    (71) попробуйте {Контр.Сотр.Фирма} вот так должно все получиться, у меня все прекрасно работает.

    Reply
  75. Доня

    Обработка супер, теперь нет никаких проблем с формами, договорами, актами и прочими заморочками с формами.

    Работаю прямо из 1С, ручками потрудиться только один раз над нужной формой, а потом «клик» и все в «ожуре»

    Спасибо огромное. +++++

    Reply
  76. vestvk

    zsrg, Большое спасибо за разработку.

    Reply
  77. zsrg

    Рад, что еще кому-то она полезна 🙂 Хотя давно надо бы переделать ее под 8-ку. Хотя, думаю тут и без меня легко справиться 🙂

    Reply
  78. Al777

    Спасибо огромное! Эта обработка так выручила, что просто нет слов. Сам бы ещё сидел бы долго, придумывая, как бы выгрузить печатную форму 1С в Word.

    Reply
  79. zsrg

    Рад помочь 🙂

    Reply
  80. gull22

    (77) Будет замечательно, если Вы реализуете свою задумку о переводе обработки в «восьмерку». Я методист по 1с, поэтому мне нелегко справиться с этой задачей. Судя по публикуемой статистики опроса прошлого года, я не один такой на сайте.

    Reply
  81. bestship

    ОГРОМНЕЙШЕЕ СПАСИБО за разработку

    Reply
  82. zsrg

    (81), пожалуйста 🙂

    Reply
  83. Доня

    Добрый день Sergey!

    Я пользуюсь давно Вашей обработкой «Заполнение шаблонов в Word и Excel»

    очень успешная работа !!!!

    Сделала много шаблонов и с вязи с этим разросся список шаблонов и трудно отыскать нужный.

    Долго мучилась, как прописать процедуру: Переместить Шаблоны (вверх, вниз)

    (или сортировать)

    но ничего у меня не получается.

    Большая просьба!

    напишите мне эту процедуру пжл!

    и вышлите мне на мой tathr@mail.ru

    или обновите обработку, добавить эту процедуру.

    Моя бухгалтерия очень будет рада.

    Заранее благодарна. Доня

    Reply
  84. Доня

    Скачала обновленный 09.09.15

    Спасибо!

    Совершенствованию не предела!!!!

    ++++++++++++

    Reply
  85. zsrg

    (84), Пожалуйста 🙂

    Reply
  86. zsrg

    (84), небольшое пояснение к обработке: я намеренно не использовал иконки на кнопках, так как обработка может использоваться на различных конфигурациях, где этих иконок просто может не быть. Поэтому Вы можете просто установить свои иконки на своей конфигурации, для красоты и наглядности 🙂

    Reply
  87. Доня

    (86)

    Все замечательно, но теперь понадобилось сдвинуть Константу Вверх/вниз

    Если не затруднит!

    Напишите еще СдвигКонстанты — можно прямо здесь в комментариях (я вставлю в модуль)

    ПЖЛ

    Reply
  88. Доня

    (86)

    Сдвиг Константы я сделала, правда коряво.

    Но Вы как-то упоминали о замечаниях

    Так вот:

    Когда формирую Договор, то первой строкой в Дог. идет вставленный номер: № {НомерДог}

    и при «заполнить» выбрасывает:

    НомерДоговора<<?>>

    Переменная не определена (НомерДоговора),

    а вот при повторном «заполнить» уже все в порядке.

    Может там с первой строкой что-то посмотреть

    правда, все это мелочи.

    Обработка SUPER !!!!

    Спасибо

    Reply
  89. zsrg

    (88), Пришлите мне файлы шаблона договора на почту, а так же файл extprint.ini из каталога с обработкой, в ней настройки прописаны.

    Посмотрю, в чем дело.

    Reply
  90. Доня

    Спасибо за помощь, с номером договора разобралась — верхние поля были 0

    а вот сдвиг Константы очень корявый

    посмотрите пжл:

    //******************************************************************************

    Процедура ИзменениеПорядкаГрупп(НаправлениеСдвига)

    ТекСтр = ВыбКонст.ТекущаяСтрока();

    ПослСдвигСтр = ВыбКонст.ТекущаяСтрока() — 1;

    //Если ТекСтр <= ПослСдвигСтр Тогда

    Если не((НаправлениеСдвига = 1) и (ТекСтр = ПослСдвигСтр)) Тогда

    ВыбКонст.СдвинутьСтроку(НаправлениеСдвига,ТекСтр);

    КонецЕсли;

    //Иначе

    // Предупреждение(«Группировка «»По документам»» всегда находится

    // |в конце списка и не перемещается.»);

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

    КонецПроцедуры // ИзменениеПорядкаГрупп

    //******************************************************************************

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *