|
Как лучше программно работать с Диадок? | ☑ | ||
---|---|---|---|---|
0
ReaLg
07.02.23
✎
12:24
|
Добрый день.
Может быть кто-то решал аналогичную задачу и подскажет, по какому пути лучше пойти. Конфигурация - УТ11.4 Задача выполнять некие действия по обмену с Диадоком. Пусть, для примера, требуется узнать статус конкретного контрагента. На текущий момент в системе подключена и работает обработка от Диадока. Ранее возникала необходимость делать какие-то свои действия и я ее решал путем создания объекта формы этой обработки. При этом там заполняется куча всяких "кэшей", "контекстов", "метрик" и т.д. И после этого я мог дергать нужные мне функции. Но теперь потребовалось делать некие действия на сервере и форму я там инициализировать не могу. Обработка Диадока написана в лучших традициях ООП. Код модулей-классов - в макетах. Какие я вижу варианты: 1. Забыть про эту обработку, скачать компоненту api и работать через нее. Минус варианте - мне придется придумать и повторить кучу кода, который уже есть в этой обработке. 2. Попробовать выдернуть из этой обработки нужный функционал. По этому методу попробовал сейчас. Т.е. дохожу до серверной функции авторизации, например, и переношу в свою обработку все зависимости. Долго(но, вероятно, все же быстрее п.1), муторно, не понятно будет ли в итоге положительный результат или нет. 3. Попробовать разобраться, как вся эта вещь работает с модулями и повторить, не перенося код в одно место. Т.е. я так подозреваю, создавать темповые обработки, писать туда код из макетов, как-то их подключать и т.д. Может быть кто-то уже разбирался с этой обработкой(она одна для многих конф, вроде бы) и подскажет, какой вариант таки выбрать? Спасибо. |
|||
1
Kassern
07.02.23
✎
12:29
|
(0) 3 вариант. В этой обработке диадока нет ничего сложного. Вместо модулей они используют формы. Так же хранят обработки в макетах
|
|||
2
anatoly
07.02.23
✎
12:33
|
(0) у вас Диадок Про или стандарт?
там несколько различается подход, в Про есть основной "модуль Ядро" из которого все основные процедуры вызываются, при включении режима отладки можно сохранить все обработки из макетов на диск - и запускать их (соответственно и в коде их можно исправить/дописать все что нужно) со стандартом я не работал, но видел что структура там несколько отличается. |
|||
3
Kassern
07.02.23
✎
12:33
|
Я в свое время правил сами модули диадока для нужд конторы. Проблемы были только во время обязательного обновления. Приходилось переносить этот функционал.
|
|||
4
inkvizitr
07.02.23
✎
12:36
|
(0) там есть подключаемый модуль, там обработка с надстройками на основную обработку, ковыряй в ту сторону, основную обработку трогать не советую, часто они ее меняют, часто придется ее поддерживать на случай если чего отвалиться
|
|||
5
mikecool
07.02.23
✎
13:03
|
(4) +1
при пользовании стандарта только раз пришлось лезть в модули обработки, все остальные вопросы закрывались подключаемым модулем сейчас предстоит с новым разбираться - пока руки не дошли |
|||
6
ReaLg
07.02.23
✎
13:30
|
(4)(5) Это да, про подключаемый модуль я знаю и использую, когда это возможно. Но как с его помощью решить задачу "каждую ночь регламентное задание проверяет статусы контрагентов в Диадок и если статус поменялся создает задачу пользователю" я не знаю.
|
|||
7
АгентБезопасной Нацио
07.02.23
✎
13:42
|
(2) в Стандарте было примерно так же.
(5) как ни странно, Универсал подхватывает загруженный ПМ от Стандарта, и в большинстве случаев продолжает работать "как надо", без переноса в ПМ Универсала |
|||
8
АгентБезопасной Нацио
07.02.23
✎
13:43
|
(6) я б все-таки взялся за API. Муторно, но знаешь как оно работает, и что от нее ожидать.
|
|||
9
Argo
08.02.23
✎
03:34
|
(6) статусы в регистре сведений же хранятся? В самом регистре перед записью проверяй статус и создавай задачу. Как вариант.
А с сервера обработка примерно так же работает, создаешь, инициализируешь, авторизуешься, контекст заполняешь и дергаешь с Ядра что надо. Например: ОбработкаДиадок = Обработки.КонтурЭДО.Создать(); ОбработкаДиадок.ИнициализироватьОбщийКонтекст(); Ядро = ОбработкаДиадок.Модуль_Ядро(); Логин = Ядро.ОбщиеНастройки_Прочитать("СлужебнаяУчетнаяЗаписьЛогин"); Пароль = Ядро.ОбщиеНастройки_Прочитать("СлужебнаяУчетнаяЗаписьПароль"); Если НЕ ЗначениеЗаполнено(Логин) Тогда ВызватьИсключение "Не указана служебная учетная запись ЭДО для выполнения регламентных действий"; КонецЕсли; Токен = Ядро.Авторизация_ПоПаролю(Логин,Пароль); Ядро.КонтекстСеанса_ДляСлужебнойУчетнойЗаписи(); СтруктураДокумента = Ядро.Документы_СохраненныйДокумент(ДокументДД); ДвоичныеДанныеФайла = Ядро.Документы_ПечатнаяФормаСервераДиадок(СтруктураДокумента.Идентификаторы); |
|||
10
ReaLg
08.02.23
✎
05:08
|
(9) О, спасибо большое. Если оно так заработает - все будет намного проще. Я до этого только через создание формы добился корректной инициализации. Если это можно через объект сделать с сервера - то супер.
|
|||
11
big
08.02.23
✎
20:19
|
Посмотрите какие там сопливые запросы по API шлются - будет смеяться над всем этим своим "серьезным" обсуждением ))) Статус контрагента узнать? ЕМНИП там даже токен не нужен )) Самое главное - это код разработчика. Вот без него точно работать не будет ))
|
|||
12
magicSan
08.02.23
✎
22:00
|
(11) я тоже угорал с их обработки - пакет в пакете с пакетами - редкое убожество. Птом апи глянул, по рест сделали чего не хватает быстро. Удоты какието - от ОПП тока название, на деле венегрет.
|
|||
13
Волшебник
модератор
08.02.23
✎
22:32
|
(12) Будьте добры повежливее. Там ведь тоже программисты.
|
|||
14
bolder
08.02.23
✎
22:54
|
(0) Нормально там все доработать.Есть описание на сайте как расширять функционал.
|
|||
15
Масянька
16.03.23
✎
16:13
|
Чтобы не плодить ветки: а где модуль для УПП?
|
|||
16
saaken
16.03.23
✎
16:30
|
(15) контекст вопроса не понятен
|
|||
17
АгентБезопасной Нацио
16.03.23
✎
17:59
|
(15) если говорю "не брал" - значит не отдам!
Но вообще, "обычные формы" там тоже есть |
|||
18
mikecool
16.03.23
✎
18:04
|
(0) для получения инфы не нужны обработки, только ключ разработки
он(ключ) обычно в обработке зашит |
|||
19
mikecool
16.03.23
✎
18:05
|
+18 помнится года три назад дергали статусы документов и печатные формы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |