Выводим печатную форму документа в браузер

27.10.14

Интеграция - WEB-интеграция

Подход к выводу печатной формы документа в браузер без входа в 1с

В рамках поддержки API курьерской службы появилась необходимость открывать печатную форму 1с-документа в браузере без входа в саму конфигурацию. Данная функция понадобилась для возможности печати акта приема-передачи на стороне Контрагента. 

Ниже приведу общий подход реализации данной задачи.

Исходными данными будет признак, по которому мы будем искать документ для печати, например, номер документа (number).

На стороне 1с нам понадобится создать web-сервис, который на вход будет принимать номер документа и отдавать двоичные данные pdf-файла. Возвращаемый тип: string (http://www.w3.org/2001/XMLSchema)
На стороне web-сервера сознаём php-файл, который будет выводить данные файла, полученные из 1с.

Код в 1с:

Функция Print(number) 
    НайденныйДокумент = Документы.ЗаказПокупателя.НайтиПоНомеру(number);
    ТабДок = Документы.ЗаказПокупателя.Печать(НайденныйДокумент);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("pdf");
    ТабДок.Записать(ИмяВременногоФайла,ТипФайлаТабличногоДокумента.PDF);
    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
    Возврат Base64Строка(ДвоичныеДанные);
КонецФункции


Код в php:

<?php
    header("Content-type: application/pdf; charset=UTF-8");
    $client = new SoapClient("http://api.server.com/XMLPackage.1cws?wsdl", array('login'=> 'user', 'password'=> 'password', "cache_wsdl"=> WSDL_CACHE_MEMORY, "trace" => 1,"exceptions" => 1));
    $result = $client->Print(array("number" => $_REQUEST["number"]));
    try {
        echo base64_decode($result->return);
        }
    catch (Exception $e) 
      {echo $e->getMessage();
       return;
      }
?>

http://danila.org.ua/vyivodim-pechatnuyu-formu-dokumenta-v-brauzer-iz-1s/

API печать web-сервис

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15655    9    17    

9

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12809    30    8    

10

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17419    6    15    

13

[Расширение] БОР-Навигатор.Культура

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

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25686    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16253    41    49    

22
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tindir 29.10.14 07:24 Сейчас в теме
С веб-сервисами всегда встает вопрос с количеством лицензий. идея хороша, НО есть вопрос где размещать php код? На лендинг пейдеже или в определенном разделе сайта организации или курьер таскает с собой на флешке веб страничку с явно указанными логинами и паролем (что не очень в плане безопасности)?
6. DanilaDru 262 29.10.14 11:14 Сейчас в теме
(1) tindir, Я размещал php-файл в директориях рядом с публикацией веб-клиента.
Доступ предоставляется по API-ключу, который так же указывается параметром в веб-сервисе. На основании API-ключа происходит сопоставление с пользователем и далее отбирается доступная информация.
2. flyer 231 29.10.14 08:09 Сейчас в теме
на вашем сайте много полезного материала. добавил в избранное. спасибо вам!
5. DanilaDru 262 29.10.14 11:08 Сейчас в теме
(2) flyer, Спасибо. По мере решения задач пополняю блог постами :)
3. WanGoff 138 29.10.14 09:30 Сейчас в теме
Как по мне, немного банальный пост.
Но, может я ошибаюсь и она кому-то поможет. Лайки покажут.
igo1; EliasShy; qwinter; Трактор; +4 Ответить
4. DanilaDru 262 29.10.14 11:07 Сейчас в теме
(3) WanGoff, спасибо за отзыв.
Наверное если бы я завернул это в подсистему, то было бы не так банально.
7. John_d 5204 29.10.14 11:21 Сейчас в теме
Интересно. Хорошая идея.
8. AganinEvgeniy 2 29.10.14 11:26 Сейчас в теме
Статья не плохая ... но я бы наверное ещё и отбор по периоду прикрутил. Не думаю, что у клиента нужно распечатывать данные за уже прошедшие годы...да и наверное и месяцы.
10. DanilaDru 262 29.10.14 11:48 Сейчас в теме
(8) AganinEvgeniy, Спасибо. Это пример для демонстрации подхода. На рабочем варианте веб-сервис получает большее количество входных параметров.
9. lefthander 29.10.14 11:41 Сейчас в теме
Огромное спасибо. Надеюсь это поможет мне решить аналогичное задание.
11. PiccaHut001 29.10.14 15:15 Сейчас в теме
может, когда-нибуть, пригодится.
12. monkbest 115 30.10.14 07:26 Сейчас в теме
а где пишется код 1С, в модуле чего?
13. DanilaDru 262 30.10.14 07:43 Сейчас в теме
(12) monkbest, print() это метод операции веб-сервиса. Пишется в модуле веб-сервиса.
14. monkbest 115 30.10.14 08:39 Сейчас в теме
(13) блин ни разу не делал еще веб сервисов, потребности не было. Все хочу для самообучения попробовать, но никак не получается. Не попадается свежей законченной статьи, либо старые про 8.1/8.2 либо вот как эта. Очень часто читаю про них свежие статьи в ленте ИС, но вот как-то они все обгрызанные что ли. Из серединки контекста вырванные. Нет пошаговой инструкции от открытия конфигуратора, до запуска в браузере
AfroditaS; +1 Ответить
17. DanilaDru 262 30.10.14 09:52 Сейчас в теме
(14) monkbest, я не ставил целью научить читателя писать веб-сервисы, извините.
18. monkbest 115 30.10.14 10:28 Сейчас в теме
(17) да я понимаю, просто мысли в слух. Грубо говоря, чтобы повторить Ваш опыт, надо еще пяток статей прочитать сначала :)
19. lefthander 30.10.14 12:43 Сейчас в теме
(18) Это направление поиска и первый шаг. Конечно готового решения на все случаи жизни не существует.
20. monkbest 115 30.10.14 13:33 Сейчас в теме
(19) lefthander, да мне не на все случаи, просто для саморазвития, понять суть механизмов. Как-то так случилось, что у заказчиков веб - не востребован, хотя во франче уже давно тружусь.
15. SemenovaMarinaV 30.10.14 09:37 Сейчас в теме
Идея хороша, но утопична
16. DanilaDru 262 30.10.14 09:51 Сейчас в теме
(15) SemenovaMarinaV, В чём утопичность?
21. SemenovaMarinaV 13.11.14 16:37 Сейчас в теме
Наверное очень полезно, когда нибудь пригодится
22. crazy.admin91119 18.12.14 17:09 Сейчас в теме
Для кого то может быть очень полезная статья :)
для меня была интересна часть про 1С :-)
23. Mafoni 12.01.15 15:45 Сейчас в теме
А как насчет безопастности сего решения ?
24. DanilaDru 262 12.01.15 17:58 Сейчас в теме
(23) Mafoni, ограничиваете ролями доступ для пользователя, который указывается в SoapClient
25. lnnd 16 17.03.15 15:55 Сейчас в теме
Оставьте свое сообщение