|
Модуль ЭДО для 1С Контур.Диадок. Получение сертификатов с сервера 1с | ☑ | ||
---|---|---|---|---|
0
ass1c
02.02.24
✎
09:52
|
Приветствую.
Есть купленный модуль ЭДО для 1с (ERP / клиент-сервер) Контур.Диадок. Diadoc_4_37_0.epf Версия модуля: 4.37.0.2817 Версия плагина: 1.5.0.308 Обработка умеет читать сертификаты только из хранилища локальной машины - откуда запущена 1с. С сервера 1с по проведенному анализу и консультации в тех. поддержке она сертификаты читать не умеет. Обработка сложна по структуре и по отладке, а сертификаты читает при помощи собственной dllки - не средствами 1с. Причем типовые модули работы с ЭДО в БСП умеют читать сертификаты с сервера 1с. Кто-нибудь сталкивался ли с такой проблемой и переделывал ли обработку на чтение сертификатов с сервера 1с? |
|||
1
Ненавижу 1С
гуру
04.02.24
✎
15:16
|
Аналогичный вопрос. И ещё
Есть ли расширение (не внешняя обработка) для эдо (именно эдо)? Потому что для работы с сетями есть расширение EDI. И в нем есть поддержка работы с сертификатом на сервере. |
|||
2
ПросТак
04.02.24
✎
15:26
|
(0) Насколько я слышал, Контур не дает доступ самопискам, пускают только свое изделие. Даже если вы стырите модуль с БСП, то вы никак ее в обработку Диадока не засунете.
|
|||
3
ProxyInspector
04.02.24
✎
16:00
|
(0) Обработка умеет читать сертификаты только из хранилища локальной машины.
Это глупость. Обработка вполне может читать сертификаты из Хранилища сервера. Откуда обработка может знать где она запущена :) У меня реализовано автоматическое подписание исходяших ЭДО в фоновом режиме. Для этого пришлось создавать ОбщийМодуль с параметрами &НаСервере. На сервер копируются сертификаты. В нашем случае их там от пяти фирм. И в регламентном задании подписываются документы по накладным, уехавшим с фабрики. В сутки наверное тысяч пять. |
|||
4
ProxyInspector
04.02.24
✎
16:04
|
У нас 100% самописка. Поэтому пришлось типовую Внешнюю обработку втаскивать во внутреннюю Обработку, Делать внутренние Интеграционный и Подключаемые модуль. А для автоматического подписания документов ОбщийМодуль.
|
|||
5
ProxyInspector
04.02.24
✎
16:26
|
К слову. С помощью общего модуля я реализовал непосредственно из Формы обработки, подписание выделенных документов в Фоновом режиме. Или синхронизацию с сервером ЭДО в фоновом режиме. Синхронизацию с сервером ЭДО в регламентном задании. Подписание документов в регламентном задании.
Когда много документов не так раскорячишься. Так что дерзайте путь открыт. |
|||
6
ПросТак
04.02.24
✎
16:40
|
(5) Этож какая нагрузка на сервер, фоном херачить 5 тысяч накладных. Каждые 5 секунд запрос идет за рабочий день. По шапке бы надавать исполнителю такого решения.
|
|||
7
ProxyInspector
04.02.24
✎
16:51
|
(6) Этож какая нагрузка на сервер
Никакой нагрузки раз в 10 минут запустить регламентное задание подписать сотню документов. Можно конечно посадить 20 человек, что бы они на подписывали эти документы &НаКлиенте. Но нагрузка на сервер будет раз в 20 больше |
|||
8
Ненавижу 1С
гуру
04.02.24
✎
16:52
|
и все-таки оно (расширение) существует, ну либо есть попытки его создать:
Функция ОбработкаМодуляЯдра() Если ИспользуетсяРасширениеКонтурДиадок() Тогда Результат = Обработки.КонтурДиадокЯдро.Создать(); Иначе ФайлЯдра = ФайлМодуляЯдра(); Результат = ВнешниеОбработки_СоздатьБезПредупреждений(ФайлЯдра); КонецЕсли; Возврат Результат; КонецФункции |
|||
9
ProxyInspector
04.02.24
✎
16:58
|
Обработка КонтурДиадок написана достаточно не плохо. На твердую 4. И она хорошо работает как &НаКлиенте так и &НаСервере.
|
|||
10
ПросТак
04.02.24
✎
17:03
|
(7) А тут можно попасть. Человек уже с работы ушел, а сервер за него только подписал.
|
|||
11
ProxyInspector
04.02.24
✎
17:12
|
(10) Есть такая этическая проблема. Альтернатива - двадцать человек наподписывали неизвестно что.
|
|||
12
ass1c
05.02.24
✎
09:10
|
(3) Получается что обработка заточена читать сертификаты с сервера 1с, но из-за каких то моих настроек она сделать это не может? У нас есть типовая бухглатерия и она видит сертификаты с сервера 1с, а обработка запущенная из этой же базы читает только сертификаты с локальной машины. В какую сторону подкопать что бы она читала их также с сервера?
Интересует именно момент авторизации пользователя в обработке под сертификатами для дальнейшей интерактивной работы. |
|||
13
ass1c
05.02.24
✎
09:30
|
(3) Я так понял нужно их клиентские алгоритмы получения сертификатов переписывать на серверные
|
|||
14
ass1c
05.02.24
✎
14:47
|
(1) В общем покопался немного и кое что нашел. Спасибо (3)
В форме авторизации: Diadoc_4_37_0.epf ВнешняяОбработка.КонтурЭДО.Форма.АвторизацияУправляемая Меняем эту процедуру с клиента на сервер &НаСервере Процедура ЗаполнитьТаблицуСертификатов() В этой процедуре переопределяем модуль ядра с формы на объект, так как в обработке Ядро в модуле объекта есть аналогичные серверные процедуры... //+-ass1c //Модуль_Ядро = Модуль_ЯдроНаКлиенте(); Модуль_Ядро = Модуль_ЯдроНаСервере(); //+-ass1c В этой процедуре комментируем ошибки которые появляются в результате смены контекста. Далее меняем контекст еще нескольких процедур и в них соответственно переопределяем модуль ядра &НаСервере Функция ТекущееСоединение(ОтпечатокСертификата) ДанныеСертификата = Модуль_ЯдроНаСервере().Сертификаты_ДанныеСертификата(ОтпечатокСертификата); ОписаниеСертификата = Модуль_ЯдроНаСервере().Сертификаты_ОписаниеСертификата(ДанныеСертификата); СертBase64 = Модуль_ЯдроНаСервере().Сертификаты_СертификатВBase64(ОтпечатокСертификата); РасшифрованныйТокен = Модуль_ЯдроНаСервере().Авторизация_ПоСертификату(ОтпечатокСертификата); ГОСТСертификата = Модуль_ЯдроНаСервере().ПолучитьГОСТСертификата(ОтпечатокСертификата); &НаСервере Функция ТекущиеСоединененияВСоответствие() //&НаКлиенте &НаСервере Функция ОписаниеСоединения() Ну и еще если что вылезет по мелочи. После этого обработка читает сертификаты с сервера 1с - как минимум проводит авторизацию по ним, создает контексты подключения, отображает и открывает документы. Больше пока не проверял дальйнейшую работу. Думаю дальше еще вылезут подобные места. Но с виду как это можно будет порешать. Так и не понял почему этот функционал не реализовали в этой обработке - это же удобно... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |