Здесь уже много писалось о создании документов в XML формате для передачи покупателям через систему электронного документооборота (ЭДО), эта тема становится всё более актуальной в нынешней ситуации, т.к. этот путь позволяет обезопасить получателя от лишних физических контактов. Но мы в 95% случаев до сих пор обсуждали лишь гипотетическую возможность обратного процесса, т.е. получения документов от поставщика и их автоматическую загрузку в iScala. Мне кажется, пора поднять эту тему 🙂
Разберём простую ситуацию: получение акта или УПД на услуги. Это позволяет нам не рассматривать такую часть процессов, как запасы, со всеми вытекающими подзадачами, как то соотнесение наших кодов запаса и кодов запаса поставщика, единиц измерения и т.д. и т.п. Согласитесь, услуги на склад приходовать не нужно, поэтому начнём с них, как более простого примера.
Таким образом, задача может быть описана следующим образом:
Дано:
- Имеется XML файл, который мы можем сохранить из системы ЭДО в папку на локальном компьютере или сервере
- В файле имеется информация о номере счета-фактуры (акта), его дате, сумме с НДС, сумме без НДС, ID отправителя (поставщика) и его ИНН/КПП
Требуется:
- Идентифицировать поставщика по его ID в системе ЭДО или по комбинации ИНН/КПП
- Определить бухгалтерский счёт, на который относить затраты на оказанные услуги
- Определить, на какой счёт относить НДС, если он применим для данного поставщика
- На основе вышеописанного автоматически создать счёт-фактуру поставщика и бухгалтерскую проводку к нему
Как сделать:
- В карточке поставщика в какое-то свободное поле помещаем его ID в системе ЭДО (комбинация ИНН/КПП представляется мне менее надежным способом идентификации, т.к. иногда карточки поставщиков могут дублироваться)
- В карточке поставщика укажем стандартный счёт для затрат и все необходимые учётные измерения
- Создадим все необходимые компоненты для автоматической обработки файла: рабочий поток, входной канал для рабочего потока, специальный «быстрый поиск» для запроса информации по поставщику на основе его ID в системе ЭДО
- Ну, и так далее, это, в общем-то дело техники
И вот что получим:
Результат обработки XML файла, сохранённого из Диадока. Если посмотреть подробности, то можно увидеть, как он преобразовывался на разных шагах обработки. Ниже — входящая информация:
Ну, вы же понимаете, что это тестовая компания и я подредактировал сам входной файл, чтобы не публиковать конфиденциальную информацию 🙂
Далее — эта информация преобразовывается и обогащается данными из iScala, для чего отправляется запрос в систему:
Получив обогащенные данные, рабочий поток отправляет их на менеджер по созданию счёта-фактуры и бухгалтерской проводки:
Ну, а теперь можно зайти в запросы по поставщику и посмотреть результат в человеческом виде:
И закладка с проводкой (для поставщика не применяется НДС, поэтому строк проводки всего 2):
Вот так, мягко, без пережима, без всяких лишних движений мы получили результат. Фактически пользователю нужно лишь сохранить файл из системы ЭДО в нужную папку. А потом посмотреть результат 🙂