gifts2017

[Обновлено] Внешняя обработка 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
359
.ert 0.2 76,00Kb 359 Скачать

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Евгений Фенин (Fenin) (1.00 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Виталий Царулков (Omega.Vit) 16.10.15 15:59
Похоже на развод: вместо нормальной обработки приходит какой-то "левый" файл. Куда смотрит модератор (обработка-то платная)?
2. Станислав Косолапов (amoarok) 17.10.15 08:17
(1) Omega.Vit, примите мои извинения. Действительно сначала выложил не тот файл. Перекачайте его заново.
3. Виталий Царулков (Omega.Vit) 17.10.15 16:47
Чтож, похоже, что я погорячился: файл, с извинениями, заменен на верный. "Инфостарт" рулит! ))
4. Владислав Медведев (M_W_W) 19.10.15 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СОЛВ " - квадратные скобки, пробелы, символы и латиницы и кирилицы... Что-то в шаблон не вписывается...
garageinfo; +1 Ответить 2
5. Станислав Косолапов (amoarok) 20.10.15 08:05
(4) M_W_W, буквально вчера в егаис изменились xsd-схемы, но документацию пока не обновили. У меня даже в УТАП проверка XSD иногда не проходит.
Отображение импортных производителей в ближайшее время исправлю.
6. Владислав Медведев (M_W_W) 20.10.15 09:29
Подписался на тему...

В целом, Ваш подход, через MS-скрипт, мне нравится больше, чем в аналогичной разработке - через cUrl, хотя, там для меня понятнее код, пробел у меня в знаниях по MS-скриптам... Но, думаю, разберусь потихоньку, и все-таки Вашу разработку буду использовать как основу для доработки своей конфы под егаис...
Вот только пока не определился, насколько надо все на конфигурацию, и БД завязывать, сейчас, то, что требуется с 01.01.16, может "жить самостоятельно", вроде как и незачем с БД стыковать.... Автоматизированная загрузка накладных от поставщика через ЕГАИС пока не получится, так, как в ЕГАИС нет основных данных для товароучетной системы - ЩтрихКодов EAN-13...
Что нужно будет фронту от бека, когда наступит 01.07.16, тоже пока не понятно, фронты для моей системы пока дорабатываются фирмой-производителем софта, и что там будет на входе/выходе, пока не понятно. Поэтому, я пока в раздумьях - стоит сейчас делать синхронизацию БД с егаис, или нет...
pit201201; +1 Ответить
7. Alexey (zarius) 21.10.15 10:17
Пока код сильно не смотрел, но с виду - работа проделана большая - спасибо!
Возможно на каких то этапах пригодится.
faker1980tyumen; +1 Ответить
8. Sergey A (serg_info) 21.10.15 15:13
Спасибо! У меня заработало. Очень пригодится. Здорово, что есть не жадные люди!!!
copybases; +1 Ответить
9. Василий Маркин (basil_m) 22.10.15 18:06
Добрый день! У нас 2 подразделения магазин и ресторан, получается нужно еще фиксировать в ЕГАИС перемещения между ними. Можно в данной обработке это как-то реализовать?
10. Станислав Косолапов (amoarok) 23.10.15 11:08
(9) basil_m, нет, отправка ТТН в обработке не предусмотрена.
11. Сергей Крымов (СергейК) 27.10.15 09:53
(4) M_W_W,
а зачем вы в "ACTNUMBER" записываете номер накладной?
Это же Ваш номер акта, присваивайте свой номер!?
faker1980tyumen; +1 Ответить 1
12. Владислав Медведев (M_W_W) 27.10.15 12:22
(11) СергейК,
???
Я ничего там не переделывал, это ошибка из исходной обработки, так, что вопрос не ко мне а к автору.
Кстати, в обновленной обработке, эта ошибка не возникает.
13. vladimir vladimir (knight070119863) 06.11.15 08:39
это только для розницы? для опта не подойдет?
14. Юрий Зайцев (Yury1001) 10.11.15 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.15 08:23
(13) knight070119863, только для розницы
16. viktorn 1 (viktorn) 17.11.15 18:46
Для опта что-нибудь есть?
17. viktorn 1 (viktorn) 17.11.15 18:47
Может в проекте что-то существует или закрытая тема?
18. Станислав Косолапов (amoarok) 18.11.15 08:58
(16) viktorn, для опта мы используем УТАП. Хотя там очень много проблем.
19. SSSR SSSR (SSSR) 19.11.15 15:14
20. Victor Nespyatin (victuan) 20.11.15 07:53
(19)Специализированная конфигурация на базе УТ - Управление Торговлей Алкогольной Продукцией
21. влади мир (ya.vladi.mir) 23.11.15 22:12
Станислав, можно вопрос по поводу подтверждение акта разногласия
- мне через УТМ пришло два уведомления: первое что акт принят и второе что накладная проведена
а где же подтверждение от поставщика, что он согласен на уменьшение количества согласно акта?
как у вас реализовано?????
спасибо
22. Алекс Советский (copybases) 28.11.15 21:54
Спасибо за обработку! Действительно делает то, что описано!
23. Елена Б (Pin) 03.12.15 23:08
amoarok, а через совместное использование объектов WinHttpRequest и Stream (ADO) обойти curl никак нельзя?
Возможно ли обойти в 7.7 ResponseBody "Тип переменой не поддерживается" ограничение?
24. Станислав Косолапов (amoarok) 04.12.15 08:20
(23) Pin, моя обработка не использует cUrl по умолчанию, а как раз работает с WinHttp и ResponseBody.
26. Yfufckftd Cthutq (aktorg2804080) 07.12.15 07:38
Подскажите, как получить файл? Уже и зарегистрировались. Это полноценная обработка? Сколько она стоит, ничего не могу понять. Объясните пожалуйста.
27. Андрей Крючин (maskva) 08.12.15 12:06
подпишусь на актуальную обработку. вопросы задам вам в личку если не возражаете.
28. Alex M1 (m1_1976) 08.12.15 13:54
Да. Вещь! Работы автор проделал море. Я на полпути встрял, когда до ДОМ дошел. Полез читать про MSXML2.DOMDocument.6.0 и 1C 7.7 А тут все на месте. Спасибо тебе добрый человек!
29. Sergei Karpushev (brrart) 09.12.15 08:06
Хорошая штука ... Допилил правда немного для универсальности, ну и добавил запросы реквизитов организации по ИНН и их номенклатуры ... чисто для справочной информации ...
30. Вячеслав Бюльбюль-Оглы (SvSoft) 09.12.15 10:39
(24) А для чего в описании сказано, что для скачивания файлов >570кБ используется cUrl?
31. Sergei Karpushev (brrart) 09.12.15 11:11
(30) В коде обработки в комментариях написано что при скачивании файла больше 570 кБ через скрипт 1с падает ...
32. Леонид Тумашов (leonidt84) 13.12.15 16:48
Заслуженный плюс. Документов пока по ЕГАИС никто не присылает, но вроде всё работает.
Единственное, я так смотрю, не удаляются исходящие документы (/opt/in). Изредка это надо делать, а то там когда-нибудь накопится слишком много запросов и база данных УТМ встанет. Но это надо, наверное, лет 10 работать :)
33. Sergei Karpushev (brrart) 15.12.15 03:23
(32) leonidt84,
Да вроде удаляются исходящие. Поставщики прислали нам одну ТТН (по техническим причинам на их стороне пока не могут больше к сожалению). Ну так вот после подтверждения этой ТТН всё удалилось, и ТТН и всё что с ней связано. Ждем от них еще несколько ТТН, чтобы проверить отказ и расхождение ...
34. Юрий Зайцев (Yury1001) 19.12.15 18:14
Помогите. Чем прочитать ответ от егаис в 7.7? Msxml.DOMDocument на больших файлах просто падает, 90% ответов со списком продукции производителей обработать не удается, AddIn.XMLParser не умеет работать в префиксами. Прошу любые ссылки.
35. Павел Меркулов (Palmer1976) 19.12.15 22:41
(34) Yury1001, Msxml.DOMDocument отлично работает на больших объемах данных, просто не надо гонять эти данные туда-сюда загружать-выгружать через "строку", даю наводку ;) http://infostart.ru/public/435130/
36. Фантаев Сегрей (serg1983) 22.12.15 00:02
вчера было все нормально седня пишет, что возможно УТМ не запущен помогите плиз
37. Фантаев Сегрей (serg1983) 22.12.15 00:03
в службах смотрел все работает
брандмаувер отключен
38. Сергей (vsy) 28.12.15 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"); здесь ошибка
39. Игорь Краюшкин (Harry_udm) 29.12.15 23:58
УТМ_URL = "http://127.0.0.1:8080/";
Так и оставлять? Пишет, что EGAIS.ERT(167)}: WinHttp.WinHttpRequest: Не удается установить соединение с сервером
40. Алексей Иглин (alexzer0r) 27.01.16 23:49
Поясните что делаю не так мне приходят только остатки. Тут нужно как то закреплять за определенным магазином обработку?
41. Игорь Краюшкин (Harry_udm) 28.01.16 00:21
Мы поставщикам выдали ИНН и КПП каждого магазина и все автоматом стало появляться. А пока этого не сделали тоже только остатками баловался - проверял работает ли...
42. Станислав Косолапов (amoarok) 01.03.16 08:08
(38) vsy, сохрани xml файл, который создает обработка, и выгрузи его через curl. Хотя один косяк вижу и так - запрашивать можно только одну справку за раз.
(40) alexzer0r, если остатки приходят - все работает. Видимо поставщики еще не отправляют накладные через егаис. Или отправляют не на тот фсрар id. Или еще любая из сотни причин.
43. Станислав Косолапов (amoarok) 01.03.16 08:10
(36) serg1983, открой в браузере http://127.0.0.1:8080/. Если открывается, то проверь фсрар id организации в настройках обработки.
44. Виталий Ганиев (vitnaut) 23.03.16 12:59
Спасибо огромное!!!! Обработка просто супер!! то что надо!!!
45. Роман Былинкин (Brravo) 21.04.16 21:55
При нажатии на документы в УТМ с префиксом А (накладные?):

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

Подскажите, с этим можно что-то сделать?
46. Станислав Косолапов (amoarok) 25.04.16 16:16
(45) Brravo, что за префикс А? Покажите скриншот обработки и содержимое http://127.0.0.1:8080/opt/out
47. Роман Былинкин (Brravo) 26.04.16 15:32
Смотрите...
Прикрепленные файлы:
48. Станислав Косолапов (amoarok) 26.04.16 16:36
(47) Brravo, это явно какой-то сбой УТМ. Таких документов появляться не должно. Советую обратиться в техподдержку ЕГАИС.
49. Victor Nespyatin (victuan) 26.04.16 18:39
(47) Иногда помогает перезагрузка УТМ / компа.
50. kuli kuli (kulispb) 13.05.16 18:02
1. возможно ли реализовать в обработке открытие квитанции онлайн (через вебморду)?
2. возможно ли дописать повторный запрос на отправку накладной?
51. Станислав Косолапов (amoarok) 16.05.16 14:15
(50) kulispb,
1. Вам нужно просто открывать XML файл в браузере из обработки? Уже сейчас можно скопировать URL из обработки и вставить его в адресную строку.
2. Повторный запрос ТТН есть на вкладке "Дополнительно".
52. kuli kuli (kulispb) 18.05.16 18:26
(51) amoarok,
Большое спасибо все нашел.
Подскажите пожалуйста можно ли вас попросить за дополнительную плату помочь разобраться с косяком? (Каким то образом от нас уходят с подтверждением накладные, которые мы не получали.)
53. Сергей Хабаров (HSV) 19.05.16 09:20
Розничные продажи (ЧекККМ) из ТИС в ЕГАИС кто нибудь не реализовал?
54. Victor Nespyatin (victuan) 28.05.16 23:27
(53) Да, реализовано здесь: http://infostart.ru/public/433840/
И не только фиксация розничных продажи, а полный функционал для обмена с УТМ присутствует.
55. Сергей Хабаров (HSV) 07.06.16 10:25
(54) С Меркурий МС-К работает? (QR код)
56. Евгений Фенин (Fenin) 15.06.16 13:37
Добрый день. Не получается сделать возврат, выдает ошибку, что не установлена связь с УТМ. В чем может быть проблема?
WinHTTP.Status возвращает код 500.
Спасибо.
57. Станислав Косолапов (amoarok) 16.06.16 14:51
(56) Fenin, поищите в директории резервного хранилища (по умолчанию E:\ЕГАИС) папку "err" и выложите здесь самый свежий файл из неё.
58. Алекс Советский (copybases) 23.06.16 02:06
amoarok,
планируете реализацию документооборота версии 2?
59. Станислав Косолапов (amoarok) 23.06.16 08:19
(58) copybases, в ближайшее время - нет. Может быть через месяц-другой.
60. Евгений Фенин (Fenin) 23.06.16 22:34
(57) amoarok, Файл в архиве, так же немного допилил обработку (настройки нескольких УТМ сохраняются в файле Setting.ini, который необходимо закинуть в хранилище).
В обработке сделал возможность редактировать строки возврата, так как приход по этому возврату был давно и в базе нет данных по первоначальной ТТН.
(Сначала не сообразил, что можно возврат делать по первой закладке).
Спасибо.
Прикрепленные файлы:
Файлы.zip
61. Станислав Косолапов (amoarok) 24.06.16 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. Евгений Фенин (Fenin) 05.07.16 22:03
(61) amoarok, Спасибо большое. Ошибку исправил, действительно в количестве стояла запятая и еще реквизит цена - обязательный, без него тоже выдавал ошибку.
63. Виталий Ганиев (vitnaut) 07.07.16 15:55
Спасибо за обработку, но хотелось бы видеть список подтвержденных накладных! Раз уж есть база то как её можно посмотреть?
64. Станислав Косолапов (amoarok) 08.07.16 12:18
(63) vitnaut, к сожалению пока список подтвержденных накладных посмотреть не получится. В базе хранятся только запросы с replyId и информация по formBRegInfo. ТТН, квитанции и прочие документы просто лежат в папке в виде файлов.
65. Виталий Ганиев (vitnaut) 08.07.16 12:26
(64) amoarok, понятно, спасибо и на том что есть. а насчет перемещения из регистра1 в регистр2 (торговый зал) не думали ещё?
66. Евгений Фенин (Fenin) 28.09.16 20:18
Станислав, помогите пожалуйста найти ошибку в постановке на баланс, файл прикрепил.
67. Евгений Фенин (Fenin) 28.09.16 21:38
68. Станислав Косолапов (amoarok) 29.09.16 10:55
(67) Fenin,
ERROR: Element '{http://fsrar.ru/WEGAIS/ActChargeOn}MarkCode': [facet 'pattern'] The value '22Т0000041РФЕФЙВЬЛЧ0ИУА50309004025948ВЬОРЧПУ9МЛ3АЛЙСУ5ЧПУПСМ0ЛЦ8Ч8С3' is not accepted by the pattern '[A-Za-z0-9]+'.
ERROR: Element '{http://fsrar.ru/WEGAIS/ActChargeOn}MarkCode': '22Т0000041РФЕФЙВЬЛЧ0ИУА50309004025948ВЬОРЧПУ9МЛ3АЛЙСУ5ЧПУПС­М0ЛЦ8Ч8С3' is not a valid value of the atomic type '{http://fsrar.ru/WEGAIS/Common}PDF417String'.

Когда сканируете марку, переключайтесь на английскую раскладку клавиатуры.
69. Евгений Фенин (Fenin) 29.09.16 14:34
Станислав, спасибо акт прошел, но вернул ответ:

Получен ответ на акт согласования/разногласий для документа Акт постановки на баланс от 2016-09-29 продукция 0378249000001295909
Удаляем документ: http://192.168.0.15:8080/opt/out/Ticket/3203
[2/2] Ошибка: Ошибка проверки акта № 20160929-160808 от 29.09.2016 00:00:00. Позиция 1: Штрихкода содержат отличные от позиции акта коды продукции.

Что это может быть?

Каким образом Вы узнаете где в файле ошибка? Есть какой-то сервис?
70. Станислав Косолапов (amoarok) 30.09.16 10:36
(69) Fenin, одна из марок считана некорректно или относится в другой продукции. Проверить алкокод можно через сервис проверки марок в лк фсрар или поискать на инфостарте обработку, которая из кода марки вытаскивает алкокод.
71. Евгений Фенин (Fenin) 30.09.16 10:52
Спасибо, действительно марка была от другой позиции.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа