Настройка функций обмена формализованными документами
Для работы с формализованными документами предназначены карточки подвидов Документ/УПД:
-
Исходящий УПД.
-
Исходящий УКД.
-
Исходящий УКД (736) в формате приказа ФНС 189.
-
Исходящий УКД (736) в формате приказа ФНС 736.
-
-
Исходящее исправление УПД.
-
Исходящее исправление УПД (820).
-
-
Исходящий УПД (820).
-
-
Входящий УПД.
-
Входящий УПД (820).
-
Формализованный акт.
-
Формализованный акт (820).
-
-
Входящий УКД.
-
Входящий УКД (736) в формате приказа ФНС 189.
-
Входящий УКД (736) в формате приказа ФНС 736.
-
-
Указанные виды карточек предоставляются с настроенными разметками, автоматом состояний и ролевой моделью.
-
Добавить печатные формы для печати УПД.
-
Добавить виртуальные папки для работы с УПД.
Настройка печатных форм для формализованных документов
-
Откройте Рабочее место администратора.
-
Вызовите команду Свойства из контекстного меню элемента
.Будет открыто окно со свойствами типа карточки Документ.
-
Перейдите на страницу Преобразования и создайте преобразования:
-
UniInvoiceRu c параметрами:
-
Название:
UniInvoiceRu
. -
Псевдоним:
UniInvoiceRu
. -
Тип преобразование: Пользовательское.
-
Тип содержимого: XML.
-
Данные преобразования (выберите файл):
C:\Program Files (x86)\Docsvision\Edi\5.5\Xslt\UniInvoice.ru.xslt
.
-
-
Выполните аналогичные настройки со следующими преобразованиями:
-
UniInvoiceActRu
-
UniInvoiceCorrectionRu
-
UniInvoiceCorrFields
-
UniInvoiceFields
-
UniInvoiceSF
-
UniInvoiceTorgRu
-
-
Настройка папок для формализованных документов
Для удобства работы с исходящими формализованными документами можно добавить пользователям модуля виртуальные папки со следующими поисковыми запросами:
-
Журнал Все УПД — возвращает все виды УПД во всех статусах.
-
Журнал Исправление УПД — возвращает только исправления УПД во всех статусах.
-
Журнал Исходящий УПД — возвращает только исходящие УПД во всех статусах.
-
Журнал Корректировочный УПД — только корректировочные УПД во всех статусах.
-
Поиск УПД — выполняет поиск УПД по различным полям.
В настройках данных папок рекомендуется установить представление по умолчанию — УПД (Все).
Поисковые запросы и представления для папок входящих формализованных документов, если требуется, могут быть разработаны самостоятельно.
Настройка ленты карточек для нового вида формализованных документов
Администратор может настроить собственные виды карточек для работы с формализованными документами. При этом добавляемые виды должны быть дочерними видами видов Входящий УПД или Исходящий УПД.
Ленты карточек видов Входящий УПД и Исходящий УПД содержат команды для вызова стандартных функций обработки формализованных документов. В собственных видах могут использоваться функции, унаследованные от родительских видов, или разработаны собственные, например, дополнительная функция проверки данных.
Ниже приведен упрощенный код функций, вызываемых командами ленты карточек. Полный код смотрите в скриптах карточек соответствующих родительских видов. |
-
Входящий УПД и подвиды.
-
Подписать документ:
private void SignDocument_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendInvoiceReplySignature(); }
-
private void RejectSingning_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendInvoiceReplyRejection(); (1) }
1 ediScriptHelper.SendReplySignatureRejection();
следует использовать только, если точно известно, что ответ делается внутри Диадок. Для надежности проще всегда использоватьEdiScriptHelper.SendInvoiceReplyRejection();
для неформализованных документов по аналогии с формализованными. Web-клиент работает похожим образом:SendInvoiceReplyRejection
черезboxesService.GenerateSignatureRejection
. -
Запросить аннулирование
private void RequestRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendRevocation(); }
-
Подтвердить аннулирование
private void ApproveRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendReplyRevocationSignature(); }
-
Отказать в аннулировании
private void RejectRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendReplyRevocationRejection(); }
-
Запросить уточнение:
private void RequestForCorrection_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendCorrection() }
-
Печать — выводить на печать печатную форму формализованного документа:
private void Print_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.PrintInvoice("UniInvoiceRU"); (1) }
1 В параметре метода указывается название шаблона печати: -
UniInvoiceRU
— стандартный шаблон для видов Входящий УПД и Формализованный акт. -
UniInvoiceCorrectionRU
— стандартный шаблон для вида Входящий УКД.
-
-
Обновление печатной формы (вкладка Печатная форма). Данная функция должна вызываться при активации карточки (CardActivated).
public virtual void FillInvoiceControl() { EdiScriptHelper.FillInvoiceHtmlControl("HTMLBrowser", "UniInvoiceRU"); (1) }
1 В первом параметре ( HTMLBrowser
) должно быть указано название обновляемого элемента управления с типом HTML браузер.Во втором параметре (
UniInvoiceRU
) должно быть указано название шаблона печати для обновления.Названия стандартных шаблонов аналогичны приведенным для Печати.
-
-
Исходящий УПД и подвиды.
-
Подписать и отправить — выдаёт запрос на подписание документа квалифицированной ЭП (электронной подписью) и формирует электронное сообщение с документом для отправки оператору ЭДО.
private void SignedAndSent_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { CardControl.Save(); if (EdiScriptHelper.SignAndSendInvoice()) { ChangeCardState("SignedAndSent"); } }
-
Заполнить данные из файла — загружает в карточку данные из приложенного основного файла — XML-файл формализованного документа, сформированный у оператора ЭДО.
private void FillingOutData_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { CardControl.Save(); EdiScriptHelper.UpdateDocumentDataFromInvoice(); RefreshControls(); }
-
Запросить аннулирование:
private void RequestRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendRevocation(); }
-
Подтвердить аннулирование:
private void ApproveRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendReplyRevocationSignature(); }
-
Отказать в аннулировании:
private void RejectRevocation_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.SendReplyRevocationRejection(); }
-
Печать:
private void PrintUPD_ItemClick(System.Object sender, DevExpress.XtraBars.ItemClickEventArgs e) { EdiScriptHelper.PrintInvoice("UniInvoiceRU"); (1) }
1 В параметре метода указывается название шаблона печати: -
UniInvoiceRU
— стандартный шаблон для видов Исходящий УПД и Исправление УПД. -
UniInvoiceCorrectionRu
— стандартный шаблон для вида Исходящий УКД.
-
-
Обновление печатной формы (вкладка Печатная форма). Данная функция должна вызываться при активации карточки (CardActivated).
public virtual void FillInvoiceControl() { EdiScriptHelper.FillInvoiceHtmlControl("HTMLBrowser", "UniInvoiceRU"); (1) }
1 В первом параметре ("HTMLBrowser") должно быть указано название обновляемого элемента управления с типом HTML браузер. Во втором параметре (
UniInvoiceRU
) должно быть указано название шаблона печати для обновления.Названия стандартных шаблонов аналогичны приведенным для Печати.
-
В приведенном коде EdiScriptHelper
объявлен в корневом виде УПД:
public EdiScriptHelper EdiScriptHelper
{
get
{
if (ediScriptHelper == null)
ediScriptHelper = new EdiScriptHelper(CardControl);
return ediScriptHelper;
}
}
Для работы указанных методов к скрипту карточки должны подключены сборки DocsVision.Edi.DocumentScript.dll
и Docsvision.DocumentsManagement.dll
. Сборки располагаются в каталоге клиента Docsvision.
using DocsVision.Edi.DocumentScript;
using Docsvision.DocumentsManagement;
Для добавленных на ленту кнопок можно добавить методы их скрытия/отображения в зависимости от статуса обмена — проверяется с помощью методов:
-
IsSignatureReplyAvailable
— проверяет возможность подписания документа или отказа в подписании, принимает значениеTRUE
, если документ в статусеПолучен на подпись от контрагента
. -
IsRevocationReplyAvailable
— проверяет возможность аннулирования документа или отказа в аннулировании; принимает значениеTRUE
, если документ в статусеПолучен запрос на аннулирование
. -
IsRevocationRequestAvailable
— проверяет возможность создания запроса на аннулирование документа, принимает значениеTRUE
, если документ в статусеПолучен от контрагента
,Отправлена ответная подпись контрагенту
илиОтправлен контрагенту
. -
IsReceiptReplyAvailable
— проверяет возможность создания ответной квитанции.
Методы могут вызываться при открытии карточки. Методы не изменяют состояние видимости кнопок ленты — необходимо реализовать самостоятельно.
Собственный вид, не унаследованный от Входящий УПД или Исходящий УПД
Если требуется создать вид, не наследующий состояния от Входящий УПД или Исходящий УПД, необходимо самостоятельно добавить в его автомат состояний следующие состояния:
-
Получена подпись от контрагента
c идентификатором встроенного состояния (полеBuildInState
)FF1346D7-93F0-4CA3-93F8-5AE47BCD41DD
. -
Получен отказ от контрагента
c идентификатором встроенного состоянияD136A114-7C59-4C6E-AB12-5348B4883AB9
. -
Требуется уточнение
c идентификатором встроенного состояния9F8A156B-68EE-4543-9527-BF47B613330E
. -
Запрошено аннулирование
c идентификатором встроенного состоянияE3ED8CD1-8D9E-4332-B2D3-0EE5B9FE5A10
. -
Аннулирование подтверждено
c идентификатором встроенного состоянияD5CC4959-5E45-4F31-B630-F2C3613EDCB7
. -
В аннулировании отказано
c идентификатором встроенного состоянияED9B6929-BD9C-496B-B8A7-D9597B1BA5CA
.
Также потребуется добавить в разметку элементы управления с типами и названиями, которые используются в видах Входящий УПД или Исходящий УПД.