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

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 разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15745    10    17    

11

Интеграция 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    17548    6    15    

13

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

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

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

12000 руб.

02.02.2021    16358    42    49    

23

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

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

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

8400 руб.

01.02.2019    25737    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88579    160    215    

318
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 5277 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 Сейчас в теме
Оставьте свое сообщение