|   |   | 
| 
 | Ищу примеры реализации обмена с Диадок с помощью COM-библиотеки | ☑ | ||
|---|---|---|---|---|
| 0
    
        Evgenius 18.06.21✎ 08:51 | 
        Мне нужно реализовать обмен нескольких разных самописных конфигураций с системой ЭДО Диадок (Контур).
 Для практика там ничего сложного не должно быть, но. Из-за оторванности в последние годы от настоящей практики явно отстаю от сроков. Документация Контура есть, но по-моему достаточно куцая - м.б., это моя упавшая квалификация уже не позволяет быстро в ней освоиться. Так что, вынужденно ищу примеры реализации - именно с помощью COM-библиотеки Диадок! - следующих алгоритмов: 1) заполнение и корректировка типового документа ПоступлениеТоваровУслуг или аналогичного (возможно, у вас есть пример для НЕ-типовой конфигурации) по данным объекта UniversalTransferDocument 2) подписание и отказ в подписании документа UniversalTransferDocument - т.е., создание и заполнение данными объекта PackageContentItem с типом AcceptDocument в PackageSendTask2 3) заполнение данными объекта UniversalTransferDocument на основании какого-либо документа передачи товаров 1С (ПоступлениеТоваровУслуг или аналогичного) и отправка документа в Диадок. 4) создание и отправка корректировочного документа (UCD) по имеющемуся UniversalTransferDocument. Готов рассмотреть возможность вознаграждения (называйте условия). Спасибо за любую информацию и предложения по делу. | |||
| 1
    
        butterbean 18.06.21✎ 09:09 | 
        (0)
 1. В результате должно быть несколько обработок на каждую конфу? Или ты пилишь одну обработку сразу на несколько баз? 2. Если обработка должна по функционалу и интерфейсу быть как типовая диадоковская, то почему бы ее не переделать? | |||
| 2
    
        Evgenius 18.06.21✎ 09:14 | 
        (1) Да, в результате будет несколько обработок и один общий модуль для работы с Диадоковской COM-dll. Вот для него и нужны развернутые примеры реализации, в документации большую часть занимает длинный перечень объектов, из которых не всегда понятно, какие юзать и как, примеры куцые.     | |||
| 3
    
        Evgenius 18.06.21✎ 09:27 | 
        (1) Насчет типовой Диадоковской: потому что она (ИМХО) написана чудовищно. И я просто заманался её разбирать, честно говоря.
 Примерная архитектура: 1) Основной файл обработки содержит с десяток доп. модулей в двоичном виде 2) все эти модули (1) загружаются в хранилище и уже оттуда в память - у меня отладчик с ними не работает 3) все эти модули (1) вызывают друг друга и подключаемые модули для типовых конфиг, подключаемые модули для типовых конфиг вызывают обратно модули, которые запущены из обработки, а к некоторым из тех присоединены и загружаются (как в (1)) еще модули и - самое забавное - там в какой-то момент обнаруживается еще один слой прикладных модулей для типовых конфиг, присоединенный к другим обработкам. | |||
| 4
    
        kobzon2 18.06.21✎ 09:44 | 
        (3) Да, Да. Всё реализовано через Вычислить и Выполнить.Хрен отладишь. Но разработчики же как то отлаживают свои модули?     | |||
| 5
    
        Evgenius 18.06.21✎ 09:47 | 
        (4) Ну, они наверняка многое просто знают на память, а во вторых, может, автотестами или модульными тестами всё покрывают...
 В общем, для меня типовая обработка представляет трудность. | |||
| 6
    
        rozer76 18.06.21✎ 10:09 | 
        (5) диадокстандарт - макеты выгружаются в файлы - все норм отлаживается. Можете глянуть диадокпро как вариант. Писать через нативапи или ком такую глыбу такой себе вариант )     | |||
| 7
    
        Evgenius 18.06.21✎ 10:13 | 
        (6) Они там не выгружаются в файлы, они там через помещение в хранилище и последующее указание адреса в хранилище загружаются. У меня отладчик так не работает. А выгружать самому каждый файл (т.е., сначала переписать где-то тот код, который подключает обработку) - тоже так себе вариант. 
 Короче, я прошу советов и примеров именно и только по COM-библиотеке. По типовым обработкам - считайте, что этот вариант уже обсудили и закрыли тему ). | |||
| 8
    
        Zapal 18.06.21✎ 10:28 | 
        (7) поищи в настройках флажок "отладка"
 тогда оно предложит выгрузить все обработки и будет их вызывать. Отлаживается нормально | |||
| 9
    
        rozer76 18.06.21✎ 10:30 | 
        (7) ну примеры https://infostart.ru/1c/articles/840032/ а вообще смотри все в обработке - там как раз все через DiadocComApi и работает. Контуровцы видимо и делали обертку "DiadocComApi" чтобы свою 1с-обработку пилить. Так проще нежели через API видимо им )     | |||
| 10
    
        rozer76 18.06.21✎ 10:31 | 
        (8) +1     | |||
| 11
    
        rozer76 18.06.21✎ 10:33 | 
        Сейчас чот и сам задумался - диадокСтандарт настолько раскрячил + ПМ что даже и не знаю стоит может на диадокПРО перейти. Может кто знает чем отличается ПРО ? У Контура не нашел инфы (     | |||
| 12
    
        Evgenius 18.06.21✎ 10:38 | 
        (8) Да, вот это я сам упустил, это бы помогло. Но и помимо этого там черт ногу сломит
 (9) Спасибо, сейчас прочитаю это всё (11) ПРО - это "независимое" от конфигурации решение, вот с той самой архитектурой, которая описана в (3). Т.е., независимость очень относительная, если для "функциональных" вложенных модулей требуются еще вложенные модули для отдельных конфиг. | |||
| 13
    
        ssh2006 18.06.21✎ 11:51 | 
        (12) переходи на модуль ПРО. Это самый разумный вариант. Я вот недавно закочил внедрение. В подключаемом модуле полностью самописное заполнение списка на отправку, формирование пакетов и заполнение контента UniversalTransferDocument 
 Документации достаточно. | |||
| 14
    
        ssh2006 18.06.21✎ 11:53 | 
        (3) с отладкой что стандарта, что про придется поковырятся, но все отлаживается. В этом смысле ПРО гораздо проще внедрять     | |||
| 15
    
        ssh2006 18.06.21✎ 11:58 | 
        (11) ПРО работает через вызов HTTP api, его гораздо проще кастомизировать, добавлять регламентные задания, автоматические действия при изменении статусов документов и т.д. Также там есть вариант хранения - на отдельной подсистеме - в конфу на поддержку добавляются несколько справочников и регистров сведений и суть работы идет от периодической синхронизации 1С с сервером.     | |||
| 16
    
        ssh2006 18.06.21✎ 12:01 | 
        (12) добавляешшь в свою конфу объекты диадока - cfu идет в комплекте с модуле ПРО и дальше по документации начинаешь писать процедуры подключаемомго модуля:
 https://1c-pro-docs.diadoc.ru/ru/latest/proc/pm/Podgotovka_Paketa_Dlya_Otpravki.html | |||
| 17
    
        ssh2006 18.06.21✎ 12:04 | 
        Орати внимание на событие ОпределитьТипЗначенияОбъекта
 https://1c-pro-docs.diadoc.ru/ru/latest/func/pm/Opredelit'_Tip_Znacheniya_Obyekta.html Позволяет определить тип используемых справочников Организации и Контрагенты. как раз для самописных конфигураций | |||
| 18
    
        ssh2006 18.06.21✎ 12:07 | 
        Также советую выгрузить из обработки какой-нибудь типовой подключаемый модуль, например для УТ 10.3 или БП 3, и брать его как пример , смотреть как там наполнены процедуры событий.
 Посмотреть заполнение контента по типовым процедурам как пример - смотри вложенную обработку ТиповойМодульДиадок.epf выгружается при включении отладки | |||
| 19
    
        Evgenius 18.06.21✎ 12:19 | 
        (13) Спасибо, но я же предложил считать, что эту тему обсудили. Если нужно еще объяснений: я не практик, который 7 дней в неделю занимается кодированием и чтением чужого кода, для меня это нечитаемая вещь. Чтобы посмотреть пример заполнения документа во вложенном модуле модуля ПРО, к примеру, для УТ, необходимо частично разобрать:
 ПМ_УТ_11.epf, Ядро.epf, ТиповойМодульДиадокУФ.epf, ТиповойМодульДиадок.epf (одно из приложений - на обычных формах; даже если встроить обработку в конфигу - всё равно не работает), Модуль_ИнтеграцияУниверсальный.epf, Модуль_ИнтеграцияУниверсальнаяЛогика.epf, Модуль_ИнтеграцияУТ103.epf Ради одного примера. И это не полный список. Спасибо, но смысл моей просьбы, как раз, помочь обойтись без этого. В (9) годный пример, может, и другие найдутся. | |||
| 20
    
        ssh2006 18.06.21✎ 12:22 | 
        (19) закажи тогда у них внедрение целиком, они это делают. Иначе наделаешь костылей, если не готов разбираться сам     | |||
| 21
    
        ssh2006 18.06.21✎ 12:23 | 
        Напишут подключаемый модуль для твоей конфы     | |||
| 22
    
        Evgenius 18.06.21✎ 12:29 | 
        (21) 
 а) Они не обещают внедрение меньше, чем за 2-3 месяца еще. Поэтому и решили попытаться сами. б) Это разные лицензии, COM-Api и модуль ПРО. Мы уже приобрели именно последний вариант. Костыли - ИМХО, это, как раз то, что у нас получится при попытке внедрить модуль ПРО при такой документации (ну недостаточно мне её для понимания, хоть тресни, возможно, я очень туп), и при нашей системе согласования документов. | |||
| 23
    
        Evgenius 18.06.21✎ 12:32 | 
        (22)+
 "при нашей системе согласования документов" - Имеется в виду, что нам надо цеплять к этому нашу систему согласования. Вот для этого нужно точно знать, как работает чужой модуль. А в диадоковском модуле разбирать-не разобрать, как оно работает. | |||
| 24
    
        ssh2006 18.06.21✎ 12:34 | 
        Подумай, зачем тебе брать на себя такие вещи как авторизация, получения списков, отправка, подписание.  Пускай этой остается на поддержке поставщика, чтобы это все не ломалось при обновлениях api и т.д. А вот если разобраться с подключаемым модулем - то решится основная задача подготовить данные для отправки в нужном формате, а даль модуль уже сам все сделает.
 > ТиповойМодульДиадок.epf (одно из приложений - на обычных формах; даже если встроить обработку в конфигу - всё равно не работает), ее не надо встраивать. Запускать нужно только сам главный модуль. (23) в определенном месте ты пишешь запрос который выбирает нужные тебе документы готовые для отправки по вашей внутренней логике | |||
| 25
    
        Evgenius 18.06.21✎ 12:41 | 
        (24)
 > ее не надо встраивать. Запускать нужно только сам главный модуль. Я выразился не совсем ясно. Вот его - главного модуля - управляемая форма не запустится, если оставить его внешней обработкой, а обычная его форма не работает, сразу не стали разбираться, почему. Поэтому я упоминал о встраивании. Com-Api - это тоже обновляемый поставщиком модуль-обертка, там есть методы авторизации, и в основном он тоже всё делает. | |||
| 26
    
        Evgenius 18.06.21✎ 12:42 | 
        (25)+
 не дописал: и в основном он тоже всё делает сам ) | |||
| 27
    
        ssh2006 18.06.21✎ 12:43 | 
        (25) у меня обе формы без проблем из внешей обработки запускались     | |||
| 28
    
        Evgenius 18.06.21✎ 12:44 | 
        (24)
 > в определенном месте ты пишешь запрос который выбирает нужные тебе документы готовые для отправки по вашей внутренней логике Там этого будет мало: нужно согласовывать входящие по многоэтажной схеме перед их подписанием | |||
| 29
    
        Evgenius 18.06.21✎ 12:47 | 
        (27) Ну, сразу не стали разбираться, что там за проблема. Вполне допускаю, что решаемая. 
 Но теперь направление уже выбрано - COM-API | |||
| 30
    
        ssh2006 18.06.21✎ 12:50 | 
        (25) ну в общем я тебе, как человек пиливший и стандарт с 2015 года (а там куча обновлений прошло и форматы документов и api) и ПРО совет дал. 
 с пол пинка тут не получится.. (28) согласование через диадок должно быть ? или ваша внутренняя система. | |||
| 31
    
        Evgenius 18.06.21✎ 12:52 | 
        (30) Согласование через нашу систему. ПОСЛЕ получения и ДО подписания     | |||
| 32
    
        Garykom гуру 18.06.21✎ 12:53 | ||||
| 33
    
        Garykom гуру 18.06.21✎ 12:54 | 
        (29) >Но теперь направление уже выбрано - COM-API
 лечиться кому то пора на устаревшую хрень заморачиваться чтобы потом словить | |||
| 34
    
        ptiz 18.06.21✎ 12:54 | ||||
| 35
    
        Double_Medved 18.06.21✎ 12:56 | 
        Кто пользуется диадоком, расскажите в чем фишка. Они почти самые дорогие, техподдержка была отвратная, многие ошибки не расшифровывались. Типа в честный знак документ передан с ошибками. Все. Обработка для 1с у них такая себе, формы отрисовываются долго, тормозят, в коде я находил комментарии типа "пока так, потом нормально надо сделать", "если дата такая-то, то вывести картинку "поздравление для начальника"", куча запросов которые формируются кусками, хрен отладишь. и т.д.
 Ушел от них год назад, чему очень рад и всем советую уйти | |||
| 36
    
        Garykom гуру 18.06.21✎ 12:57 | 
        (35) Диадок это СКБ Контур
 У них тарифы единые и они вполне себе на уровне, успевают за прогрессом Одни из немногих кто позволяют физикам ЭДО юзать | |||
| 37
    
        Double_Medved 18.06.21✎ 12:58 | 
        Особенно хреновый порядок оплаты - типа купи на месяц пакет 5000 документов. Если израсходуешь 4000, то 1000 сгорит. Если израсходуешь 5200 - после 5000 покупай еще пакет, а то отрубят.
 Прям 90-ми веет такое наебательство | |||
| 38
    
        Double_Medved 18.06.21✎ 12:59 | 
        (36) Типа плюс именно для физ лиц? Которые даже не ИП? 
 ХЗ, у меня между ООО и ИП куча доков гоняется, зачем физлицу ЭДО? | |||
| 39
    
        Garykom гуру 18.06.21✎ 12:59 | 
        (37) покажи где ту увидел пакет на 5000 тут https://www.diadoc.ru/price ?     | |||
| 40
    
        ssh2006 18.06.21✎ 12:59 | 
        (35) крупняк весь в Диадоке есть, на моей выборке     | |||
| 41
    
        Garykom гуру 18.06.21✎ 13:00 | 
        (38) Удаленные сотрудники     | |||
| 42
    
        Double_Medved 18.06.21✎ 13:01 | 
        (36) и в чем плюс "единства тарифов", если они дорогие и надо блт знать сколько тебе доков надо в месяц или квартал, а остатки сгорят, что делает их как бы еще дороже?     | |||
| 43
    
        ptiz 18.06.21✎ 13:01 | 
        (35) Зависит от ваших контрагентов. Например, большинство наших клиентов - это Сбис и Диадок. Поэтому приходится поддерживать интеграцию с двумя операторами (слава богу, не больше).     | |||
| 44
    
        ssh2006 18.06.21✎ 13:02 | 
        (31) входящие доки у тебя сохраняются с Справочник ДиадокДокументы. Дальше крутишь их внутри 1С как хочешь до подписания
 Если же хочешь все полностью на себя брать , тогда через API делай. У них есть услуга, можно покупать часы консультаций именно по работе с API | |||
| 45
    
        Garykom гуру 18.06.21✎ 13:03 | 
        (42) Тебя кто заставлял покупать большой пакет? Купи меньше а как кончится докупи еще     | |||
| 46
    
        Double_Medved 18.06.21✎ 13:04 | 
        (39) ну 3000 или 6000, какая разница.
 Каким хреном вообще фирма должна посчитать сколько им надо документов в месяц, квартал, год? Ну типа если ты дочка Газпрома, и 3 реализации в день и так 10 лет, то наверно можно, да. А если бизнес реальный? Где торговые звонят гоняют и втюхивают другим твои товары, стырые отваливаются и т.д., кто за будущий год может посчитать что документов будет 8000 или 13000? | |||
| 47
    
        Double_Medved 18.06.21✎ 13:06 | 
        (45)И купить маленький пакет подороже (за каждый документ), и заставить бухгалтера каждое утро проверять сколько осталось? И если отгрузок в день 20-70, а осталось 47 документов, ей начинать орать и бежать срочно платить?
 Ну, такой скоткий тариф наверно работает если ты на рынке уникален и монополен. Слава богу я ушел к другому оператору, где оплата постфактум за квартал. | |||
| 48
    
        Garykom гуру 18.06.21✎ 13:08 | 
        (47) там разница минимальна за документ, придираешься     | |||
| 49
    
        Garykom гуру 18.06.21✎ 13:08 | 
        (48)+ кто мешает договориться об индивидуальных условиях постоплаты?     | |||
| 50
    
        Double_Medved 18.06.21✎ 13:13 | 
        (49)А кто диадоку мешает самим сделать по-человечески? И да, у них в любом пакете сильно дороже чем у многих других (за документ)
 Нафига им настолько переплачивать, еще и с неудобным графиком оплат - я так и не понял | |||
| 51
    
        Garykom гуру 18.06.21✎ 13:22 | 
        (50) У них уже сделано. Ты просто не умеешь общаться с менеджерами их     | |||
| 52
    
        Garykom гуру 18.06.21✎ 13:25 | 
        (50) >у них в любом пакете сильно дороже чем у многих других (за документ)
 сравни сам https://taxcom.ru/dokumentooborot/fajler/ и https://www.diadoc.ru/price 6.5 р за документ только 1000 и 1200 доков и небольшая разница | |||
| 53
    
        Double_Medved 18.06.21✎ 13:36 | 
        (51)Во-во, подход из 90-х. Типа не менеджер должен мне объяснить, почему надо у них услугу покупать. (хотя кроме них вариантов куча) А я должен клянчить нормальные условия оплаты, а не указанные на сайте.
 Короче хорошо что сейчас есть выбор, и год сижу на операторе гораздо дешевле диадока. Но сейчас думаю переходить на Docrobot, там чем техподдержка шикарная, все поля у документов расписаны, и т д и тп. И внезапно график оплат сразу предложили адекватный (постфактум) | |||
| 54
    
        Evgenius 18.06.21✎ 14:15 | 
        (34) Это общедоступная дока - мне её как раз не хватило (     | |||
| 55
    
        Evgenius 19.06.21✎ 19:23 | 
        Так и не нашел толком примеров по подписанию документа - кроме того, что в документации, где фактически есть только комментарий 
 "// Предполагаем, что есть функции заполнения контента второго титула формализованных документов" Очень доступно, блин. М.б., у кого-то есть представление об объектной модели, позволяющей подписывать документы? | |||
| 56
    
        ptiz 19.06.21✎ 19:45 | 
        (55) УПД я подписываю так. Про это речь?
 Если документ не в закрытом пакете: ReplySendTask = ДокументДиадок.CreateReplySendTask2("AcceptDocument"); Reflector = Новый ComОбъект("AddIn.Diadoc.Reflector"); МассивItem = ПолучитьМассивИзКоллекции(ReplySendTask.ContentItems); Для каждого Item Из МассивItem Цикл Content = Item.Content; TypeDesc = Reflector.Describe(Content); МассивСвойств = TypeDesc.GetPropertiesNames(); ИмяСвойства = МассивСвойств.GetItem(0); Doc = Content[ИмяСвойства]; Doc.DocumentCreator = Организация.НаименованиеПолное; Doc.OperationContent = "Реализация"; Signers = Doc.Signers; Signers.AddItems(); SignerReference = Signers.items.GetItem(0).SignerReference; SignerReference.BoxId = ОрганизацияДиадок.Id; SignerReference.CertificateThumbprint = ОрганизацияДиадок.Certificate.Thumbprint; ReplySendTask.Send(); Если закрытый пакет: ПакетДиадок = ДокументДиадок.GetDocumentPackage(); ReplySendTask = ПакетДиадок.CreateReplySendTask2("AcceptDocument"); Reflector = Новый ComОбъект("AddIn.Diadoc.Reflector"); МассивItem = ПолучитьМассивИзКоллекции(ReplySendTask.ContentItems); Для каждого Item Из МассивItem Цикл Content = Item.Content; TypeDesc = Reflector.Describe(Content); МассивСвойств = TypeDesc.GetPropertiesNames(); ИмяСвойства = МассивСвойств.GetItem(0); Если ИмяСвойства = "Type" Тогда Продолжить; КонецЕсли; Doc = Content[ИмяСвойства]; Doc.DocumentCreator = Организация.НаименованиеПолное; Doc.OperationContent = "Реализация"; Signers = Doc.Signers; Signers.AddItems(); SignerReference = Signers.items.GetItem(0).SignerReference; SignerReference.BoxId = ОрганизацияДиадок.Id; SignerReference.CertificateThumbprint = ОрганизацияДиадок.Certificate.Thumbprint; ReplySendTask.Send(); | |||
| 57
    
        Evgenius 20.06.21✎ 20:37 | 
        (56) Да, именно оно, спасибо!
 А с помощью каких источников разбирались с этим? Откуда сам перечень необходимых действий знаете? ) | |||
| 58
    
        ptiz 21.06.21✎ 09:01 | 
        (57) Разбирался методом чтения ошибок и тыка в отладчик.     | |||
| 59
    
        Evgenius 21.06.21✎ 15:32 | 
        (58) Круто     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |