Обмен с УТМ ЕГАИС для 1С: 7.7
Учетные задачи - Оптовая торговля
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обработка предназначена для конфигурации 1С: 7.7 Торговля+Склад.
Требуется доработка типовой конфигурации (Инструкция по доработке 1с77 ТиС прилагается).
Для работы требуется установленный и настроенный модуль УТМ ЕГАИС. Для соединения с УТМ используется утилита командной строки cURL (должна быть установлена).
Код обработки полностью открыт.
Лицензионных ограничений нет.
Реализована возможность сохранения и выбора настроек для нескольких УТМ.
Флаг «Тестирование» позволяет формировать документы, но не отправлять в УТМ.
Полученные из ЕГАИС документы сохраняются на диск и удаляются из УТМ. Сохраняются на диск отправленные документы.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Оптовая торговля Розничная торговля ККМ ЭДО и ОФД Обмен с ГосИС НДС 22% Системный администратор Разработчик Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Платные (руб)
Подключение фискального регистратора к 1С 7.7 в режиме онлайн-кассы в соответствии с 54-ФЗ для Атол, Штрих-М / Торговый баланс М (PosCenter). Поддержка операторов ЭДО: Сбис (Тензор), Контур.Диадок, ЭДО лайт, Калуга Астрал, Такском и пр. Поддержка оптовой и розничной продажи маркированной продукции (алкоголь, табак, обувь, лекарства, шины, одежда, белье, парфюмерия, молочная продукция, вода, пиво, автозапчасти, моторное масло и пр.). Поддержка онлайн и офлайн (через Локальный Модуль ЧЗ) проверки маркировки в разрешительном режиме (РР) и через ТС ПИоТ.
20000 руб.
28.03.2017 585792 5313 3840
Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Пользователь 1С:Предприятие 7.7 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 1.х 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)
Автоматизация заказа поставщику через 1С. Загрузка прайсов, анализ цен, управление заказами в УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2
39141 руб.
21.04.2017 113559 213 44
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 1C77 Платные (руб)
Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async можно наладить обмен данными между удаленными информационными базами по протоколам HTTP, HTTPS и WebSocket. С помощью компоненты HttpSrv7 используя протокол WebSocket можно создавать и поддерживать работу нескольких чатов. С помощью компоненты HTTP_Async можно асинхронно отправлять HTTP-запросы к сайтам, веб-сервисам (в т.ч. к HTTPSrv7) и обрабатывать ответы по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи в формате Base64 и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.
6100 руб.
27.05.2022 13646 2 20
Обмен с ГосИС Разработчик 1С:Предприятие 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Ювелирная промышленность и торговля Россия Бухгалтерский учет Абонемент ($m)
Интеграция 1С 7.7 с ГИИС ДМДК (маркировка ювелирных изделий и драгоценных камней). Данная публикация является попыткой выяснения спроса на полноценную интеграцию конфигураций на базе платформы 1С 7.7 с ГИИС ДМДК (https://dmdk.ru/). На текущий момент реализована печать ценников-бирок, содержащие УИН продукции в формате ШК Datamatrix. Имеются планы разработки решения для учета розничных продаж через УТМ (Универсальный Транспортный Модуль) из 1С 7.7.
1 стартмани
01.03.2022 8554 1 victuan 2
Разработка внешних компонент WEB-интеграция Разработчик 1С:Предприятие 7.7 Абонемент ($m)
Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.
1 стартмани
14.11.2019 24677 138 mdbruyfn 110
Обмен с ГосИС Разработчик 1С:Предприятие 7.7 1C77 Здравоохранение, медицина, стоматология Фармацевтика, аптеки Россия Управленческий учет Абонемент ($m)
Конфигурация, демонстрирующая обмен с системой "Маркировка МДЛП".
10 стартмани
31.10.2019 28805 80 vovaapril 89
Анализ учета Оптовая торговля Бухгалтер Бухгалтерский учет 7.7 1С:Комплексная 7.7 Россия Бухгалтерский учет НДС Абонемент ($m)
Отчет написан для Комплексной конфигурации 4.2. Отчет позволяет выполнить сверку кредитовых оборотов счета 76.АВ (НДС с авансов полученных) с книгой покупок, проверить правильность выписки счетов фактур на зачет аванса по счетам БУ в разрезе разных ставок НДС 18% и 20% в комплексной конфигурации 1С:Предприятия 7.7. Позволяет найти и исправить ошибки в процессе перехода на 20% НДС. Помогает с закрытием квартала 18% и 20% НДС. Отчет обновлен для анализа данных 2 квартала 2019 года и всех следующих кварталов (стал более универсальным).
1 стартмани
27.03.2019 26874 17 ksnik 5
Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Обмен с ГосИС Разработчик Бухгалтер Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 1С:Упрощенное налогообложение 7.7 Сельское хозяйство и рыболовство Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Пищевая промышленность Россия Бухгалтерский учет Управленческий учет Платные (руб)
Полностью автоматизированный обмен между конфигурациями 1С 7.7 и ФГИС Меркурий через Ветис.API для всех видов деятельности (Опт, Розница, Производство). Для организации обмена с ФГИС Меркурий требуется минимальная доработка конфигураций (поддерживается "из коробки" 1С: "Торговля и склад ред. 9.2", 1С: "Комплексная ред. 4.5", 1С: "Бухгалтерия 7.7", 1С: "УСН 7.7", 1С Предприниматель, другие конфигурации по заказу, включая нетиповые и самописные). Модуль разработан таким образом, чтобы минимизировать затраты по внедрению в произвольную конфигурацию на базе 1С 7.7. Вы можете БЕСПЛАТНО скачать демо-версию без ограничения по функционалу и опробовать решение в полном объеме перед покупкой. В данном программном продукте реализованы все технические требования Россельхознадзора по обмену в формате 2.0 и 2.1. Решение прошло опытную эксплуатацию и тестирование на крупных объектах всех видов деятельности: Производство, Опт, Розница.
10000 руб.
21.11.2018 60143 162 105
11:35:06 - Запрос справочника по ИНН 7453191902
11:35:07 - Ожидание ответа......
11:35:37 - Проверка входящих
11:35:50 - Проверка входящих
11:36:21 - Проверка входящих
11:40:52 - Проверка входящих
11:40:54 - Получение данных
КомандаСистемы("curl -X GET "+СправочникЮрл+">"+ФайлОтвета); ПарсерХМЛ = СоздатьОбъект("AddIn.XMLParser"); ХМЛ = ПарсерХМЛ.СоздатьДокумент(); ХМЛ.Загрузить(ФайлОтвета); Узел1 = ХМЛ.ВыбратьУзел("ns:Documents"); Узел2 = Узел1.ВыбратьУзел("ns:Document"); Вид = Узел2.ПолучитьПодчиненныйПоНомеру(1).Наименование; Таб = СоздатьОбъект("Таблица"); Если Вид = "ReplyClient" Тогда Узел3 = Узел2.ВыбратьУзел("ns:ReplyClient");
{D:\РАБОТА\ЕГАИС77\!ЕГАИС.ERT(16)}: : Ошибка исполнения метода
Можно обработку целиком на natanvidja@gmail.com ПЛИИЗЗЗ. Скину на телефон отправителю 300 р. Покупка Абонемента для скачивания 850 р (((( Дорого
Если вылезает ошибка типа
{D:\РАБОТА\ЕГАИС\!ЕГАИС.ERT(3)}: : XML document must have a top level element.
Вероятно всего не удалось загрузить приходящий ответ в xml файл. Помогает открытие 1с 7 с Админскими правами.
{C:\TESTXML\ПРОВЕРКАРАБОТЫС_XML.ERT(9)}: : Ошибка исполнения метода
та же ошибка...
предлагаю проверить такой механизм:
Для Сч=1 По ХМЛ.КоличествоПодчиненных() Цикл
Узел1=ХМЛ.ПолучитьПодчиненныйПоНомеру(Сч);
Сообщить(Узел1.Наименование);
Если Узел1.Наименование="oref:ClientRegId" Тогда
РегИд =Узел1.Значение;
ИначеЕсли Узел1.Наименование="oref:KPP" Тогда
КПП=Узел1.Значение;
КонецЕсли;
КонецЦикла;
Узел1.Наименование = "Documents" (в смысле, в табло выводит - Documents )...
А должно быть, как я понимаю - "oref:ClientRegId"
Вот собственно и ошибка, поэтому и не парсит... Получается всетаки структура самого хмл?
Хотя, зрительно, вроде правильный, во всяком случае на глаз ошибки не видно...
Вобщем то, это было видно и в отладчике, скриншот приложенный к сообщениию(17), так же как и версия анализатора...
Щас еще попробую с регистрацией длл-ок поиграть, но похоже причина не в этом...
КомандаСистемы("curl -X GET http://"+СокрЛП(АдресУТМ)+"/opt/out?refresh=true"+">"+ФайлОтвета); ТЗ_Документы.Очистить(); ТЗ_Документы.НоваяКолонка("Юрл"); ТЗ_Документы.НоваяКолонка("Ид","Строка",36); ПарсерХМЛ = СоздатьОбъект("AddIn.XMLParser"); ХМЛ = ПарсерХМЛ.СоздатьДокумент(); ХМЛ.Загрузить(ФайлОтвета); УзелA = ХМЛ.ВыбратьУзел("A"); Для ш = 1 По УзелA.КоличествоПодчиненных() Цикл Узел1 = УзелA.ПолучитьПодчиненныйПоНомеру(ш);
{C:\USERS\V\DOWNLOADS\ЕГАИС ПОД 77.ERT(3)}: : Для документа XML должен существовать документ более высокого уровня.
10:39:28 - Запрос справочника по ИНН 7453191902
ХМЛ = ПарсерХМЛ.СоздатьДокумент(); ХМЛ.Загрузить(ФайлОтвета); УзелA = ХМЛ.ВыбратьУзел("A"); Попытка ЗапросИд = УзелA.ВыбратьУзел("url").Значение; Исключение Сообщить("Ошибка!","!"); ЗапуститьПриложение("explorer "+ФайлОтвета); Возврат; КонецПопытки; Сообщить(ТекущееВремя() + " - Ожидание ответа......"); Пока Вопрос("Ожидание ответа(~5мин)......."+РазделительСтрок + "ОК - Проверить входящие, Отмена - Прервать","ОК+Отмена",30) <> "Отмена" Цикл
{D:\РАБОТА\ЕГАИС\!ЕГАИС.ERT(14)}: : XML document must have a top level element.
При нажатии кнопки Выбор прихода:
КомандаСистемы("curl -X GET http://"+СокрЛП(АдресУТМ)+"/opt/out?refresh=true"+">"+ФайлОтвета); ТЗ_Документы.Очистить(); ТЗ_Документы.НоваяКолонка("Юрл"); ТЗ_Документы.НоваяКолонка("Ид","Строка",36); ПарсерХМЛ = СоздатьОбъект("AddIn.XMLParser"); ХМЛ = ПарсерХМЛ.СоздатьДокумент(); ХМЛ.Загрузить(ФайлОтвета); УзелA = ХМЛ.ВыбратьУзел("A"); Для ш = 1 По УзелA.КоличествоПодчиненных() Цикл Узел1 = УзелA.ПолучитьПодчиненныйПоНомеру(ш);
{D:\РАБОТА\ЕГАИС\!ЕГАИС.ERT(3)}: : XML document must have a top level element.
Нужно добавить функцию как в 121 и прописать в процедкре таким образом:
Узел1 = ПолучитьУзел(ХМЛ,"ns:Documents");
Узел2 = ПолучитьУзел(Узел1,"ns:Document");
и далее по аналогии заменить ВыбратьУзел на данную функцию.
Вчера настроил УТМ, попробовал, работает.... Но, частично... Запросы отправляет, квитанции получает, ожидаем ответа... Через ~5 минут приходит ответ, а дальше - распарсить его не получается, ХМЛ.ВыбратьУзел("ns:Documents"); - ошибка исполнения метода, как в посте 12 от bikmullina... Файл ответа(во вложении к этому сообщению) просматриваю - вроде все нормально, во всяком случае, я косяков в структуре не вижу(может чего-то недопонял???)...
Для отладки написал простенькую обработку, по анализу готового файла ответа, чтобы лишний раз не терять время на ожидании ответа и не мучать УТМ...
Процедура Сформировать()
ФайлОтвета = "C:\Temp\reply.xml";
// ФайлОтвета = "C:\Temp\card_cl.xml";
ПарсерХМЛ = СоздатьОбъект("AddIn.XMLParser");
ХМЛ = ПарсерХМЛ.СоздатьДокумент();
ХМЛ.Загрузить(ФайлОтвета);
Узел1 = ХМЛ.ВыбратьУзел("ns:Documents");
Узел2 = Узел1.ВыбратьУзел("ns:Document");
КонецПроцедуры ПоказатьНо, это пока понимания "а чего ему в XML ответе не нравится - ???" не добавило... Вылетает там-же, на первом же "ВыбратьУзел"... Если не трудно, посмотрите пожалуйста файлик, что-бы было хоть понятно, в какую сторону копать - файл кривой(или у меня руки?:-( ), что-то не так в коде обработки, в части парсинга, или вообще проблема в чем-то другом...
PS Сам УТМ вроде нормально работает, во всяком случае через сайт Егаисик.рф мне удалось и ТТН посмотреть, и справочники...
Для чистоты эксперимента в процедуре "ПриОткрытии()" прописал полный путь к длл, чтобы исключить вариант, что она не оттуда подгружается. Та-же ошибка...
В отладчике уже все перепробовал, вытащил все что смог - скриншот во вложении. Уже не знаю, куда и копать...
PS Операционка XP SP3 - может быть причиной некорректной работы парсера? УТМ стоит на машинке с семеркой, но на ней нет 1С. Может есть смысл установить, и перенести эксперименты туда?
Как это ни странно:
но причина была все-таки в этом... Удивительно, парсер работал, но как-то криво... Я бы понял, если-бы совсем не работал, но так...
Спасибо огромное за помощь! Я думаю, этот опыт всем пригодится, не у одного меня такая проблема...
Расскажи точно, как добился, что у тебя заработало...
У меня та же проблема.
Узел1 = ХМЛ.ВыбратьУзел("ns:Documents");
{D:\ЕГАИС\ОБРАБОТКИ\ЕГАИС.ERT(288)}: : Ошибка исполнения метода
Здесь все перечитал и переделал. Не помогает.
Файл с УТМ получаеться и лежит во временной папке.
Хоть свой парсер пиши блин...
сделал обработку в ней:
Сообщить("ВерсияАнализатора - " + ПарсерХМЛ.ВерсияАнализатора);
Сообщить("ВерсияБазовогоАнализатора - "+ПарсерХМЛ.ВерсияБазовогоАнализатора);
так если ВерсияБазовогоАнализатора =3 то все нормално, пробовал с разных компов, а на сервере ВерсияБазовогоАнализатора =4, там не работает
Сервер 2012r2 там пробовал regsvr32 /u msxml6.dll
regsvr32 msxml3.dll
все равно пишет ВерсияБазовогоАнализатора =4
Написал батник перерегистрации парсера.
Все сразу заработало.
Версия базового анализатора должна быт 3.
подскажите если 1С в терминале, делаю адрес УТМ например (192.168.10.106:8080)
На компе где УТМ (192.168.10.106 ) что-то нужно расшарить или ставить Апач?
Если просто запускаю в 1С по сети где УТМ обработку то все ОК, как из терминала запустить? выходит ошибка:
ХМЛ.Загрузить(ФайлОтвета);
{\\SERVER\ЕГАИС.ERT(164)}: : XML document must have a top level element.
В браузере "страница не найдена"
Сервер win2012 (виртуализирован) в 1C работаем в терминале - ip 192.168.10.100, curl установлен, УТМ -нет
машина с УТМ-1 win7 - ip 192.168.10.106 curl установлен
Если захожу на машине с УТМ-1 в 1С не через RDP, а просто, ч/з сеть, то в обработке значение АдресУТМ (localhost:8080), попробовал загрузить данные своей организации, все сработало ОК.
В принципе можно и так работать, но у нас опт и розница и еще 2 разных фирмы (пиво/крепкий алкоголь) все на одном сервере, соответственно УТМ будет штук 10, а работать все на сервере в одной 1С, так вот если обработку открываю в терминале 1С и прописываю в ней АдресУТМ 192.168.10.106:8080, то не работает, но тут не обработка конечно виновата. Вопрос как правильно машину с УТМ настроить.
да, невнимательность ))
И еще... Не совсем понятно зачем технически справка б вообще нужна, в ттн же вся информация имеется!
А какие сроки Вас поджимают? 01.01.2016?
Требуется подтверждать приход, или формировать акты разногласий...
Это можно делать уже сейчас, хоть этой обработкой, хоть еще кучей способов...
А о загрузке накладных из ЕГАИС, в нормальном, удобном виде, можно пока забыть...
В ЕГАИС нет ШтрихКодов EAN-13, а какая без них загрузка? Торговать то Вы будете не по кодам ЕГАИС, и не по акцизкам,а по обычным ШтрихКодам... Представляете, сколько накосячат наши любимые пользователи, если мы загрузим накладные в таком виде,и дадим ввод ШК им на откуп?
Нет, конечно можно добавить в номенклатуру код ЕГАИС, потом вручную перелопатить весь справочник, сопоставив имеющуюся номенклатуру со справочниками ЕГАИС... Но, представляете, какой это труд, и какое поле для ошибок... Я долго думал, как максимально упростить эту процедуру, но, пока все упирается в то, что "а кто это все делать будет?" Да даже если это разово и проделать, то, как только будет появляться новый товар, так проблемы будут возникать снова...
Вобщем, лично я для себя решил пока подождать, может что-то поменяется в лучшую сторону. Пока, "ужасы 01.01.2016" особо не пугают, мы к ним готовы.
Мы оптовики и нам на горло наступают производители.
Код товара ЕГАИС я однозначно буду заводить.
Ну и придется девочкам его ручками поддерживать...
Мы с 01.01.2016 должны уже ТТН по покупателя выгружать.
На сей момент должны подтверждать факт прихода...
Да и вообще не люблю тянуть, как бухи до последнего.
Лучше пущай лежит готовое...
из марки легко вычисляется егаисовский 19 значный алккод. ( забивать алккоды можно сразу при приёмке с помощью двумерного сканера.
всё идёт к тому, что еан-13 и не нужен.
более того, еан-13 может совпадать у разных производителей, а алккод - нет.
Судя по тому как они написали Декларант Алко, ничего хорошего от них ждать нельзя!
Cамая опа светит рознице:
1.Производитель отгружает оптовику продукцию указывая диапазон спец. марок,
2. Оптовик отгружает рознице, также диапазоном.
3. Розница с 01.07.16г реализует каждую спец. марку.
4. Если не производить контроль в рознице на стадии прихода (соответствие фактического прихода диапазону) то при пересорте на двух предыдущих этапах (производитель-оптовик-розница) розница постоянно будет получать плюхи за реализацию несуществующего товара.
Следовательно, необходимо "автоматизировать" фактический приход с обязательной сверкой марки с диапазоном указанным в УТМ, чтобы выявлять пересорт. Или в УТМ нет инфы по диапазону? (Извините, я не в курсе, что там есть)
Какую инфу содержит ШК спец марки?
Как быть с остатками? Можно создать документ для переучета (с применением шк с марки) для заполнения в карточке товара кода АП, инфы о производителе и т.д?
Поможете?)
Люди добрые, пришлите ТТН на ИНН 2627019438 КПП263245001. Мои поставщики спят(
Нет там никаких диапазонов. Есть только код, наименование, количество, цена, номер справки А, номер справки Б. Ничего там больше нет, по чем можно было-бы идентифицировать принадлежность марки конкретному поставщику/производителю.
Ну, что ты мучаешься. Есть хороший новый форум
www.egais2016.ru
Тама очень много хороших разъяснений и по твоим вопросам.
Задавай вопросы и ребята с РАРА и ЕГАИСА тебе ответят.
Плюс есть еще пара видеоконференций от ЕГАИСА.
Смотреть их нудно и долго, но можно извлечь нужную инфу для себя.
Скажу только, что ребята делают так как им надо и удобно, с учетом законодательства...
И еще вопрос пробую запросить партнера вываливает ошибка
<error>org.xml.sax.SAXParseException; cvc-pattern-valid: Value ' 0200001448' is not facet-valid with respect to pattern '[0-9]+' for type 'FSRARIDType'.</error>
В чем может быть проблема.
вместо
Текст.ДобавитьСтроку("<wa:ACTNUMBER>" + ПреобразоватьСтрокуВУТФ8(ПриходНомерДок) + "</wa:ACTNUMBER>");
сделай так
Текст.ДобавитьСтроку("<wa:ACTNUMBER>" +ВремяДляЕГАИС(":")+ "</wa:ACTNUMBER>");
где
Функция ВремяДляЕГАИС(Раздел)
ЧЧас="";
ММин="";
ССек="";
ТекущееВремя(ЧЧас,ММин,ССек);
Возврат ""+Формат(Число(ЧЧас),"Ч(0)2.0")+Раздел+Формат(Число(ММин),"Ч(0)2.0")+Раздел+Формат(Число(ССек),"Ч(0)2.0");
КонецФункции
и будет тебе СЧАСТЬЕ ))
В процедуре ЗапроситьСправочник(), там, где передается ИНН в запрос, используйте СокрЛП(ИНН). Длина поля ИНН 12 символов, а ИНН организаций 10. Два лишних пробела в конце, "не пролазят" в шаблон. Раньше - работало. Пару дней как перестало, видимо xml схему запроса поменяли.
скачать не могу, нет стартов
<?xml version="1.0" encoding="UTF-8" ?>
- <ns:Documents xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:qp="http://fsrar.ru/WEGAIS/QueryParameters" Version="1.0">
- <ns:Owner>
<ns:FSRAR_ID>020000593500</ns:FSRAR_ID>
</ns:Owner>
- <ns:Document>
- <ns:QueryClients>
- <qp:Parameters>
- <qp:Parameter>
<qp:Name>ИНН</qp:Name>
<qp:Value>2627019438</qp:Value>
</qp:Parameter>
</qp:Parameters>
</ns:QueryClients>
</ns:Document>
</ns:Documents>
Спасибо. разобрался. Неделю долбался, чтобы понять что JaCarta глючит сука.
Ключи записываются,УТМ запускается, Запросы уходят, а ответы не заходят.
100 раз переустанавливал эту тварь. В итоге, Поменял ключ и все заработало.
Узел1 = ХМЛ.ВыбратьУзел("ns:Documents");
{D:\ЕГАИС\ОБРАБОТКИ\ЕГАИС.ERT(288)}: : Ошибка исполнения метода
Все что тут описано запускал, перезапускал - не помогает. Где копать?
открывает вроде все правильно:
<?xml version="1.0" encoding="windows-1251"?>
<ns:Documents xmlns:wb="http://fsrar.ru/WEGAIS/TTNSingle" xmlns:pref="http://fsrar.ru/WEGAIS/ProductRef" xmlns:oref="http://fsrar.ru/WEGAIS/ClientRef" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01">
<ns:Owner>
<ns:FSRAR_ID xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01">5678921</ns:FSRAR_ID>
</ns:Owner>
<ns:Document>
<ns:WayBill>
Если стираю ns:
Узел1 = ХМЛ.ВыбратьУзел("Documents");
Узел2 = Узел1.ВыбратьУзел("Document");
то выдает уже
Узел2 = Узел1.ВыбратьУзел("Document");
{C:\USERS\1\DOWNLOADS\ЕГАИС ПРИХ.ERT(309)}: Значение не представляет агрегатный объект (ВыбратьУзел)
т.е. Узел 1 присваивается
Я уже и закомметил команду curl, вручную в cmd сохранил запрос на справоч контрагента в файл reply.xml
попытка этот файл записать в xml-parser = ОШИБКА =( =( =(
выше по сообщениям архивчик с cUrl-ом помог) распаковал содержимое в system32 - ошибка исчезла) мож у меня версия curl-a была кривая )
весь день такую табличку выкидывает
может чтото не так делаю?
запрос контрагента если что
кто может отправить тестовую накладную на фсрар_ИД 020000357295
ИНН/КПП 7447219042/740445002
спасибо!
Для первоначальной обработки номенклатуры.
Может кому пригодится.
Не ругайте сильно если очень криво, Я только учусь)
Был косячок, исправил
Если кто-нить допишет так, чтобы по составу кода определял в какой реквизит записывать, ваще будет хорошо)
У меня вот какая странность происходит: адаптировал я Вашу обработку, так что теперь у меня штрихкод сканируется правильно, я проверил.
Но вот какую странность я наблюдаю: когда сканирую код в ОС, он весь из заглавных букв и цифр состоит. Когда сканирую в 1С, в текстовый файл, некоторые символы в нижнем регистре, некоторые — в верхнем.
При этом, когда прогнал Вашу функцию через отладчика, оказалось, что в неё, в функцию, передаётся штрихкод полностью в верхнем регистре. Это только у меня такие странности? Драйвер сканера на этом компьютере не установлен.
Кроме того, заметил, что если выбрана английская раскладка, штрихкод сканируется английскими буквами, если же русская — русскими, соответствующими английским на тех же клавишах. Это я обошёл легко, написав функцию для замены символов английскими, а заодно — и в верхнем регистре. Тем не менее, удивительно это.
Как бы там ни было, Ваша обработка мне очень помогла, спасибо ещё раз!
инн 2627019438
кпп 263245001
кпп 263232001
ИНН 262700251448 ИП
,
пожалуйста.
Заранее благодарен.
Осталось обкатать 1с7.7 с ЕГАИС (комплексная доработка опт+розница) и будет готовый .md)
2015-11-03 13:17:39,161 ERROR es.programador.http.ClientDocumentServlet - Ошибка разбора и валидации накладной
java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '\S+(.*\S+)*' for type 'NoEmptyString50'.
Можете подсказать, из этих строк понятно что именно не валидно в файле?
вообще непонятно. у меня такая же песня.
судя по TTNSingle.xsd
всего три поля имеют такие ограничения, это NUMBER, Pack_ID, Party
у меня все эти поля заполнены, но ошибка таже :(
единственное не совсем понимаю
1. что означает в XSD строка - minOccurs="1" maxOccurs="1"> у поля NUMBER
2. почему проверка XSD не пишет какой реквизит ее не устраивает нет сообщения for type 'чегототам'.
потратил пол дня сегодня - засада.
1. что означает в XSD строка - minOccurs="1" maxOccurs="1"> у поля NUMBER
Окурсы указывают на обязательность наличия и заполнения строки
если 1 1 обязательно
если 0 1 то не обязательно.
Вот такую хрень рассказали Центр информовцы.
И самое интересное, что УТМ работает по этому принципу.
c эти Проблема решилась,
все поля должны быть заполнены, пробелы не подошли.
я поставл прочерки и эта ошибка ушла.
<oref:Country>643</oref:Country>
<oref:Index>-</oref:Index>
<oref:RegionCode>-</oref:RegionCode>
<oref:area>-</oref:area>
<oref:city>-</oref:city>
<oref:place>-</oref:place>
<oref:street>-</oref:street>
<oref:house>-</oref:house>
<oref:building>-</oref:building>
<oref:liter>-</oref:liter>
<oref:description>-</oref:description>
Показатьправда вышла другая.
- <A>
<error>org.xml.sax.SAXParseException; cvc-enumeration-valid: Value '????' is not facet-valid with respect to enumeration '[??, ???, ????, ?????]'. It must be a value from the enumeration.</error>
<ver>2</ver>
</A>
Люди добрые, и мне сбросьте по несколько накладных на
инн 2627019438
кпп 263245001
кпп 263232001
ИНН 262700251448 ИП
,
пожалуйста.
Заранее благодарен.
Осталось обкатать 1с7.7 с ЕГАИС (комплексная доработка опт+розница) и будет готовый .md)
В смысле? Где УТМ установлен - на клиенте, или на сервере, там-же где 1С крутится?
Если на сервере, то должно и так работать, по локалхосту, если на клиенте - то зависит от того, где этот клиент - в одной локалке с сервером, или в интернете? Если в одной локалке, то нет проблем - просто указываете IP-адрес компа с УТМом, с портом, и все. Если в Интернете - то ИМХО никак... Только, наверно, если VPN организовывать между сервером и клиентом с УТМ... И то, не факт, что будет работать, хотя должно.
А то вроде как только накладные надо подтверждать, зачем запрос по поставщикам, запрос остатков, справок!
Цель работы, чтоб не придрались контролирующее органы больше ничего не нужно!
Спасибо заранее!
А можно запросить контрагентов списком? В документации пример получения одного контрагента. По одному получать 1000 штук долго.
Не понятно, как проверить работу обработки. Может быть кто-нибудь напишет про свой опыт? Подключил, нажимаю кнопку "Выбрать приход" и сижу, жду. Пусто - никто приход не шлет. Как протестировать?
Что дальше делать?
Узел1 = ХМЛ.ВыбратьУзел("ns:Documents");
{C:\USERS\GLBUH\DESKTOP\АЛКО\ОБРАБОТКА\ЕГАИС_ПРИХОДЫ.ERT(176)}: : Ошибка исполнения метода
Прочитала пост. проверила версию анализатора - 2. Зарегистрирована dll. Платформа семерки 027. Что еще можно проверить?
//
Функция ПолучитьУзел(Узел1,Имя="")
Для Сч = 1 По Узел1.КоличествоПодчиненных() Цикл
Узел2 = Узел1.ПолучитьПодчиненныйПоНомеру(Сч);
Если Узел2.Наименование = СокрЛП(Имя) Тогда
Возврат Узел2;
КонецЕсли;
КонецЦикла;
Сообщить("Не найден узел "+Имя);
КонецФункции
ПоказатьСделал, но ошибка та же
Узел1 = ХМЛ.ВыбратьУзел("ns:Documents");
{C:\......\ЕГАИС_ПРИХОДЫ.ERT(176)}: : Ошибка исполнения метода
проверила версию анализатора - 2. Зарегистрирована dll. Платформа семерки 027. Что еще можно проверить?
Как проверить версию анализатора? dll зарегистрировал, как в 38 посте.
Парсер проверил, 2.0, как и должно быть.
В чём ещё может быть причина?
//======================================================================
Функция ПолучитьПодчиненныйУзел(лУзелРод, лУзелТэг)
Для ш = 1 По лУзелРод.КоличествоПодчиненных() Цикл
лУзелРеб = лУзелРод.ПолучитьПодчиненныйПоНомеру(ш);
Если лУзелРеб.ПолноеНаименование = лУзелТэг Тогда
Возврат лУзелРеб;
КонецЕсли;
КонецЦикла;
Возврат "";
КонецФункции // ПолучитьПодчиненныйУзел
ПоказатьВсе варианты уже попробовал.
и как в 125, внимательно прочитал ветку, но вот это выходит.
Вид = Узел2.ПолучитьПодчиненныйПоНомеру(1).Наименование;
{E:\...\ЕГАИС_ПРИХОДЫ.ERT(202)}: Значение не представляет агрегатный объект (ПолучитьПодчиненныйПоНомеру)
Не стоит извиняться, меняйте, ваш выбор, у меня всё сраслось.
И умничать то же не стоит, прямо на ошибку указать не можете и подсказать не хотите, всё заумными загадками. Не спорю, уровень знаний у каждого разный, но зачем "пинать" новичков? А нужно то было пару грамотных фраз, а не заумных загадок от кодера-гуру.
отладчик в руки и разбираться чего именно не получилось, а не скидывать:
{E:\...\ЕГАИС_ПРИХОДЫ.ERT(202)}: Значение не представляет агрегатный объект (ПолучитьПодчиненныйПоНомеру)
я вижу что там еще у вас понаписяно кроме этой строки
Подскажите, пожалуйста:
Пытаюсь запросить партнера, получаю практически мгновенно:
00:01:16 - Запрос справочника по ИНН ХХХХХХХХХХ
ХМЛ.Загрузить(ФайлОтвета);
{F:\БАЗЫ\V7\ЕГАИС\DB\EXTFORMS\!ЕГАИС.ERT(140)}: : XML document must have a top level element.
XML-файл reply присутствует, но он абсолютно пустой.
С продукцией то же самое, увы..
А кто-нибудь интегрировал уже эту обработку в 1с?
Подскажите, пожалуйста, как лучше сделать привязку кодов товара по ЕГАИС к номенклатуре?
По-хорошему, конечно, создать бы реквизит в справочнике номенклатуры, и в него писать код по ЕГАИС. Но возможен косяк - коды номенклатуры по ЕГАИС, как я понял, уникальны только внутри ЗАВОДА поставщика, т.е. если заводов несколько и с любого из них вы можете получить товар, то за такой номенклатурой следует закрепить несколько кодов в ЕГАИС (по одному на каждый завод, где она производится). Получается, что нужно делать подчиненный справочник для номенклатуры, в который проставлять все коды?
Тогда при загрузке ТТН поставщика в наше поступление номенклатура по коду подтянется верно, но, кроме этого, нам нужно при реализации этого товара тоже правильно указать его код по ЕГАИС, как это лучше сделать? Добавить поле "КодЕгаис" в табличную часть документа поступления? Или добавить реквизит "КодЕгаис" в партию товара? Или ещё как-то?
Кроме этого, нужно же ещё как-то подвязать хранение формА и Б справок. Никто ничего с этим не делал?
коды в ЕГАИС я так понимаю уникальные, т.е. у разных производителей одинаковых нет.
ошибка может быть если при отправке указываем код товара и код производителя по нему разные (уже такое было), у поставщика было 2 regID, и товар половину на первом остальное на втором, причем и кпп и названия одинаковые, как будут юзвери разруливать такие ситуации не представляю.
в поступлениях у меня учет по партиям - справочник партий - туда пишутся ID справок А и Б.
думаю по другому никак, а при продаже выбирать надо конкретную партию по которой товар приходил. покрайней мере я так сделал.
Если только пока сделать отдельный справочник товаров ЕГАИС и сделать ссылочную связь с карточками товара. На самом деле пока не ясно как связать номенклатуру ФСРАР со справочниками товара. Или полностью переходить на справочники ФСРАР, но пока не стоит, будет "каша" в справочнике товара.
Вообще с ЕГАИС больше вопросов и оооочень мало ответов (даже у самих спецов ЕГАИС), как всегде идём на эксперимент.
Если только пока сделать отдельный справочник товаров ЕГАИС и сделать ссылочную связь с карточками товара
В справочнике ЕГАИС_Новенклатура реквизит НашаНоменклатура.
У меня так реализовано. Иначе, будет геморр еще тот, я думаю.
ХМЛ = ПарсерХМЛ.СоздатьДокумент();
ХМЛ.Загрузить(ФайлОтвета);
УзелA = ХМЛ.ВыбратьУзел("A");
Попытка ЗапросИд = УзелA.ВыбратьУзел("url").Значение;
Исключение Сообщить("Ошибка!","!");
ЗапуститьПриложение("explorer "+ФайлОтвета);
Возврат; КонецПопытки;
Сообщить(ТекущееВремя() + " - Ожидание ответа......");
Пока Вопрос("Ожидание ответа(~5мин)......."+РазделительСтрок + "ОК - Проверить входящие, Отмена - Прервать","ОК+Отмена",30) <> "Отмена" Цикл
XML document must have a top level element.
Подскажите пожайлуста
//========================================================== ============
//Запрос справки А
//========================================================== ============
Функция sendformaquery(FORMA_ID)
queryformastring =
"<?xml version=""1.0"" encoding=""UTF-8""?>
|<ns:Documents Version=""1.0""
|xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
|xmlns:ns=""http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01""
|xmlns:qf=""http://fsrar.ru/WEGAIS/QueryFormAB"">
|<ns:Owner>
|<ns:FSRAR_ID>[%FSRAR_ID%]</ns:FSRAR_ID>
|</ns:Owner>
|<ns:Document>
|<ns:QueryFormA>
|<qf:FormRegId>[%FORMA_ID%]</qf:FormRegId>
|</ns:QueryFormA>
|</ns:Document>
|</ns:Documents>";
queryid = "";
querystring = СтрЗаменить(queryformastring, "[%FSRAR_ID%]", FSRAR_ID);
querystring = СтрЗаменить(querystring, "[%FORMA_ID%]", FORMA_ID);
docxml = sendpostquery(querystring, "/opt/in/QueryFormA");
Если (СтрДлина(docxml) > 0) Тогда
xmldoc = СоздатьОбъект("Msxml.DOMDocument");
xmldoc.loadXML(docxml);
objnodea = xmldoc.selectSingleNode("A");
Если (ПустоеЗначение(objnodea) = 0) Тогда
objnodeurl = objnodea.selectSingleNode("url");
Если (ПустоеЗначение(objnodeurl) = 0) Тогда
queryid = objnodeurl.text;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат queryid;
КонецФункции // sendformaquery
//========================================================== ============
//Запрос справки Б
//========================================================== ============
Функция sendformbquery(FORMB_ID)
queryformbstring =
"<?xml version=""1.0"" encoding=""UTF-8""?>
|<ns:Documents Version=""1.0""
|xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
|xmlns:ns=""http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01""
|xmlns:qf=""http://fsrar.ru/WEGAIS/QueryFormAB"">
|<ns:Owner>
|<ns:FSRAR_ID>[%FSRAR_ID%]</ns:FSRAR_ID>
|</ns:Owner>
|<ns:Document>
|<ns:QueryFormB>
|<qf:FormRegId>[%FORMB_ID%]</qf:FormRegId>
|</ns:QueryFormB>
|</ns:Document>
|</ns:Documents>";
queryid = "";
querystring = СтрЗаменить(queryformbstring, "[%FSRAR_ID%]", FSRAR_ID);
querystring = СтрЗаменить(querystring, "[%FORMB_ID%]", FORMB_ID);
docxml = sendpostquery(querystring, "/opt/in/QueryFormB");
Если (СтрДлина(docxml) > 0) Тогда
xmldoc = СоздатьОбъект("Msxml.DOMDocument");
xmldoc.loadXML(docxml);
objnodea = xmldoc.selectSingleNode("A");
Если (ПустоеЗначение(objnodea) = 0) Тогда
objnodeurl = objnodea.selectSingleNode("url");
Если (ПустоеЗначение(objnodeurl) = 0) Тогда
queryid = objnodeurl.text;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат queryid;
КонецФункции // sendformbquery
Показать
//========================================================== ============
Функция getrandomnumber() Экспорт
m35 = 34359738368;
m36 = 68719476736;
m37 = 137438953472;
somedigit = 5 * somedigit;
Если (somedigit >= m37) Тогда somedigit = somedigit - m37 КонецЕсли;
Если (somedigit >= m36) Тогда somedigit = somedigit - m36 КонецЕсли;
Если (somedigit >= m35) Тогда somedigit = somedigit - m35 КонецЕсли;
Возврат Цел(somedigit / m35 * 101);
КонецФункции // getrandomnumber
//========================================================== ============
Функция randomnumber(limit) Экспорт
Возврат (getrandomnumber() % (limit - 1)) + 1;
КонецФункции // randomnumber
//========================================================== ============
Функция getrandomstring(numchar) Экспорт
charmap = "qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM1234567 890";
maxchar = СтрДлина(charmap) - 1;
resstr = "";
Для i = 1 По numchar Цикл
resstr = resstr + Сред(charmap, randomnumber(maxchar), 1);
КонецЦикла;
Возврат resstr;
КонецФункции // getrandomstring
//========================================================== ============
//Отправка запроса по протоколу POST
//========================================================== ============
Функция sendpostquery(querydata, address) Экспорт
boundary = getrandomstring(30);
objxml = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
objxml.Open("POST", UTM_SERVER + address, 0);
objxml.SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + boundary);
objxml.SetRequestHeader("Content-Length", Строка(СтрДлина(querydata)));
objxml.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
objxml.SetRequestHeader("Pragma", "no-cache");
objxml.SetRequestHeader("Cache-Control", "no-cache");
objxml.SetRequestHeader("Accept-Charset", "utf-8");
dataforsend = "--" + boundary + РазделительСтрок +
"Content-Disposition: form-data; name=""xml_file""; filename=""client.xml""" + РазделительСтрок +
"Content-Type: text/xml; charset=utf-8" + РазделительСтрок + РазделительСтрок + querydata +
РазделительСтрок + "--" + boundary + "--";
Попытка
objxml.Send(dataforsend);
resultstr = objxml.ResponseText;
Исключение
Сообщить("Ошибка отправки запроса POST: " + СокрЛП(ОписаниеОшибки()), "!");
resultstr = "";
КонецПопытки;
Возврат resultstr;
КонецФункции // sendpostquery
Показать(165) m-serg74, ДВА СПАСИБО в одни руки, сейчас прикрутим к своей 1с
//========================================================== ============
//Отправка запроса по протоколу GET
//========================================================== ============
Функция sendgetquery(address) Экспорт
objxml = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
objxml.Open("GET", address, 0);
objxml.SetRequestHeader("Content-Type", "text/xml");
objxml.SetRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
objxml.SetRequestHeader("Pragma", "no-cache");
objxml.SetRequestHeader("Cache-Control", "no-cache");
objxml.SetRequestHeader("Accept-Charset", "utf-8");
Попытка
objxml.Send();
resultstr = objxml.ResponseText;
Исключение
Сообщить("Ошибка отправки запроса GET: " + СокрЛП(ОписаниеОшибки()), "!");
resultstr = "";
КонецПопытки;
Возврат resultstr;
КонецФункции // sendgetquery
//========================================================== ============
//Отправка запроса по протоколу DELETE
//========================================================== ============
Функция senddeletequery(address) Экспорт
objxml = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
objxml.Open("DELETE", address, 0);
Попытка
objxml.Send();
result = 0;
Исключение
Сообщить("Ошибка отправки запроса DELETE: " + СокрЛП(ОписаниеОшибки()), "!");
result = -1;
КонецПопытки;
Возврат result;
КонецФункции // senddeletequery
ПоказатьНА ... getrandomstring<a rel="n....... РУГАЕТСЯ, поясни по чему так написано гет - без параметра не узнает его как функцию, а видит как переменную
Функция sendpostquery(querydata, address) Экспорт
boundary = getrandomstring<a rel="noindex,nofoll
boundary = написание строчки не по правилам 1с
????
последовательность функций/процедур правильная. в курсе что 7ка не видит функций которые ниже по тексту?
сам получил две квитанции о фиксации акта и проведенной накладной - а поставщик же еще не дал согласие на меньшее количество????
когда эту ттн на приход ставить или не ставить вообще???
boundary = getrandomstring<<?>><a rel="noindex,nofollo......0)</a>
{Глобальный модуль(4827)}: Переменная не определена (getrandomstring)
только жаль нет интервалов марок, хотя на бумаге они пропечатаны
Скачал.
А можно ли получить удобочитаемый текст модуля ?
Ув. roman8115, вы правильно отнеситесь к моему вопросу и в целом к собственной разработке.
Вы же выложили свою обработку не в качестве завершенного коммерческого решения.
И я ее скачивал не в качестве конечного результата (я не конечный пользователь). Мне хотелось посмотреть ключевые точки, чтобы не изобретать велосипед.
Нет смысла в какой-либо обфускации программного кода. Без этого вы быстрее (при содействии коллег) доведете свою разработку до более профессионального уровня.
А так мне пришлось вручную переформатировать код модуля формы, чтобы посмотреть, что к чему. И, поверьте, там есть что улучшить.
Желаю удачи.
успокоиться, что все работает. Заранее спасибо
Упорно выдает версию базового анализатора 4.0. Ну и как следствие - ошибка исполнения метода.
Уже и регал-разрегивал всеми способами, и v7plusы во все папки понатыкал, уже и бубен сломал, хотел админский взять - не дали. v7plus идентичен выложенному здесь. И перезагружался. Совсем для чистоты только что еще раз запустил выложенный тут батник. Результат ровно тот же - ВерсияБазовогоАнализатора=4.0
Винда ХР SP3, права встроенного админа, так что даже на режим администратора не свалить.
Даже попытался скопировать msxml3.dll в msxml4.dll, но v7plus стал выдавать ошибку инициализации парсера.
Если объясните как это делаете - буду загружать приход по просьбе других новичков.
Заранее спасибо.
Вернее написал дополнительную к ней.
Может кому пригодиться. А то лень узлы вытаскивать и раскладывать по переменным.
Лень двигатель прогресса...
// Получает узел XML файла относительно текуего передаваемого узла
Функция ПолучитьУзел(ТекУзел, Имя = "")
Для Сч = 1 По ТекУзел.КоличествоПодчиненных() Цикл
Узел2 = ТекУзел.ПолучитьПодчиненныйПоНомеру(Сч);
Если Врег(Узел2.Наименование) = Врег(Имя) Тогда
Возврат Узел2;
КонецЕсли;
КонецЦикла;
Сообщить("Не найден узел - " + Имя);
Возврат ПолучитьПустоеЗначение();
КонецФункции
// Получает узел XML файла относительно текуего передаваемого узла по заданному пути имен узлов
// Пример:
// ПолучитьУзел_(МойУзел, "Dokuments\Dokument\Hider")
Функция ПолучитьУзел_(ТекУзел, Имя = "", Разд = "\")
Перем Узел[10];
Если ПустоеЗначение(Имя) = 1 Тогда
Возврат ПолучитьПустоеЗначение();
КонецЕсли;
Если Найти(Имя, Разд) = 0 Тогда
Возврат ПолучитьУзел(ТекУзел, Имя);
КонецЕсли;
Сообщить(Имя);
Список = глРазложить(Имя, Разд);
Если Список.РазмерСписка() > 10 Тогда
Сообщить();
Возврат 0;
КонецЕсли;
стр = "";
пн = 1;
зн = СокрЛП(Список.ПолучитьЗначение(пн, стр));
Узел[пн] = ПолучитьУзел(ТекУзел, зн);
Для сч = 2 По Список.РазмерСписка() Цикл
пн = сч;
зн = СокрЛП(Список.ПолучитьЗначение(сч, стр));
Узел[сч] = ПолучитьУзел(Узел[сч-1], зн);
Сообщить(зн);
КонецЦикла;
Возврат Узел[пн];
КонецФункции
ПоказатьФайлТТН=КаталогВременныхФайлов() + "reply.xml";
КомандаСистемы("curl -X GET "+ТЗ_Справки.Юрл+">"+ФайлТТН);
xml файл в итоге пустой! На другом компьютере все получалось. Ворзможно, что проблема в том, что сейчас все пытаюсь выполнить на удаленном рабочем столе? устанавливала curl, кидала v7prus.dll, регистрировала, ничего не помогает.
Если вручную сохраняю нужную страницу и ее распарсиваю - то все отлично. А вот сохранить программно ничего не получается..
----
Проверила адрес утм на достпуность и ответ - все хорошо. Видимо проблема именно в Curl. Win Server, возможно что на ней работает?
Но при подтверждении приходов выдает ошибку:
Для выбранного прихода нет справки Б. Отправка подтверждения невозможна.
Скажите, пожалуйста, для тестовых приходов нельзя выполнить акт подтверждения/акт отказа?
А еще вопросик.
Как организован партионный учет? Сдается мне он должен совпадать с учетом в ЕГАИС.
А с учетом того, что народ любит лазить в уже проведенные доки, да еще и задним числом, то как вы обошли сею проблему?
ХМЛ.Загрузить(ФайлОтвета);
{ЕГАИС_ПРИХОДЫ.ERT(227)}: : XML document must have a top level element.файл reply.xml пустой. если после формирования query.xml запускать командную строку вручную и туда вставлять сформированный "curl -F ..." то файл ответа заполняется. на локальном компе работает. ссылки все проверил в терминале открываются. от имени админа тоже не работает. что-то не так с "КомандаСистемы", чёрное окошко проскакивает быстро, и там наверно на что-то ругается, как посмотреть не знаю.
(189) что означает "не так запускал" ? может и я не так запускаю
По какой причине выдает такую ошибку?
ТЗ.ПолучитьСтрокуПоНомеру(Стр);
{C:\...\ЕГАИС_ПРИХОДЫ.ERT(309)}: Номер за пределами значения
Файл ответа не пустой, а документы не подгружает. окно пустое. После закрытия вылетает эта ошибка.
Вопрос закрыт. Дело в регистре было WAYBILL и WayBill
У всех подгружает справку Б?
В WayBill поставщик присылает ссылку на свою справкуБ
а в FOMBREGINFO указывается уже новая справка Б, созданная ЕГАИСом.
Обработка в таком случае не находит справку Б.
1. Что-то Поставщик неправильно формирует? (сомневаюсь. ведь при отправке он еще не знает какая будет справка Б в FOMBREGINFO)
2. Файл FOMBREGINFO для Покупателя создает ЕГАИС? (тогда ЕГАИС не заполняет TTNInformBReg)
Совсем запутался.
Текст = СоздатьОбъект("Текст");
Текст.КодоваяСтраница(0);
Текст.ДобавитьСтроку("<?xml version=""1.0"" encoding=""UTF-8""?>");
Текст.ДобавитьСтроку("<ns:Documents Version=""1.0""");
Текст.ДобавитьСтроку(" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""");
Текст.ДобавитьСтроку(" xmlns:ns=""http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01""");
Текст.ДобавитьСтроку(" xmlns:oref=""http://fsrar.ru/WEGAIS/ClientRef""");
Текст.ДобавитьСтроку(" xmlns:pref=""http://fsrar.ru/WEGAIS/ProductRef""");
Текст.ДобавитьСтроку(" xmlns:ain=""http://fsrar.ru/WEGAIS/ActChargeOn""");
Текст.ДобавитьСтроку(" xmlns:iab=""http://fsrar.ru/WEGAIS/ActInventoryABInfo"">");
Текст.ДобавитьСтроку("<ns:Owner>");
Текст.ДобавитьСтроку(" <ns:FSRAR_ID>" + ФСРАР_ИД + "</ns:FSRAR_ID>");
Текст.ДобавитьСтроку("</ns:Owner>");
//шапка
Текст.ДобавитьСтроку("<ns:Document>");
Текст.ДобавитьСтроку("<ns:ActChargeOn>");
Текст.ДобавитьСтроку("<ain:Header>");
Текст.ДобавитьСтроку("<ain:Number>" + УТФ8(ДокОприх.НомерДок) + "</ain:Number>");
Текст.ДобавитьСтроку("<ain:ActDate>" + ДатаДляЕГАИС(ДокОприх.ДатаДок) + "</ain:ActDate>");
Текст.ДобавитьСтроку("<ain:Note>" + УТФ8("поставить на баланс") + "</ain:Note>");
Текст.ДобавитьСтроку("</ain:Header>");
//состав
Текст.ДобавитьСтроку("<ain:Content>");
Текст.ДобавитьСтроку("<ain:Position>");
//Текст.ДобавитьСтроку("<ain:Identity>1</ain:Identity>");
//продукт
Текст.ДобавитьСтроку("<ain:Product>");
Текст.ДобавитьСтроку("<pref:Type>"+УТФ8("АП")+"</pref:Type>");
Текст.ДобавитьСтроку("<pref:FullName>"+УТФ8(Товар.НаимЕГАИС)+"</pref:FullName>");
Текст.ДобавитьСтроку("<pref:AlcCode>"+СокрЛП(Товар.КодЕГАИС)+"</pref:AlcCode>");
//Текст.ДобавитьСтроку("<pref:Capacity>"+Товар.Объем+"</pref:Capacity>");
Текст.ДобавитьСтроку("<pref:AlcVolume>"+Товар.Градус+"</pref:AlcVolume>");
КодАП = Прав(Товар.КодАП.Идентификатор(),3);
Если ПустаяСтрока(КодАП) = 1 Тогда
КодАП = Прав(Товар.ТипАлкоголя.Идентификатор(),3);
КонецЕсли;
Текст.ДобавитьСтроку("<pref:ProductVCode>"+КодАП+"</pref:ProductVCode>");
Текст.ДобавитьСтроку("</ain:Product>");
//количество
Текст.ДобавитьСтроку("<ain:Quantity>"+Колво+"</ain:Quantity>");
//InformAB
Текст.ДобавитьСтроку("<ain:InformAB>");
Текст.ДобавитьСтроку("<ain:InformABReg>");
Текст.ДобавитьСтроку("<ain:InformA>");
Текст.ДобавитьСтроку("<iab:Quantity>14760</iab:Quantity>");
Текст.ДобавитьСтроку("<iab:BottlingDate>2015-10-20</iab:BottlingDate>");
Текст.ДобавитьСтроку("<iab:TTNNumber>544654654</iab:TTNNumber>");
Текст.ДобавитьСтроку("<iab:TTNDate>2015-10-23</iab:TTNDate>");
//Текст.ДобавитьСтроку("<iab:EGAISFixNumber>0000078781</iab:EGAISFixNumber>");
//Текст.ДобавитьСтроку("<iab:EGAISFixDate>2015-10-23</iab:EGAISFixDate>");
Текст.ДобавитьСтроку("</ain:InformA>");
Текст.ДобавитьСтроку("</ain:InformABReg>");
Текст.ДобавитьСтроку("</ain:InformAB>");
//марка
Для ш = 1 По Колво Цикл
Марка = СтрПолучитьСтроку(Марки, ш);
Текст.ДобавитьСтроку("<ain:MarkCodeInfo>");
Текст.ДобавитьСтроку("<ain:MarkCode>"+Марка+"</ain:MarkCode>");
Текст.ДобавитьСтроку("</ain:MarkCodeInfo>");
КонецЦикла;
Текст.ДобавитьСтроку("</ain:Position>");
Текст.ДобавитьСтроку("</ain:Content>");
Текст.ДобавитьСтроку("</ns:ActChargeOn>");
Текст.ДобавитьСтроку("</ns:Document>");
Текст.ДобавитьСтроку("</ns:Documents>");
Текст.Записать(ФайлЗапроса); Показать<A><error>org.xml.sax.SAXParseException; cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '\S+(.*\S+)*' for type 'NoEmptyString50'.</error><ver>2</ver></A>не совсем понятно на что, подумал, что на фикснамбер фиксдату, передавал пустыми так как пиво, закомментил, получил:
<A><error>org.xml.sax.SAXParseException; cvc-complex-type.2.4.b: The content of element 'ain:InformA' is not complete. One of '{"http://fsrar.ru/WEGAIS/ActInventoryABInfo":Quantity, "http://fsrar.ru/WEGAIS/ActInventoryABInfo":EGAISFixNumber, "http://fsrar.ru/WEGAIS/ActInventoryABInfo":EGAISFixDate}' is expected.</error><ver>2</ver></A>
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 405305
Создание 05.10.15 19:52
Обновление 27.01.16 09:54
Просмотры 38736
Загрузки 389
Рейтинг
30
Комментарии 234
Код открыт Да
Рубрики WEB-интеграция Оптовая торговля Обмен с ГосИС
Кому Бухгалтер
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 7.7
Конфигурация 1C77
Операционная система Windows
Страна Не имеет значения
Отрасль Оптовая торговля, дистрибуция, логистика
Налоги Акцизы
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)