IE 2016

[Обновлено] Внешняя обработка 1С 7.7 работы с УТМ ЕГАИС

Опубликовал amoarok в раздел Обработки - Обработка документов

Данная внешняя обработка позволит розничному магазину полноценно работать в системе ЕГАИС.

Внешняя обработка без привязки к конкретной конфигурации.

Для работы нужен установленный и настроенный УТМ.

Обработка умеет:

1) Отображать список входящих документов.

2) Показывать документы вида: waybill (ТТН), formbreginfo (Справка Б), остатки, ассортимент продукции, информация о контрагенте, квитанция, акт разногласий, подтверждение акта расногласия.

3) Отправлять акты подтверждения ТТН, полного отказа от ТТН и акта расхождения с ТТН.

4) При получении квитанции о подтверждении акта - удалять соответствующие документы (ТТН, Справка Б и квитанции).

5) Сохранять все удаляемые документы, отправленные в УТМ документы и ответы от УТМ в папку на диске.

6) Отправлять запросы остатков товара в ЕГАИС.

7) Вручную удалять входящие документы.

8) Делать возвраты товара поставщику на основании входящей ТТН или из остатков.

9) Списывать товар.

10) Ставить товар на даланс в ЕГАИС.


Требования для работы программы: 1С 7.7, MSXML, SQLite ODBC driver. Опционально можно использовать cUrl.

Код программы полностью открыт.

Для использования обработки требуется незначительная правка исходного кода (см. скриншот №3). Настройки задаются на вкладке "Дополнительно".


Обновления:

21.10.2015 - исправлены некоторые ошибки, добавлено отображение актов подтверждения разногласий. При скачивании файлов >570 Кб используется cUrl (в настройках можно форсировать использование cUrl на постоянной основе).

29.02.2016 - множество изменений:

  1. Исправлена работа с переотправленными документами (случай, когда в очереди УТМ находится несколько документов с одинаковым номером/датой).
  2. Данные обработки сохраняются в базе данных SQLite 3, что позволяет точнее обрабатывать ответы сервера.
  3. Реализован возврат, списание и постановка на баланс.
  4. Добавлена возможность очистки очереди исходящих документов УТМ.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
ЕГАИС
.ert 76,00Kb
22.03.16
354
.ert 0.2 76,00Kb 354 Скачать

См. также

Лучшие комментарии

11. СергейК 27.10.2015 09:53
(4) M_W_W,
а зачем вы в "ACTNUMBER" записываете номер накладной?
Это же Ваш номер акта, присваивайте свой номер!?
Ответили: (12)
+ 1 [ faker1980tyumen; ]
# Ответить
7. zarius (файл скачал) 21.10.2015 10:17
Пока код сильно не смотрел, но с виду - работа проделана большая - спасибо!
Возможно на каких то этапах пригодится.
+ 1 [ faker1980tyumen; ]
# Ответить
6. M_W_W (файл скачал) 20.10.2015 09:29
Подписался на тему...

В целом, Ваш подход, через MS-скрипт, мне нравится больше, чем в аналогичной разработке - через cUrl, хотя, там для меня понятнее код, пробел у меня в знаниях по MS-скриптам... Но, думаю, разберусь потихоньку, и все-таки Вашу разработку буду использовать как основу для доработки своей конфы под егаис...
Вот только пока не определился, насколько надо все на конфигурацию, и БД завязывать, сейчас, то, что требуется с 01.01.16, может "жить самостоятельно", вроде как и незачем с БД стыковать.... Автоматизированная загрузка накладных от поставщика через ЕГАИС пока не получится, так, как в ЕГАИС нет основных данных для товароучетной системы - ЩтрихКодов EAN-13...
Что нужно будет фронту от бека, когда наступит 01.07.16, тоже пока не понятно, фронты для моей системы пока дорабатываются фирмой-производителем софта, и что там будет на входе/выходе, пока не понятно. Поэтому, я пока в раздумьях - стоит сейчас делать синхронизацию БД с егаис, или нет...
+ 1 [ pit201201; ]
# Ответить

Комментарии

1. Omega.Vit (файл скачал) 16.10.2015 15:59
Похоже на развод: вместо нормальной обработки приходит какой-то "левый" файл. Куда смотрит модератор (обработка-то платная)?
Ответили: (2)
# Ответить
2. amoarok 17.10.2015 08:17
(1) Omega.Vit, примите мои извинения. Действительно сначала выложил не тот файл. Перекачайте его заново.
# Ответить
3. Omega.Vit (файл скачал) 17.10.2015 16:47
Чтож, похоже, что я погорячился: файл, с извинениями, заменен на верный. "Инфостарт" рулит! ))
# Ответить
4. M_W_W (файл скачал) 19.10.2015 18:52
Ну, что... В принципе - работает.
Пока, вылезли две ошибки - по "импортному" производителю, когда нет ИНН:

Содержимое.ИНН = Node.selectSingleNode("./oref:INN").text;
{C:\TESTXML\ЕГАИС.ERT(681)}: Плохой тип переменной

(данные по этому контрагенту были получены другим способом, не по ИНН, а по егаис ID,
вручную, через cUrl вот так:
<qp:Parameters>
<qp:Parameter>
<qp:Name>СИО</qp:Name>
<qp:Value>***Код по ЕГАИС***</qp:Value>
</qp:Parameter>
</qp:Parameters>
)

и вторая, что-то в номере накладной не нравится:

[1/2] Ошибка: Проверка по ХSD завершилась с ошибками: Элемент "http://fsrar.ru/WEGAIS/ActTTNSingle:ACTNUMBER" недействителен: значение "[IMP] 2599498СОЛВ " недействительно с точки зрения его типа данных "http://fsrar.ru/WEGAIS/Common:NoEmptyString50" — Сбой ограничения Pattern.

Но, тут похоже "БРАВО-Д" с номером перемудрила: "[IMP] 2599498СОЛВ " - квадратные скобки, пробелы, символы и латиницы и кирилицы... Что-то в шаблон не вписывается...
Ответили: (5) (11)
+ 1 [ garageinfo; ]
# Ответить
5. amoarok 20.10.2015 08:05
(4) M_W_W, буквально вчера в егаис изменились xsd-схемы, но документацию пока не обновили. У меня даже в УТАП проверка XSD иногда не проходит.
Отображение импортных производителей в ближайшее время исправлю.
# Ответить
6. M_W_W (файл скачал) 20.10.2015 09:29
Подписался на тему...

В целом, Ваш подход, через MS-скрипт, мне нравится больше, чем в аналогичной разработке - через cUrl, хотя, там для меня понятнее код, пробел у меня в знаниях по MS-скриптам... Но, думаю, разберусь потихоньку, и все-таки Вашу разработку буду использовать как основу для доработки своей конфы под егаис...
Вот только пока не определился, насколько надо все на конфигурацию, и БД завязывать, сейчас, то, что требуется с 01.01.16, может "жить самостоятельно", вроде как и незачем с БД стыковать.... Автоматизированная загрузка накладных от поставщика через ЕГАИС пока не получится, так, как в ЕГАИС нет основных данных для товароучетной системы - ЩтрихКодов EAN-13...
Что нужно будет фронту от бека, когда наступит 01.07.16, тоже пока не понятно, фронты для моей системы пока дорабатываются фирмой-производителем софта, и что там будет на входе/выходе, пока не понятно. Поэтому, я пока в раздумьях - стоит сейчас делать синхронизацию БД с егаис, или нет...
+ 1 [ pit201201; ]
# Ответить
7. zarius (файл скачал) 21.10.2015 10:17
Пока код сильно не смотрел, но с виду - работа проделана большая - спасибо!
Возможно на каких то этапах пригодится.
+ 1 [ faker1980tyumen; ]
# Ответить
8. serg_info (файл скачал) 21.10.2015 15:13
Спасибо! У меня заработало. Очень пригодится. Здорово, что есть не жадные люди!!!
+ 1 [ copybases; ]
# Ответить
9. basil_m 22.10.2015 18:06
Добрый день! У нас 2 подразделения магазин и ресторан, получается нужно еще фиксировать в ЕГАИС перемещения между ними. Можно в данной обработке это как-то реализовать?
Ответили: (10)
# Ответить
10. amoarok 23.10.2015 11:08
(9) basil_m, нет, отправка ТТН в обработке не предусмотрена.
# Ответить
11. СергейК 27.10.2015 09:53
(4) M_W_W,
а зачем вы в "ACTNUMBER" записываете номер накладной?
Это же Ваш номер акта, присваивайте свой номер!?
Ответили: (12)
+ 1 [ faker1980tyumen; ]
# Ответить
12. M_W_W (файл скачал) 27.10.2015 12:22
(11) СергейК,
???
Я ничего там не переделывал, это ошибка из исходной обработки, так, что вопрос не ко мне а к автору.
Кстати, в обновленной обработке, эта ошибка не возникает.
# Ответить
13. knight070119863 06.11.2015 08:39
это только для розницы? для опта не подойдет?
Ответили: (15)
# Ответить
14. Yury1001 (файл скачал) 10.11.2015 16:13
А кто пробовал запросить справку А метод: QueryFormA ?
Чё та пишет "org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 15; The prefix "qf" for element "qf:FormRegId" is not bound."
хотя по документации узел qf:FormRegId есть и содержит идентификатор нужной мне справки.

сам нашел - ошибся в шапке запроса
# Ответить
15. amoarok 16.11.2015 08:23
(13) knight070119863, только для розницы
# Ответить
16. viktorn (файл скачал) 17.11.2015 18:46
Для опта что-нибудь есть?
Ответили: (18)
# Ответить
17. viktorn (файл скачал) 17.11.2015 18:47
Может в проекте что-то существует или закрытая тема?
# Ответить
18. amoarok 18.11.2015 08:58
(16) viktorn, для опта мы используем УТАП. Хотя там очень много проблем.
Ответили: (19)
# Ответить
19. SSSR 19.11.2015 15:14
(18) amoarok,
А что за УТАП?
Ответили: (20)
# Ответить
20. victuan (файл скачал) 20.11.2015 07:53
(19)Специализированная конфигурация на базе УТ - Управление Торговлей Алкогольной Продукцией
# Ответить
21. ya.vladi.mir 23.11.2015 22:12
Станислав, можно вопрос по поводу подтверждение акта разногласия
- мне через УТМ пришло два уведомления: первое что акт принят и второе что накладная проведена
а где же подтверждение от поставщика, что он согласен на уменьшение количества согласно акта?
как у вас реализовано?????
спасибо
# Ответить
22. copybases (файл скачал) 28.11.2015 21:54
Спасибо за обработку! Действительно делает то, что описано!
# Ответить
23. Pin 03.12.2015 23:08
amoarok, а через совместное использование объектов WinHttpRequest и Stream (ADO) обойти curl никак нельзя?
Возможно ли обойти в 7.7 ResponseBody "Тип переменой не поддерживается" ограничение?
Ответили: (24)
# Ответить
24. amoarok 04.12.2015 08:20
(23) Pin, моя обработка не использует cUrl по умолчанию, а как раз работает с WinHttp и ResponseBody.
Ответили: (30)
# Ответить
26. aktorg2804080 07.12.2015 07:38
Подскажите, как получить файл? Уже и зарегистрировались. Это полноценная обработка? Сколько она стоит, ничего не могу понять. Объясните пожалуйста.
# Ответить
27. maskva 08.12.2015 12:06
подпишусь на актуальную обработку. вопросы задам вам в личку если не возражаете.
# Ответить
28. m1_1976 (файл скачал) 08.12.2015 13:54
Да. Вещь! Работы автор проделал море. Я на полпути встрял, когда до ДОМ дошел. Полез читать про MSXML2.DOMDocument.6.0 и 1C 7.7 А тут все на месте. Спасибо тебе добрый человек!
# Ответить
29. brrart (файл скачал) 09.12.2015 08:06
Хорошая штука ... Допилил правда немного для универсальности, ну и добавил запросы реквизитов организации по ИНН и их номенклатуры ... чисто для справочной информации ...
# Ответить
30. SvSoft 09.12.2015 10:39
(24) А для чего в описании сказано, что для скачивания файлов >570кБ используется cUrl?
Ответили: (31)
# Ответить
31. brrart (файл скачал) 09.12.2015 11:11
(30) В коде обработки в комментариях написано что при скачивании файла больше 570 кБ через скрипт 1с падает ...
# Ответить
32. leonidt84 (файл скачал) 13.12.2015 16:48
Заслуженный плюс. Документов пока по ЕГАИС никто не присылает, но вроде всё работает.
Единственное, я так смотрю, не удаляются исходящие документы (/opt/in). Изредка это надо делать, а то там когда-нибудь накопится слишком много запросов и база данных УТМ встанет. Но это надо, наверное, лет 10 работать :)
Ответили: (33)
# Ответить
33. brrart (файл скачал) 15.12.2015 03:23
(32) leonidt84,
Да вроде удаляются исходящие. Поставщики прислали нам одну ТТН (по техническим причинам на их стороне пока не могут больше к сожалению). Ну так вот после подтверждения этой ТТН всё удалилось, и ТТН и всё что с ней связано. Ждем от них еще несколько ТТН, чтобы проверить отказ и расхождение ...
# Ответить
34. Yury1001 (файл скачал) 19.12.2015 18:14
Помогите. Чем прочитать ответ от егаис в 7.7? Msxml.DOMDocument на больших файлах просто падает, 90% ответов со списком продукции производителей обработать не удается, AddIn.XMLParser не умеет работать в префиксами. Прошу любые ссылки.
Ответили: (35)
# Ответить
35. Palmer1976 (файл скачал) 19.12.2015 22:41
(34) Yury1001, Msxml.DOMDocument отлично работает на больших объемах данных, просто не надо гонять эти данные туда-сюда загружать-выгружать через "строку", даю наводку ;) http://infostart.ru/public/435130/
# Ответить
36. serg1983 (файл скачал) 22.12.2015 00:02
вчера было все нормально седня пишет, что возможно УТМ не запущен помогите плиз
Ответили: (43)
# Ответить
37. serg1983 (файл скачал) 22.12.2015 00:03
в службах смотрел все работает
брандмаувер отключен
# Ответить
38. vsy 28.12.2015 16:13
amoarok, подскажи где косяк, добавил запрос на справки А, а он не уходит. Ошибка (<>200) не удалось выгрузить документ
код:
XML_DOM=CreateObject("MSXML2.DOMDocument.6.0");
XML_HELPER=CreateObject("Msxml2.MXNamespaceManager.6.0");
XML_HELPER.declarePrefix("qf", "http://fsrar.ru/WEGAIS/QueryFormAB");
XML_HELPER.declarePrefix("ns", "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01");
Header = XML_DOM.createProcessingInstruction("xml", "version=""1.0"" encoding=""UTF-8""" );
XML_DOM.appendChild(Header);
XML_ROOT = ДобавитьУзел(XML_DOM, XML_HELPER, XML_DOM, "Documents", "ns");
ДобавитьАттрибут(XML_DOM, XML_ROOT, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
ДобавитьАттрибут(XML_DOM, XML_ROOT, "xmlns:ns", "http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01");
ДобавитьАттрибут(XML_DOM, XML_ROOT, "xmlns:qf", "http://fsrar.ru/WEGAIS/QueryFormAB");
XML_OWNER = ДобавитьУзел(XML_DOM, XML_HELPER, XML_ROOT, "Owner", "ns");
XML_FSRAR_ID = ДобавитьУзел(XML_DOM, XML_HELPER, XML_OWNER, "FSRAR_ID", "ns");
ДобавитьТекст(XML_DOM, XML_FSRAR_ID, ФСРАР_ID);
XML_DOCUMENT = ДобавитьУзел(XML_DOM, XML_HELPER, XML_ROOT, "Document", "ns");
XML_QUERYFORMA = ДобавитьУзел(XML_DOM, XML_HELPER, XML_DOCUMENT, "QueryFormA","ns");
для с=1 по списокА.размерсписка() цикл
XML_FORMREGID=ДобавитьУзел(XML_DOM, XML_HELPER, XML_QUERYFORMA, "FormRegId","qf");
IDFORMA=списокА.ПолучитьЗначение(с);
ДобавитьТекст(XML_DOM, XML_FORMREGID, IDFORMA);
конеццикла;
RESULT_XML_DOM = ВыгрузитьDOM(XML_DOM, УТМ_URL+"opt/in/QueryFormA"); здесь ошибка
Ответили: (42)
# Ответить
39. Harry_udm (файл скачал) 29.12.2015 23:58
УТМ_URL = "http://127.0.0.1:8080/";
Так и оставлять? Пишет, что EGAIS.ERT(167)}: WinHttp.WinHttpRequest: Не удается установить соединение с сервером
# Ответить
40. alexzer0r (файл скачал) 27.01.2016 23:49
Поясните что делаю не так мне приходят только остатки. Тут нужно как то закреплять за определенным магазином обработку?
Ответили: (42)
# Ответить
41. Harry_udm (файл скачал) 28.01.2016 00:21
Мы поставщикам выдали ИНН и КПП каждого магазина и все автоматом стало появляться. А пока этого не сделали тоже только остатками баловался - проверял работает ли...
# Ответить
42. amoarok 01.03.2016 08:08
(38) vsy, сохрани xml файл, который создает обработка, и выгрузи его через curl. Хотя один косяк вижу и так - запрашивать можно только одну справку за раз.
(40) alexzer0r, если остатки приходят - все работает. Видимо поставщики еще не отправляют накладные через егаис. Или отправляют не на тот фсрар id. Или еще любая из сотни причин.
# Ответить
43. amoarok 01.03.2016 08:10
(36) serg1983, открой в браузере http://127.0.0.1:8080/. Если открывается, то проверь фсрар id организации в настройках обработки.
# Ответить
44. vitnaut (файл скачал) 23.03.2016 12:59
Спасибо огромное!!!! Обработка просто супер!! то что надо!!!
# Ответить
45. Brravo (файл скачал) 21.04.2016 21:55
При нажатии на документы в УТМ с префиксом А (накладные?):

DocumentNode = XML_DOM.selectSingleNode("/ns:Documents/ns:Document").firstChild;
{C:\DOCUMENTS AND SETTINGS\АДМИНИСТРАТОР\РАБОЧИЙ СТОЛ\ЕГАИС.ERT(1850)}: Плохой тип переменной

Подскажите, с этим можно что-то сделать?
Ответили: (46)
# Ответить
46. amoarok 25.04.2016 16:16
(45) Brravo, что за префикс А? Покажите скриншот обработки и содержимое http://127.0.0.1:8080/opt/out
# Ответить
47. Brravo (файл скачал) 26.04.2016 15:32
Смотрите...
Ответили: (48) (49)

Прикрепленные файлы:

IMG_26042016_153038.png
IMG_26042016_153032.png
# Ответить
48. amoarok 26.04.2016 16:36
(47) Brravo, это явно какой-то сбой УТМ. Таких документов появляться не должно. Советую обратиться в техподдержку ЕГАИС.
# Ответить
49. victuan (файл скачал) 26.04.2016 18:39
(47) Иногда помогает перезагрузка УТМ / компа.
# Ответить
50. kulispb (файл скачал) 13.05.2016 18:02
1. возможно ли реализовать в обработке открытие квитанции онлайн (через вебморду)?
2. возможно ли дописать повторный запрос на отправку накладной?
Ответили: (51)
# Ответить
51. amoarok 16.05.2016 14:15
(50) kulispb,
1. Вам нужно просто открывать XML файл в браузере из обработки? Уже сейчас можно скопировать URL из обработки и вставить его в адресную строку.
2. Повторный запрос ТТН есть на вкладке "Дополнительно".
Ответили: (52)
# Ответить
52. kulispb (файл скачал) 18.05.2016 18:26
(51) amoarok,
Большое спасибо все нашел.
Подскажите пожалуйста можно ли вас попросить за дополнительную плату помочь разобраться с косяком? (Каким то образом от нас уходят с подтверждением накладные, которые мы не получали.)
# Ответить
53. HSV 19.05.2016 09:20
Розничные продажи (ЧекККМ) из ТИС в ЕГАИС кто нибудь не реализовал?
Ответили: (54)
# Ответить
54. victuan (файл скачал) 28.05.2016 23:27
(53) Да, реализовано здесь: http://infostart.ru/public/433840/
И не только фиксация розничных продажи, а полный функционал для обмена с УТМ присутствует.
Ответили: (55)
# Ответить
55. HSV 07.06.2016 10:25
(54) С Меркурий МС-К работает? (QR код)
# Ответить
56. Fenin (файл скачал) 15.06.2016 13:37
Добрый день. Не получается сделать возврат, выдает ошибку, что не установлена связь с УТМ. В чем может быть проблема?
WinHTTP.Status возвращает код 500.
Спасибо.
Ответили: (57)
# Ответить
57. amoarok 16.06.2016 14:51
(56) Fenin, поищите в директории резервного хранилища (по умолчанию E:\ЕГАИС) папку "err" и выложите здесь самый свежий файл из неё.
Ответили: (60)
# Ответить
58. copybases (файл скачал) 23.06.2016 02:06
amoarok,
планируете реализацию документооборота версии 2?
Ответили: (59)
# Ответить
59. amoarok 23.06.2016 08:19
(58) copybases, в ближайшее время - нет. Может быть через месяц-другой.
# Ответить
60. Fenin (файл скачал) 23.06.2016 22:34
(57) amoarok, Файл в архиве, так же немного допилил обработку (настройки нескольких УТМ сохраняются в файле Setting.ini, который необходимо закинуть в хранилище).
В обработке сделал возможность редактировать строки возврата, так как приход по этому возврату был давно и в базе нет данных по первоначальной ТТН.
(Сначала не сообразил, что можно возврат делать по первой закладке).
Спасибо.
Ответили: (61)

Прикрепленные файлы:

Файлы.zip
# Ответить
61. amoarok 24.06.2016 12:17
(60) Fenin, найдите в коде строки:
XML_PRICE = ДобавитьУзел(XML_DOM, XML_HELPER, XML_POSITION, "Price", "wb");
ДобавитьТекст(XML_DOM, XML_PRICE, ТаблицаВозврат.Цена);

и замените что-то наподобие:
XML_PRICE = ДобавитьУзел(XML_DOM, XML_HELPER, XML_POSITION, "Price", "wb");
Цена = Строка(ТаблицаВозврат.Цена);
Если СтрДлина(Цена) = 0 Тогда
	Цена = "0";
Иначе
	Цена = СтрЗаменить(Цена,",",".");
КонецЕсли;
ДобавитьТекст(XML_DOM, XML_PRICE, Цена);
...Показать Скрыть

В ЕГАИС в качестве разделителя используется точка, а значение в файле с запятой.
Ответили: (62)
# Ответить
62. Fenin (файл скачал) 05.07.2016 22:03
(61) amoarok, Спасибо большое. Ошибку исправил, действительно в количестве стояла запятая и еще реквизит цена - обязательный, без него тоже выдавал ошибку.
# Ответить
63. vitnaut (файл скачал) 07.07.2016 15:55
Спасибо за обработку, но хотелось бы видеть список подтвержденных накладных! Раз уж есть база то как её можно посмотреть?
Ответили: (64)
# Ответить
64. amoarok 08.07.2016 12:18
(63) vitnaut, к сожалению пока список подтвержденных накладных посмотреть не получится. В базе хранятся только запросы с replyId и информация по formBRegInfo. ТТН, квитанции и прочие документы просто лежат в папке в виде файлов.
Ответили: (65)
# Ответить
65. vitnaut (файл скачал) 08.07.2016 12:26
(64) amoarok, понятно, спасибо и на том что есть. а насчет перемещения из регистра1 в регистр2 (торговый зал) не думали ещё?
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл