Имя: Пароль:
1C
1С v8
Формирование отчета 1С через web с расшифровкой
0 roman2
 
24.05.18
13:33
Уважаемые гуру 1С!
Есть задача - формировать отчеты 1С в браузере и + иметь возможность выполнять расшифровку.
Т.е. с клиента по протоколу http идет обращение к веб-серверу 1С.
Там строится отчет и возвращается на клиент.
Клиент его преобразует в html и показывает пользователю.
Пользователь может выполнить расшифровку. После чего опять процесс повторяется.
Кто встречал подобное? Есть предложения как это сделать?
1 Fragster
 
гуру
24.05.18
13:38
2 Юрий Лазаренко
 
24.05.18
13:44
(0) 1. Формируешь в 1С основной отчет, конвертируешь в html, добавляешь к ячейкам, при клике на которые должна вызываться расшифровка, параметры расшифровки.
2. На странице, которая отображает отчет, должен быть js-скрипт, который отлавливает событие клика по ячейкам с расшифровкой, достает из этих ячеек параметры расшифровки, которые ты туда положил в пункте 1, и вызывает через http-запрос 1С, передавая ему параметры расшифровки.
3. Модуль http-запроса разбирает параметры расшифровки, полученные в параметрах запроса, формирует нужный отчет. Если в нем тоже должна быть расшифровка, то переходим к пункту 1 и снабжаем его параметрами расшифровки, иначе просто отправляем результат браузеру.

Делали такое, работает нормально.
3 roman2
 
24.05.18
13:47
(2) Спасибо. Концепт понятен. А можно подробней п.1 )
4 roman2
 
24.05.18
13:47
(1) без использования веб-клиента 1С
5 DrShad
 
24.05.18
13:50
[веб-серверу 1С] мощно
6 DrShad
 
24.05.18
13:52
(3) результат отчета, т.е. таб док можно конвернуть штатно в html
7 roman2
 
24.05.18
13:52
(5) не понял? не верная формулировка?
8 roman2
 
24.05.18
13:53
(7) это без вопросов. вопрос в расшифровке.
9 DrShad
 
24.05.18
13:53
(8) что с ней не так?
10 roman2
 
24.05.18
13:53
(6) это без вопросов, вопрос в расшифровке
11 DrShad
 
24.05.18
13:54
(7) у 1с нет своего веб сервера
12 Юрий Лазаренко
 
24.05.18
13:55
(3) У тебя есть текст отчета в формате html. В нем будут строки - tr и ячейки - td. Тебе надо сделать так, чтобы при клике на отдельную ячейку или строку в целом вызывался отчет с расшифровкой - по сути, надо сгенерить событие клика на стороне браузера в js.
Соответственно, анализируй html-код отчета, находи в нем нужные ячейки и, например, через СтрЗаменить добавляй к коду какие-то метки (думаю, лучший вариант - добавить нужным tr и td) какой-то класс. параметры расшифровки можно положить в json и добавить тому же tr или td в качестве атрибута.
Можно и не через html-текст и СтрЗаменить, а конвертнуть сначала в DOM и там уже находить и модифицировать нужные элементы документа.

На стороне браузера в js добавляешь eventListener на двойной клик мыши, который проверяет, не кликнули ли на элемент с нужным классом. Если так, то из атрибута этого элемента берешь json с параметрами расшифровки и дергаешь http-сервис 1С, передавая ему эти параметры.
13 roman2
 
24.05.18
13:57
(12) Юрий, спасибо за подробный ответ! Будем копать)
14 Юрий Лазаренко
 
24.05.18
13:58
(13) Не во что. Если не справитесь сами - зовите, за деньги сделаем. Вам же еще там авторизация наверно нужна, сессии и прочие ништяки.
15 roman2
 
24.05.18
14:05
(14) Ок))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший