Настройка функций обмена неформализованными документами

Для работы с неформализованными документами администратору нужно настроить разметки карточек Docsvision, которые будут использоваться для обмена электронными документами: для отправки, получения и аннулирования.

Стандартные настройки модуля предусматривают, что для получения электронных документов будет использоваться вид Документ/Входящий, а для отправки — любой вид документа, например, Документ/Исходящий.

Виды Входящий и Исходящий являются стандартными видами для организации ЭДО неформализованными документами, но не обязательными.

При организации ЭДО на других видах карточек настройте отправку и получение с их использованием в Справочнике настроек операторов ЮЗДО.

Настройка разметки вида "Документ/Входящий"

  1. Откройте в Конструкторе разметок настройки вида Документ/Входящий.

  2. Добавьте на ленту карточки новую группу с названием Электронный обмен.

  3. Добавьте в группу Электронный обмен команды:

    • Подписание документа.

    • Отказ в подписании документа.

    • Запросить аннулирование.

    • Подтвердить аннулирование.

    • Отказать в аннулировании.

  4. Укажите операции доступа для добавленных команд.

  5. Добавьте в скрипт карточки обработчики для новых команд.

    1. Добавьте в скрипт карточки ссылку на дополнительную сборку DocsVision.Edi.DocumentScript.dll располагается в каталоге клиента Docsvision.

      Рекомендуется подключать сборку по её полному имени, а не с указанием абсолютного пути.

    2. В раздел подключаемых пространств имен добавьте:

      using DocsVision.Edi.DocumentScript;
    3. Добавьте обработчики для новых команд:

      • Для команды Подписание документа:

        private void sendReplySignature_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendReplySignature();
        }
      • Для команды Отказ в подписании документа:

        private void sendReplySignatureRejectionButton_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendReplySignatureRejection(); (1)
        }
        1 ediScriptHelper.SendReplySignatureRejection(); следует использовать только, если точно известно, что ответ делается внутри Диадок. Для надежности проще всегда использовать EdiScriptHelper.SendInvoiceReplyRejection(); для неформализованных документов по аналогии с формализованными. Web-клиент работает похожим образом: SendInvoiceReplyRejection через boxesService.GenerateSignatureRejection.
      • Для команды Запросить аннулирование:

        private void sendRequestRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendRevocation();
        }
      • Для команды Подтвердить аннулирование:

        private void sendApproveRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendReplyRevocationSignature();
        }
      • Для команды Отказать в аннулировании:

        private void sendRejectRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendReplyRevocationRejection();
        }
  6. Добавьте в разметку карточки элемент управления Журнал обмена сообщениями. Рекомендуется размещать элемент управления на новой вкладке (например, Журнал обмена ЮЗДО). Настраивать элемент управления не требуется.

Настройка разметки вида "Документ/Исходящий"

  1. Откройте в Конструкторе разметок настройки вида Документ/Исходящий.

  2. Добавьте на ленту карточки новую группу с названием Электронный обмен.

  3. Добавьте в группу Электронный обмен команды:

    • Отправка документов.

    • Отправка документов с выбором файлов.

    • Отправка документов с подписанием.

    • Отправка документов с подписанием и выбором файлов.

    • Запросить аннулирование.

    • Подтвердить аннулирование.

    • Отказать в аннулировании.

  4. Укажите операции доступа для добавленных команд.

  5. Добавьте в скрипт карточки обработчики для новых команд.

    1. Добавьте в скрипт карточки ссылку на дополнительную сборку DocsVision.Edi.DocumentScript.dll.

    2. В раздел подключаемых пространств имен добавьте:

      using DocsVision.Edi.DocumentScript;
    3. Добавьте обработчики для новых команд:

      • Для команды Отправка документов:

        private void sendDocumentButton_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          if (!CardControl.Save())
            return;
        
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendDocument();
        }
      • Для команды Отправка документов с выбором файлов:

        private void sendDocumentFilesButton_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          if (!CardControl.Save())
            return;
        
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SendDocumentFiles();
        }
      • Для команды Отправка документов с подписанием:

        private void signAndSendDocumentButton_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          if (!CardControl.Save())
            return;
        
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SignAndSendDocument();
        }
      • Для команды Отправка документов с подписанием и выбором файлов:

        private void signAndSendDocumentFilesButton_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
          if (!CardControl.Save())
            return;
        
          EdiScriptHelper ediScriptHelper = new EdiScriptHelper(CardControl);
          ediScriptHelper.SignAndSendDocumentFiles();
        }
      • Для команд Запросить аннулирование, Подтвердить аннулирование и Отказать в аннулировании скрипты аналогичны скриптам вида Документ/Входящий (см. выше).

  6. Добавьте в разметку карточки элемент управления Журнал обмена сообщениями. Рекомендуется размещать элемент управления на новой вкладке (например, Журнал обмена ЮЗДО). Настраивать элемент управления не требуется.

Отображение типа неформализованного документа в карточке

Если требуется, в разметку карточки можно добавить текстовое поле для отображения типа неформализованного документа. Тип неформализованного документа содержится в расширенном поле Данные УПД/Тип документа карточки Документ.

Дополнительные функции документа

  • Если модуль устанавливался ранее и версия модуля в БД была обновлена до последней, в конструкторе разметок в поле карточки документа Данные УПД / Функция документа (UniversalDocumentData / DocumentFunction) можно добавить значения СвРК = 3, СвЗК = 4, это будет соответствовать новым значениям атрибута Функция УПД.

  • Если модуль устанавливается впервые или после обновления была создана новая БД, дополнительных действий не требуется.

Настройки web-разметок

  1. Откройте в Конструкторе разметок настройки желаемого вида документа.

  2. Добавьте для вида карточки новые кнопки команд.

    Для карточек вида Документ/Входящий:

    • Подписание документа.

    • Отказ в подписании документа.

    • Запросить аннулирование.

    • Подтвердить аннулирование.

    • Отказать в аннулировании.

    Для настройки вида Документ/Исходящий добавьте следующие команды:

    • Отправка документов.

    • Отправка документов с подписанием.

    • Запросить аннулирование.

    • Подтвердить аннулирование.

    • Отказать в аннулировании.

  3. Укажите операции доступа для добавленных команд.

  4. Добавьте для новых команд в события При щелчке обработчики команд:

    Обработчик Команда Описание команды

    signIncoming

    Подписать

    Используется в неформализованных входящих документах.

    signAndSendOutgoing

    Подписать и отправить

    При нажатии будет вызвана функция подписания документа с отправкой контрагенту.

    Используется в неформализованных исходящих документах.

    sendIncomingWithExistingSign

    Отправка документов с имеющейся подписью

    При нажатии будет вызвана функция отправки входящего документа с существующей подписью.

    sendOutgoingWithExistingSign

    Отправка документов с имеющейся подписью

    При нажатии будет вызвана функция отправки исходящего документа с существующей подписью.

    revoke

    Аннулировать

    При нажатии будет вызвана функция аннулирования формализованного документа.

    Используется в любых неформализованных входящих документах.

    approveRevocation

    Подтвердить аннулирование

    Используется для подтверждения аннулирования. При этом потребуется формирование ответной подписи при помощи сертификата квалифицированной подписи.

    Используется в любых неформализованных документах.

    rejectRevocation

    Отказать в аннулировании

    Для отказа в аннулировании. При этом потребуется указать причину отказа.

    Используется в любых неформализованных документах.

    rejectAndSendInvoice

    Отказать

    При нажатии будет вызвана функция отказа в подписании с указанием причины отказа.

    Используется в неформализованных входящих документах.

  5. При настройке разметок следует учитывать, что данные о контрагенте для отправки берутся из секции Получатели — контрагенты, Получатель — организация контрагента — поле в этой секции.

Настройки "Журнала обмена ЭДО"

При инсталляции модуля добавляется Журнал обмена ЭДО для Web-клиента. Журнал представлен плагином EDIMessagesLog для ЭУ Контрол табличных данных. Плагин преобразует элемент управления в Журнал обмена ЮЗДО для Web-клиент.

Чтобы отобразить журнал в разметке документов:
  1. Добавьте ЭУ "Контрол табличных данных" в разметку неформализованного документа.

  2. В свойствах Название и Название плагина укажите EDIMessagesLog.

  3. Добавьте скрипт edi_loadMessageLogSignatureStatus для события После загрузки таблицы для элемента управления "Контрол табличных данных".