gifts2017

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

Опубликовал Sergey (zsrg) в раздел Печать - Печатные формы документов

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

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

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

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


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

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

Создаете любой документ в 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.2015

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

Скачать файлы

Наименование Файл Версия Размер
- 1208
.zip 27,87Kb
09.09.15
1208
.zip 27,87Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Den (DDD2005) 03.10.08 10:21
Еще бы такой примерчик с Open Office
2. Sergey (zsrg) 03.10.08 16:29
У меня не стоит Open Office, но гляну что можно сделать...
3. Aklexk (AklexK) 09.10.08 08:29
Вот генератор вывода в Word и ОpenOffice, Word на компе не нужен
http://infostart.ru/projects/362/
4. inquiro (inquiro) 09.10.08 16:02
Ценная вещь. После мелкой доработки можно вводить формулы 1С непосредственно в поле "Значение", а в поля Word вписывать только имена констант.
5. inquiro (inquiro) 09.10.08 16:53
Хорошо бы привязать список шаблонов к форме, из которой открывается эта обработка, причём, не размножая файлы настроек.
6. Alex_Sun (Alex_Sun) 20.10.08 12:20
Привет колись, как мне в 2007 Word сделать свои поля текстового ввода такие подсвеченые серым.
Само поле сделал но оно нифига непохоже на то что уже есть в примере.?!
7. Sergey (zsrg) 20.10.08 13:50
Я на стандартных панелях не нашел такой команды, поэтому тупо через настройки панели "Быстрого доступа", есть такая под основной панелью, добавил кнопку из списка всех команд команду "Вставить поле" и пользовался ей.
8. Alex_Sun (Alex_Sun) 22.10.08 11:51
Ок. Это и я понял. Открывается форма "поле" а в нем есть поле - "Поля:" а там?
9. Sergey (zsrg) 22.10.08 12:51
Это не просто "Поле", а "Текстовое поле" в разделе "Поля формы".
Во всех офисах до 2007 его легко найти на панели "Формы": Меню "Вид" - "Панели инструментов" - "Формы"
А в Word 2007 я не нашел такой панели, на память я точно не помню как называется команда, но
раз "Вставить поле" у тебя выдает диалог с типами полей, значит это не то, ищи команду "Вставить текстовое поле" или "Вставить поле формы" или "InsertFormField"
10. Sergey (zsrg) 22.10.08 15:59
ОБНОВИЛ!
Так как очень часто поступали вопросы: "Как добавить поле?", я переделал обработку, теперь нет необходимости ничего дополнительно вставлять. Просто пишем формулу 1С заключенную в фигурные скобки и все! Никаких дополнительных действий делать не надо!
Если фигурные скобки используются в тексте документа, то их можно заменить на любые другие символы или строки в конце текста модуля, например заменить на:

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

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

Успехов!
11. Alex_Sun (Alex_Sun) 23.10.08 08:56
Спасибо, это безусловно более простое решение, но с полями смотрится как то более пафоснее.
12. Александр (masterprint) 29.11.08 21:20
Отличная вещь, может подскажите как правильно встроить в документ - требуется чтоб из одного только дока заполнялся Word?
Спасибо, Александр masterprint@aplus.by
13. Sergey (zsrg) 07.12.08 20:58
По многочисленным просьбам добавлено:
- Работа с документами Excel
- привязка списка шаблонов к виду документов/справочников
- получение значений констант из внешних отчетов/обработок
- работа со значениями констант типа "ТаблицаЗначений"
- проверка прав доступа к объектам в списке констант
подробнее в описании программы

Пишите!
14. Shontas (Shontas) 09.12.08 08:06
zsrg, даже и не знаю как отблагодарить.
Сам ковырялся с подобной проблемой, но шел другим путем и не туда ушел. У нас на базе платформы 1С7 самописная база для учета и ведения заявок по ремонту, из этой же базы планировалось формировать договор и доки для контрагента.
Так что обработка В ТЕМУ. Спасибо
15. Sergey (zsrg) 09.12.08 12:53
Рад что обработка пригодилась не только мне! :)
Вообще я начинал писать эту обработку для кадровиков в контору в которой нет своего программиста. Они хотели делать личные карточки, трудовые договоры и т.п.
Им хотелось чтобы они сами могли создать любой документ в Office и заполнить его из 1С. Поэтому и была сделана такая обработка. Потом уже она дорабатывалась и превратилась в то, что вы сейчас видите.

Есть еще много идей по развитию этой обработки, так что если кому-то нравится и есть свои идеи, подкидывайте, буду дорабатывать!
16. Надежда (Снп_1) 10.12.08 09:57
Отличная и нужная разработка. Большое спасибо за такой чудесный подарок.
17. Надежда (Снп_1) 10.12.08 16:10
Уважаемый zsrg! У меня много конфигураций разработанных с нуля, практически во всех не поддерживается обработка "Регистрация внешних форм", поэтому вашу обработку встроила в отчеты и вывываю из документа "ОткрытьФормуМодально". При этом, если вхожу в документ , после того как его закрыла список шаблонов чист и к нему надо вновь искать путь. Как поправить?
18. Sergey (zsrg) 10.12.08 21:03
Список шаблонов привязывается к контексту из которого он был вызван. Так как обработка писалась под стандартный вызов внешней печатной формы, то необходимо так же вызывать ее и из своих конфигураций. А именно важно только два момента:
1. передавать в обработку значение типа "СписокЗначений"
2. в списке значений должен быть передан контекст вызываемой формы
Пример вызова для Вашего случая:

Сп = СоздатьОбъект("СписокЗначений");
Сп.Установить("Контекст",Контекст);
ОткрытьФормуМодально("Отчет",Сп,"..\extprint.ert");

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

[Наименование шаблона]
Файл=ПУТЬ_ДО_ФАЙЛА_ШАБЛОНА
Контекст=Тип контекста, например: Документ.Реализация
СПИСОК КОНСТАНТ

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

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

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

Например:

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

Если возникнут проблемы или пожелания, пишите буду рад помочь.
19. Sergey (zsrg) 10.12.08 21:09
Ах да, забыл уточнить, что в описании типа константы могут отсутствовать такие параметры как "Точность", за ненадобностью, например для Даты, и присутствовать дополнительные параметры, например для строки этот будет:
Строка.ДлинаСтроки.ПризнакМногострочногоТекста.ПризнакСтрокиНеограниченнойДлины

Если ПризнакСтрокиНеограниченнойДлины = 1, то параметр "ДлинаСтроки" не имеет смысла но всеравно должен присутствовать
20. Надежда (Снп_1) 11.12.08 17:30
Уважаемый zsrg! В одну из своих разработок вставила все функции для работы обработки "Регистрация внешних форм" и ваша обработка прекрасно заработала в моей оригинальной конфигурации.
Еще раз большое спасибо. Из всего, что здесь представлено использую в своей работе :
1.FormEx
2.OSV252
3.Группировки
Ваша разработка в ряду этих действительно нужных, полезных и умных для меня разработок. Еще раз спасибо.
21. Sergey (zsrg) 12.12.08 00:00
И Вам спасибо за внимание к моей работе :)
22. Алекандр (vitae) 22.12.08 10:55
Cпасибо Вам! Я и сам постоянно работаю над связками Office + 1C, но Ваши произведения более профессиональны.
23. Sergey (zsrg) 22.12.08 14:23
Рад, что пригодилась обработка.
Странно, что у всех кто пользуется обработкой нет пожеланий и замечаний. Такого быть не может, чтобы обработка полностью удовлетворяла...
Ну если так, то хорошо, конечно
24. Sergey (zsrg) 12.02.09 14:37
Так как часто обработкой пользуются неопытные программисты, добавил возможность просмотра структуры справочников и документов, а также формирование примера шаблона в Word'e и Excel'e на основе текущего документа.
25. Валентин (walent555) 14.04.09 09:48
Уважаемый zsrg! Не могу реализовать формулу вида
{?(конт.рекв=1,"строка1","строка2")} в Word.
т.е. в зависимости от условия надо напечатать ту или иную строку.
Подскажите, если такое возможно,
а вообще обработка отличная, большое спасибо!!!

26. Василий Демидов (Душелов) 14.04.09 09:50
(25) В шаблоне одно наименование реквизита.
А уже при заполнении надо по условие подставлять нужное значение.
27. Валентин (walent555) 14.04.09 10:18
Извините, все работает, ставил не те кавычки...
Спасибо за обработку!
28. Сергей Коробов (maximaorsk) 23.04.09 14:05
Здравствуйте, zsrg! Подключаю вашу обработку к документу "возврат поставщику" (1С 7.7. конф. "торговля+склад"). Шаблон Word содержит карточку товара с различными переменными. Необходимо вывести данные из табличной части документа, но не в форме таблицы, а так, что бы на каждый товар была заполнена своя карточка и что бы все эти карточки были в одном документе. В общем получить список товаров возврата кроме как в виде таблицы (при использовании знака $) не получается. Что делать?
29. Sergey (zsrg) 23.04.09 14:29
Привет, maximaorsk! Сейчас никак, но ты можешь скинуть мне на zsrg@yandex.ru образец того, что ты хочешь получить, я подумаю как изменить обработку. Завтра 23/04 я на разъездах по клиентам, а вот в выходные займусь и сделаю
30. Sergey (zsrg) 25.04.09 14:18
Как и обещал, доработал обработку и обновил ее и описание на странице. Вот что добавилось:

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

Примеры:

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

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

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

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

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

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


Жду новых пожеланий и замечаний! :)
32. Sergey (zsrg) 09.06.09 13:24
33. ГАВ (ГАВ) 17.06.09 13:29
Отличная разработка, в ТиС работает на ура. А вот как ее прикрутить в 1С 7.7 Бух к документам "поступление товаров" и "услуги сторонних организаций"? В этих документах вообще нет кнопки печать...
34. xvasx@yandex.ru Зачем (xVaSx) 30.06.09 22:17
Супер. Ещё бы в колонтитулах формулы работали.
35. Sergey (zsrg) 01.07.09 10:02
(34) xVaSx, не вопрос, я сейчас в отпуске, до конца недели, с понедельника выйду на работу и внесу изменения в обработку, будет работать и колонтитулы :) Как поправлю, сразу сообщу.
36. xvasx@yandex.ru Зачем (xVaSx) 02.07.09 13:12
Сенькствую. Я уж и сам управился, убогенько, правда, но всё же. Щас над багом колдую. Почему то у некоторых формул (и не только, пока не понял закономерности) в таблице обрезается первый символ и остается конец команды. А в вашем же примере в подвале таблицы вылазит вот это:
_____________________
№ | Товар | Кол-во|...
_____________________
[сего: | |...
{Конт.Итог(] | 0 |
------------------------

Хрюша про сп2
Ворд 2003
37. xvasx@yandex.ru Зачем (xVaSx) 02.07.09 16:01
Область.SetRange(Поз + НачПоз - 1, Поз + КонПоз + СтрДлина(КонКоманды) - 1);

Выделяет на один символ позже и с начала и с конца, хотя сами НачПоз и КонПоз вычисляются правильно (с учетом табов). Видимо сам ворд криво проглатывает символ табуляции при переходе в др. колонку.
38. xvasx@yandex.ru Зачем (xVaSx) 02.07.09 17:03
Это происходит, когда в таблице нет повторяющихся строк ($) (табличная часть пуста), но не всех таблицах (в вашем примере "Отпустил", "Получил" выходят нормально). И ещё (может не существенно) в двух разных случаях глючила формула из второй ячейки строки.
У меня тоже таблица 1х2, просто для оформления, причем в колонтитуле (не спрашивайте меня зачем).
39. Sergey (zsrg) 02.07.09 19:32
Скиньте на zsrg@yandex.ru свой шаблон, посмотрю в чем дело. Но не раньше понедельника, не люблю домой тащить работу, отпуск есть отпуск. Обещаю в понедельник посмотреть в чем дело и сразу отпишусь
40. xvasx@yandex.ru Зачем (xVaSx) 03.07.09 11:28
(39)У меня сейчас мой шаблон через вашу обработку нормально отработался, правда не в колонтитуле, а в теле документа. В общем заполните своей обработкой свой же шаблон (Пример.doc) документом у которого табличная часть пуста. Глюки немного разные, но причина видимо одна.
41. xvasx@yandex.ru Зачем (xVaSx) 03.07.09 12:31
Справился я со своим глюком. Я просто рассматривал каждый колонтитул как отдельный параграф, а надо было как отдельную область документа со своим набором параграфов.
И всё же глюк с пустой табличной частью имеет место быть...
42. Sergey (zsrg) 08.07.09 07:55
Как и обещал исправил и дополнил обработку. Добавлена обработка колонтитулов и исправлена бага с пустой табличной частью документа, при формировании шаблона в Word'е.

Всем спасибо! :)
43. Sergey (zsrg) 08.07.09 08:07
(33), ГАВ. На вопрос: "А вот как ее прикрутить в 1С 7.7 Бух к документам "поступление товаров" и "услуги сторонних организаций"? В этих документах вообще нет кнопки печать...", отвечаю:

Чтобы сделать заполнение Word и Excel из документа, в котором нет кнопки "Печать" и при этом не переделывать конфигурацию, необходимо открыть обработку просто как внешний отчет через меню в 1С "Файл-Открыть..." или скопировать ее в папку ExtForms и добавить в разделе "Сервис-Дополнительные возможности" обозвав, например "Внешняя печать" или еще как.
Действия в обработке следующие:
1. ДОбавляем шаблон (Word или Excel)
2. Добавляем константу, назвав, например "Док" и выбираем ее тип как "Документ" нужного вида.
3. В шаблоне вместо "Конт." перед реквизитами документа, указываем имя константы "Док." и все. Все остальное как обычно.
Разница в том, что перед заполнением надо будет два раза щелкать в ячейке "Значение" рядом константной "Док" и выбирать нужный документ. Потом только жать "Заполнить". Будут вопросы пишу, отвечу сразу :)
44. И.Ф. Серебров (sh67dgfy) 20.07.09 20:30
Хорошая работа, спасибо за труд.
45. Юля Захарова (Юля21) 19.08.09 08:48
Здравствуйте! Я начинающий программист 1С и до этого времени не работала с подобным видом отчетов. Пытаюсь разобраться и подключить свой внешний отчет к этой обработке но у меня постоянно выдает ошибку "Значение не предоставляет агрегатный объект". Я явно что то не так делаю))))Только хоть убей не могу разобраться что) не подскажите в каком виде приблизительно должна быть внешняя обработка. что бы все работало? Заранее спасибо
46. Sergey (zsrg) 19.08.09 11:38
Здравствуйте, Юля!
Моя обработка подключается как внешняя печатная форма. Нет необходимости писать для этого что-то свое. Достаточно проделать следующее:
1. Скопировать все файлы из архива в папку ExtForms\PrnForms в вашей конфигурации 1С.
2. Непосредственно при работе в 1С:Предприятии открыть пункт меню "Сервис - Регистрация внешних печатных форм"
3. Выбрать нужный вид документа/справочника
4. Нажать кнопку "Изменить" и выбрать "Внести в список" и выбрать "extprint"
5. Открыть любой документ выбранного вида в журнале документов, и нажать стрелку рядом с кнопкой печати, чтобы выбрать мою обработку.
6. Далее все по инструкции из описания к моей обработке на этой странице

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

Сп = СоздатьОбъект("СписокЗначений");
Сп.Установить("Контекст",КонтекстДокументаИлиСправочника);
ОткрытьФормуМодально("Отчет",Сп,"ПутьКМоейОбработке\extprint.ert");

Но что-то мне подсказывает, что Вы просто не можете сделать шаблон непосредственно в Word'е / Excel'е и называете его внешним отчетом...
Если это так, то пришлите мне Ваш шаблон на почту zsrg@yandex.ru я внесу коррективы и добавлю комментарии к Вашим ошибкам.
Юля21; +1 Ответить
47. Евгений Пупков (Chuba73) 24.10.09 14:51
Сердечно благагодарю, ибо аналоги стоят денег.
48. victor andone (victory) 05.01.10 20:29
49. Дима Мартаков (Немел) 22.09.10 12:58
а вот такую обработку можно сделать только для 1с Предприятие 7.7. Бухгалтерский учет?
Возможно ли это сделать для 1с Предприятие 7.7 Платежные документы?
50. Sergey (zsrg) 22.09.10 14:28
49. Обработка универсальная и работают с любой конфигурацией 1С 7.7. Хоть самописной.

С месяц назад начал работать с 8-й, мне пока не потребовалось, но если надо, могу переработать обработку под работу под 8-й.
51. Дима Мартаков (Немел) 22.09.10 14:35
а вы не могли б написать процедуру как это все сделать в Платежных документах там просто нету во вкладки Сервис вкладки Регистрация внешних печатных форм
52. Sergey (zsrg) 22.09.10 16:37
51. Я уже описывал в 46-м сообщении, посмотрите чуть ниже на этой странице в конце сообщения, как вызывать обработку из своего отчета.
Если уже совсем просто надо, без программирования, то я доработаю ее завтра немного.
53. Дима Мартаков (Немел) 29.09.10 09:23
Я попробовал в 1с Предприятие 7.7. Бухгалтерский учет все замечательно,а вот в 1с Предприятие 7.7. Платежные документы она не работает, как мне сделать чтоб в 1с Предприятие 7.7. Платежные документы она тоже могла выполнять обработку?
Ольга7; +1 Ответить
54. Sergey (zsrg) 29.09.10 12:13
53. Сегодня-завтра, я доработаю обработку и все будет работать и с платежными документами. Пока же необходимо написать свою обработку из которой уже вызывать мою. Что конечно же не удобно, поэтому просто немного подождите.
55. Sergey (zsrg) 29.09.10 13:56
53. Обновил обработку. Теперь просто открываешь ее как внешнюю обработку, выбираешь нужный документ/справочник и печатаешь. Не совсем удобно, но зато ничего дописывать не надо и работает с любой конфигурацией.
56. Оля Веснина (Ольга7) 30.09.10 08:22
Здрасти. Мне не понятно где в Платежных документах находится внешняя обработка? Напишите пожалуйста как это все сделать в Платежных документах
57. Sergey (zsrg) 30.09.10 08:30
56. Ольга, просто жмете меню "Файл - Открыть" или Ctrl+Щ на клавиатуре, или кнопку с желтой папочкой и стрелкой на панели, выбираете файл extprint.ert тот что без подчеркивания в конце, появится выбор типа метаданных "Справочник" или "Документ", затем список видов метаданных и потом непосредственно выбор нужного элемента справочника или документа. А дальше все как описано выше, указываете шаблоны, дополнительные переменные....
58. Оля Веснина (Ольга7) 30.09.10 13:29
При открытии выходит ошибка
Стр=глПредставлениеДокумента<<?>>(Зн);
{C:\PROGRAM FILES\1CV77\ORDERS\EXTFORMS\EXTPRINT.ERT(1199)}: Функция не обнаружена (глПредставлениеДокумента)
59. Sergey (zsrg) 30.09.10 14:50
58. Ольга, простите, на автомате использовал стандартные функции классических конфигураций. Поправил и обновил файл. Загрузите и все должно быть хорошо :) Еще раз извините
60. Оля Веснина (Ольга7) 30.09.10 21:10
Спасибо.Все открывается. Но в шоблоне не работает {Конт.Контрагент.ЮрФизЛицо.ПолнНаим} пишет Поле агрегатного объекта не обнаружено (Контрагент)
61. Sergey (zsrg) 01.10.10 00:20
Ольга, ничего удивительного, так как конфигурация имеет свою структуру метаданных.
Заходите в режиме конфигуратора, открывайте соответствующий документ и смотрите структуру. Тут уже моя обработка совсем не причем. Скорее всего там реквизит имеет наименование "Клиент" или "Плательщик" или еще что, это уже конкретную конфигурацию смотреть надо.
62. Оля Веснина (Ольга7) 08.10.10 09:18
Спасибо я во всем разобралась, в ворде все шикарно работает огромное спасибо, а вот в екселе ошибка постоянно
Л.PageSetup.LeftHeader = ТекТекст;
{G:\EXTPRINT(4)\EXTPRINT.ERT(257)}: Microsoft Office Excel: Нельзя установить свойство LeftHeader класса PageSetup
Помогите пожалуйста
63. Sergey (zsrg) 20.10.10 01:11
62. Оля, простите за ожидание. Обновил обработку - проверяйте
64. Griz (Griz) 20.10.10 11:25
Добрый день. Искали примеры выгрузки в Word. Наткнулись на Вашу обработку, очень монументально. У нас задача немножко другая. Может, подскажите. Есть шаблон Word, в него выгружаем данные из 1С по сотруднику. Все замечально, но надо для списка сотрудников, и чтобы было одним файлом Word, т.е есть список сотрудников, есть файл Word, в нем на каждой странице данные одного из сотрудника по списку, данные отображаются по определенному шаблону. Как этот шаблон повторять с новой страницы, меняя только данные сотрудников. Файл прилагается
Прикрепленные файлы:
Заявление_Electron (на форум).dot
65. Sergey (zsrg) 20.10.10 14:53
64. Griz. Скачайте обновленную версию моей обработки, в ней исправлен небольшой баг, как раз связанный с постраничным выводом.

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

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

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

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

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

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

Успехов! :)
Прикрепленные файлы:
template.zip
66. Griz (Griz) 21.10.10 08:17
Добрый день. Что-то сходу не заработало. Выводится просто пустой шаблон. Не совсем понятно каким образом заполняются поля шаблона. Значения берутся из внешнего отчета "Выбор сотрудника". Что тогда должно быть прописано в полях шаблона?
67. Sergey (zsrg) 21.10.10 08:59
Все просто, если обратите внимание, в начале Вашего шаблона идет строчка {$>>Сотр} Что расшифровывается: $ - табличная часть, Первый > - начало копируемого блока, второй > - каждый блок с новой страницы, Сотр - имя константы из которой берется табличная часть. Так как Сотр - у нас Внешний отчет, то внешний отчет должен возвращать значение типа "ТаблицаЗначений" которая и будет использоваться.

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

Как заполняются данные - так как значение Сотр содержит таблицу значений, то обращаемся к ее колонкам. В примере, во внешней обработке, добавлено четыре колонки: "Сотрудник" - элемент справочника, "Фамилия", "Имя", "Отчество" - составляющие выделенные из наименования сотрудника.
Таким образом, чтобы вывести, например, Фамилию, пишем в шаблоне: {Сотр.Фамилия}
Для Имени: {Сотр.Имя} и т.д.
68. Griz (Griz) 21.10.10 11:53
Добрый день. Не вижу строчки {$>>Сотр}. В самом верху поставить?
В результате при первом формировании документа возникает ошибка
Сотр<<?>>.Фамилия
Переменная не определена (Сотр)
И вполе фамилия - [Сотр.Фамилия].
А если, не закрывая, еще попытаться сформировать, то вроде нет ошибки.
69. Оля Веснина (Ольга7) 21.10.10 18:27
Спасибо Сергей все работает замечательно, большое спасибо вам
Доня; +1 Ответить
70. Sergey (zsrg) 21.10.10 19:56
68. Griz, если ругается на "Сотр" значит Вы не определили ее в списке констант. Второй список, под списком шаблонов. Когда добавляете спрашивает имя константы, пишите вместо "Конст1", значение "Сорт" затем выбираете тип "Внешний отчет" и затем файл обработки для выбора сотрудников. {$>>Сотр} должна стоять в самом начале страницы перед первой строкой. И, не забудьте обновить обработку, если еще этого не сделали. Скачайте последнюю версию обработки для заполнения.


69. Оля, Вам спасибо за терпение :)
71. Griz (Griz) 22.10.10 07:36
Добрый день. Да что-то не получается.
Прикрепленные файлы:
Заявление_Electron(proba).dot
Ошибка.doc
Результат.doc
72. Анна Шнипова (АннаШ) 02.12.10 16:18
Спасибо за разработку!
У меня встал вопрос: есть в Word шаблоне надпись, в которой тоже есть текст для замены (подписи сторон). Вот там замены не происходит.Не поможете?
Все равно спасибо.
73. Оля Веснина (Ольга7) 02.05.11 20:22
74. Оля Веснина (Ольга7) 11.09.11 16:44
(71) попробуйте {Контр.Сотр.Фирма} вот так должно все получиться, у меня все прекрасно работает.
75. Дониэла Иванова (Доня) 26.09.11 12:40
Обработка супер, теперь нет никаких проблем с формами, договорами, актами и прочими заморочками с формами.
Работаю прямо из 1С, ручками потрудиться только один раз над нужной формой, а потом "клик" и все в "ожуре"
Спасибо огромное. +++++
76. Валера Иванов (vestvk) 15.04.12 22:55
zsrg, Большое спасибо за разработку.
77. Sergey (zsrg) 16.04.12 01:22
Рад, что еще кому-то она полезна :) Хотя давно надо бы переделать ее под 8-ку. Хотя, думаю тут и без меня легко справиться :)
78. Александр Жерздев (Al777) 17.12.13 08:21
Спасибо огромное! Эта обработка так выручила, что просто нет слов. Сам бы ещё сидел бы долго, придумывая, как бы выгрузить печатную форму 1С в Word.
79. Sergey (zsrg) 18.12.13 03:34
80. юрий гулидов (gull22) 10.07.14 08:45
(77) Будет замечательно, если Вы реализуете свою задумку о переводе обработки в "восьмерку". Я методист по 1с, поэтому мне нелегко справиться с этой задачей. Судя по публикуемой статистики опроса прошлого года, я не один такой на сайте.
81. Andrey (bestship) 12.10.14 14:06
ОГРОМНЕЙШЕЕ СПАСИБО за разработку
82. Sergey (zsrg) 12.10.14 20:07
83. Дониэла Иванова (Доня) 08.09.15 19:50
Добрый день Sergey!
Я пользуюсь давно Вашей обработкой "Заполнение шаблонов в Word и Excel"
очень успешная работа !!!!
Сделала много шаблонов и с вязи с этим разросся список шаблонов и трудно отыскать нужный.
Долго мучилась, как прописать процедуру: Переместить Шаблоны (вверх, вниз)
(или сортировать)
но ничего у меня не получается.
Большая просьба!
напишите мне эту процедуру пжл!
и вышлите мне на мой tathr@mail.ru
или обновите обработку, добавить эту процедуру.
Моя бухгалтерия очень будет рада.
Заранее благодарна. Доня
Прикрепленные файлы:
84. Дониэла Иванова (Доня) 09.09.15 10:29
Скачала обновленный 09.09.15
Спасибо!
Совершенствованию не предела!!!!
++++++++++++
85. Sergey (zsrg) 09.09.15 13:55
86. Sergey (zsrg) 09.09.15 13:57
(84), небольшое пояснение к обработке: я намеренно не использовал иконки на кнопках, так как обработка может использоваться на различных конфигурациях, где этих иконок просто может не быть. Поэтому Вы можете просто установить свои иконки на своей конфигурации, для красоты и наглядности :)
87. Дониэла Иванова (Доня) 09.09.15 16:47
(86) zsrg,
Все замечательно, но теперь понадобилось сдвинуть Константу Вверх/вниз
Если не затруднит!
Напишите еще СдвигКонстанты - можно прямо здесь в комментариях (я вставлю в модуль)
ПЖЛ
88. Дониэла Иванова (Доня) 10.09.15 10:17
(86) zsrg,
Сдвиг Константы я сделала, правда коряво.
Но Вы как-то упоминали о замечаниях
Так вот:
Когда формирую Договор, то первой строкой в Дог. идет вставленный номер: № {НомерДог}
и при "заполнить" выбрасывает:

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

а вот при повторном "заполнить" уже все в порядке.
Может там с первой строкой что-то посмотреть
правда, все это мелочи.

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

Спасибо
89. Sergey (zsrg) 10.09.15 16:52
(88), Пришлите мне файлы шаблона договора на почту, а так же файл extprint.ini из каталога с обработкой, в ней настройки прописаны.
Посмотрю, в чем дело.
90. Дониэла Иванова (Доня) 10.09.15 18:06
Спасибо за помощь, с номером договора разобралась - верхние поля были 0
а вот сдвиг Константы очень корявый
посмотрите пжл:
//******************************************************************************
Процедура ИзменениеПорядкаГрупп(НаправлениеСдвига)
ТекСтр = ВыбКонст.ТекущаяСтрока();
ПослСдвигСтр = ВыбКонст.ТекущаяСтрока() - 1;
//Если ТекСтр <= ПослСдвигСтр Тогда
Если не((НаправлениеСдвига = 1) и (ТекСтр = ПослСдвигСтр)) Тогда
ВыбКонст.СдвинутьСтроку(НаправлениеСдвига,ТекСтр);
КонецЕсли;
//Иначе
// Предупреждение("Группировка ""По документам"" всегда находится
// |в конце списка и не перемещается.");
//КонецЕсли;
КонецПроцедуры // ИзменениеПорядкаГрупп

//******************************************************************************
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа