INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Александрович Андрей | Генеральный директор | ALEXROVICH

«Визуализация бизнес-показателей из 1С на TV-панели»

• Что может быть лучше отчетов и графиков 1С:Предприятие 8? • Какие бизнес-показатели нужно визуализировать и зачем? • Как за 30 минут сделать TV-панель с ключевыми цифрами из 1С для собственника компании? • Создание TV-панели на примере показателей отдела продаж. • Повышение выполнения планов продаж на +10% за счет контроля активности менеджеров используя TV-панель. • В чем отличие BI-систем (систем бизнес-аналитики) от дашбордов (панелей визуализации данных)? • TV-панель с показателями работы сотрудников как инструмент контроля и повышения эффективности компании.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10

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

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

См. также

Комментарии
Сортировка: Древо
1. maks_20 18 14.03.18 13:05 Сейчас в теме
Все бы ничего, но за 10 стартмани врядли кто-то захочет скачать, тем более, что почти весь код приведен в статье)))
5. LeoKeyn 19 14.03.18 16:30 Сейчас в теме
(1) Цену я поменял, а на счет все написано в статье, почти да. Но я долговато мучился с этой темой и надеюсь люди, которым статья поможет скачают ее в благодарность :-)
2. Lem0n 96 14.03.18 13:08 Сейчас в теме
"Это моя первая статья на данном портале..." и я решил начать свою деятельность здесь попыткой грабежа местных
klaus38; CyberCerber; +2 Ответить
3. khabibullin.tu 72 14.03.18 13:43 Сейчас в теме
Автор может быть вы не в курсе, но 10 стартмани это 400 рублей, просить за это 400 рублей ? WTF ?
4. LeoKeyn 19 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 19 15.03.18 13:55 Сейчас в теме
(6) Если честно не смотрел, но видимо воссоздал их путь:-) Что тоже считаю не плохо :-)
9. mcgoblin 1 09.07.18 16:26 Сейчас в теме
(8)Должен ли на сервере стоять ms office?
10. LeoKeyn 19 09.07.18 16:59 Сейчас в теме
(9) С этим вопросом изначально и была проблема. Нет не должен, только на машине клиента.
11. mcgoblin 1 09.07.18 20:20 Сейчас в теме
(10)А вот если , допустим на серваке поставят ворд, то будет ли у клиента формироваться документ. Не сталкивались с таким?
13. LeoKeyn 19 10.07.18 08:51 Сейчас в теме
(11) В случае, если у клиента не установлен microsoft office обработка работать не будет, так как документ формируется на стороне клиента при помощи com объекта. Если вам необходимо формировать документ именно на сервере, то можно процедуру
&НаКлиенте
Процедура СобратьМакет(СсылкаНаОбъект)

Перенести на сервер:
&НаСервере
Процедура СобратьМакет(СсылкаНаОбъект) 

и заменить
 Word.Application.Visible = Истина;//установить видимость документа
            Word.Activate();//открыть документ пользователю

НА
Документ.SaveAs(ПутьКСетевойПапкеКоторуюВидитНужныйКлиент)
16. mcgoblin 1 10.07.18 13:51 Сейчас в теме
(13) я имел ввиду, если не по вашей обработке, работать, а через стандартное создание всего на сервере, но в прочем это чисто теоретический вопрос. так как вчера по Вашему образу состряпал свой говнокод, собрал параметры и вставил их в макет и сегодня все заработало.
17. LeoKeyn 19 10.07.18 13:52 Сейчас в теме
18. LeoKeyn 19 10.07.18 13:53 Сейчас в теме
(16) Создать то все можно, а вот с передачей через сервер-клиент много проблем
12. mcgoblin 1 09.07.18 20:31 Сейчас в теме
(10) Выходит ошибка
{ВнешняяОбработка.БН_ПриказОПриёме.Форма.Форма.Форма(21)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища): Ошибка получения значения из временного хранилища: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.: Ошибка преобразования данных XDTO:
Запись значения свойства 'response':
форма: Элемент
имя: {http://v8.1c.ru/8.2/mngsrv/ws}response: Ошибка отображения типов:
Отсутствует отображение для типа 'ОболочкаActiveDocument'
14. LeoKeyn 19 10.07.18 08:53 Сейчас в теме
(12) Какого вида у вас макет? Должен быть не ActiveDocument, а двоичный макет
Первое, что нам необходимо сделать, это создать макет нашего документа(Изображение 3). Макет понадобится двоичный, т.к. обычный мы на клиент не передадим(как я и говорил ранее). Заменяем нужные данные в шаблоне, перед загрузкой в обработку, "Параметрами", у меня они выглядят так, на примере: "{Сотрудник}"(кавычки не учитывать), после чего загружаем в Обработку-Макет.
Прикрепленные файлы:
mcgoblin; +1 Ответить
15. mcgoblin 1 10.07.18 13:48 Сейчас в теме
(14)Да, ошибку я вчера заметил, забыл отписаться)
Оставьте свое сообщение