Обработка печатной формы WORD клиент-сервер УФ

Печать - Универсальные печатные формы

Это моя первая статья на данном портале, но попытаюсь изложить все понятно и подробно. Долгое время у меня заняло создание такой вот внешней обработки. Есть очень много примеров, как сделать подобное на неуправляемых формах (2.0) и очень мало информации касательно управляемых(3.0), по крайней мере я многого найти не смог в доступе. Создание подобное обработки выглядит вполне несложно, если производить все действия на сервере, как это было с 2.0, но в нашем случае необходимо инициализировать открытие документа на клиенте, чему сильно мешает отсутствие возможности передать макет Active Document с сервера на клиент.

Итак, пойдем по порядку. Подобная информация уже есть в сети, но для полноты картины кратко разъясню регистрацию обработки в системе:

1. Открываем модуль объекта обработки и создаем там Функцию СведенияОВнешнейОбработке() (естественно экспортную):

 
  СведенияОВнешнейОбработке()

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

Далее понадобится создать еще две процедуры здесь же:

2. Функция добавления команды, которую мы вызываем ранее(просто, чтобы все было визуально разделено и не награмождалось скопом в одной функции):

 
 ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")

3. И функция по созданию этой самой таблицы команд:

 
 ПолучитьТаблицуКоманд()

(Из комментариев можно подробней понять, для чего используется тот или иной параметр-поле данной таблицы)

На этом настройка регистрации внешней обработки в нужной вам конфигурации закончена.

Далее. Самое интересное: создание, заполнение и вывод макета клиенту.

Первое, что нам необходимо сделать, это создать макет нашего документа(Изображение 3). Макет понадобится двоичный, т.к. обычный мы на клиент не передадим(как я и говорил ранее). Заменяем нужные данные в шаблоне, перед загрузкой в обработку, "Параметрами", у меня они выглядят так, на примере: "{Сотрудник}"(кавычки не учитывать), после чего загружаем в Обработку-Макет.

Теперь в модуле формы создаем процедуру, которая будет вызвана при обращении к печати именно в таком виде(за исключением содержимого, заполнять можете как вам угодно), процедура так же должна быть экспортной и на клиенте, так как вызывается из конфигурации и выполнение назначено на клиентской стороне:

 
 Печать(ИдентификаторКоманды, МассивОбъектов)

Макет я собираю и вызываю в отдельной процедуре, обязательно на клиенте. 

 
 СобратьМакет(СсылкаНаОбъект)

Для сбора макета нам понадобится получить этот самый макет уже с сервера. Передаю я его через временное хранилище:

 
 ПолучитьМакетСервер(ИмяМакета)

Далее нужно получить данные для заполнения макета, естественно на сервере, по скольку может понадобиться обратиться к сторонним регистрам и справочникам, если нет, то можно выполнить и на клиенте, получив ссылку на интересующий нас объект:

 
 ПолучитьДанные(СсылкаНаОбъект)

Данные складываем в структуру,где ключ - имя параметра в макете(без фигурных скобок), а значение - собственно значение, которое необходимо подставить.

На этом завершается наше создание. Вы можете скачать обработку в готовом виде, в ней также реализован запуск через форму обработки, то есть с помощью открытия обработки без регистрации ее в конфигурации. Надеюсь, моя статья многим поможет и окажется полезной. Спасибо большое за внимание!

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

Наименование Файл Версия Размер
: Печатная форма WORD 8.3 управляемые формы клиент-сервер
.epf 23,15Kb
14.03.18
2
.epf 1.0 23,15Kb 2 Скачать

См. также

Комментарии
1. Максим Бурляев (maks_20) 18 14.03.18 13:05 Сейчас в теме
Все бы ничего, но за 10 стартмани врядли кто-то захочет скачать, тем более, что почти весь код приведен в статье)))
5. Василий Максименко (LeoKeyn) 7 14.03.18 16:30 Сейчас в теме
(1) Цену я поменял, а на счет все написано в статье, почти да. Но я долговато мучился с этой темой и надеюсь люди, которым статья поможет скачают ее в благодарность :-)
2. Andrey BedaNastala (Lem0n) 65 14.03.18 13:08 Сейчас в теме
"Это моя первая статья на данном портале..." и я решил начать свою деятельность здесь попыткой грабежа местных
klaus38; CyberCerber; +2 Ответить
3. TIM TIM (khabibullin.tu) 70 14.03.18 13:43 Сейчас в теме
Автор может быть вы не в курсе, но 10 стартмани это 400 рублей, просить за это 400 рублей ? WTF ?
4. Василий Максименко (LeoKeyn) 7 14.03.18 14:45 Сейчас в теме
(3) Извините, не правильно понял курс) подправлю)
6. Сергей Сытько (8SiriuS8) 117 14.03.18 17:10 Сейчас в теме
(0) Автор как понимаю БСП никогда не смотрел с примерами. Полностью перепечатка оттуда. И самое интересное что в последних релизах БСП 1С отказалась от Word.Application теперь все делается через xml и сборку docx.
yelloo; wonderboy; +2 Ответить
7. Евгений Артемьев (yelloo) 14.03.18 22:27 Сейчас в теме
(6)
отказалась от Word.Application, теперь все делается через xml и сборку docx
Спасибо, надо ознакомиться
8. Василий Максименко (LeoKeyn) 7 15.03.18 13:55 Сейчас в теме
(6) Если честно не смотрел, но видимо воссоздал их путь:-) Что тоже считаю не плохо :-)
Оставьте свое сообщение