Всем привет. Не секрет, в Беларуси с 1 июля 2016 должна подаваться ЭСЧФ. Кто-нибудь уже работает с ней? Ведь там, вроде, уже 60 компаний Беларуси работает в тестовом режиме.
Сделал я по инструкциям, что на их сайте, но столько вопросов к их информации осталось.
Очень много полезного нам дали разработчики. Внимательно читайте их документацию в eInvVat, которую скачиваете, а так же примерами для 1С служат bat файлы из папки eInvVat\simpleapp\vbs\src\. Не поленитесь и посетить их сайт vat.gov.by. На основании этих знаний все пишут обработки. Если что не понятно, то можно прибегнуть к данной теме.
Важные и полезные ссылки на сайты и на сообщения темы.
Ссылки на сайт портала
Новости от разработчиков - здесь Руководства и инструкции по настройки ПК, Windows, IE - здесь Описание XML-схем и веб-сервисов - здесь Видео вебинара по ЭСЧФ, который проходил в июле - здесь
Обработки с данной темы
Обработка от BONIA Я (Bonia) - (229) и пример кода (231) и (1098) Обработка по проверке файла по схемам. Автора я не смог найти (отзовись, в историю впишем). Переделана Slypower - (308) Обработка по входящим от Slypower. До введения однократного скачивания в сутки - (2537) Обработка по входящим для 1с 7.7 и для 1с8. Рабочая от slypower - (5412). С доработками от Евгений Веренич (EvgPinsk) - (7206) Делает XML из выбранного документа от Asd Zxc (ASDCXZ) - (2823) Отправка ЭСЧФ от slypower. Очень сырая и для ТиС. Требует переделки од себя индивидуальна. Годна для черпания идей - (2950) Печать ЭСЧФ от Сергей Кириллов (Sergey_Kirillov) - (4358) Проверка УНП с сайта налоговой http://www.portal.nalog.gov.by/grp/ - от Aleksey Krasowskiy (Krasowskiy)(5026) и от Сергей Кириллов (Sergey_Kirillov)(5031) Получерие входящей ЭСЧФ по номеру от Aleksey Krasowskiy (Krasowskiy) - (5169) Обновление СОС от slypower - (5291) Будьте внимательны. В старых сообщениях в обработках стоят неправильные адреса для подключения. В первую очередь проверьте их!!!
Полезные сообщения темы
Реклама своей работы от Gladkov_Anton - (445) Реклама своей работы от Александр Самуйлов (A.E.) - (1273) Реклама своей работы от Yauhen Makei (mrDSide) - (5591), (5592) Автоматический подключение к ключу-(354) Декодирование файлов .sgn и .ticket - (448) Отправки ЭСЧФ с помощью сервиса из терминальной сесии для простого пользователя не обладающего правами Администратора. Испробовано на Сервере 2003/32 - (784) Программа, которая ключ на сервер пробрасывает - (842) , (5408),(6568) Инструкция по настройке серверных компов от Ира С (iraSys) - (844) Дополнительная настройка для серверных операционных систем - (5208) Сервис для проверки валидности xml - (871) Классификатор ТНВЭД в экселе - (790) и (885) Автоматический импорт СОС на локальную машину - (2853), (2854) и (2856), (3882) Полезная информациея тем, кто использует в работе терминальные сервера - (3044) Артур Коржан (1v7) собрал "полезные вкусняшки в куче" - (3688) Корректировка кодов справочника стран от Артур Коржан (1v7) - (5844) Образцы заполнения ЭСЧФ - (3700) На портале развернута база данных cassandra. Описание - (3908), (5459) Возможные ситуации, которые могут возникнуть с работой порталом и их решение - (4524) SlimBrowser вместо IE для работы на Вин XP - (4684) Универсальная загрузка из CSV от vvv vvv (keyn5565`): (6951). Код к ней (если кто не может скачать): (7076)
Коды процедур для 1С
Процедура работы с входящими на 1С 8.3 - (4275) Парсер csv с портала для 1С 8 - от Сергей Кириллов (Sergey_Kirillov) (4352) от Xer shi (Xershi) (4363) Скачка входящих и создание дока в 1С7.7 - (4448) Обновление статусов 1С7.7 - (4573) Читать хмл 1с7.7 от Хьюмена -(4808) Скачка входящих для 1с8 от vvv vvv (keyn5565`) - (5126) Проверка версии компоненты для 1С8 от Xer shi (Xershi) - (5186) Скачкивать входящие подписанные эсчф с портала - (5345) Создание задачи для автоматического обновления СОС, 1с8 от vvv vvv (keyn5565`) - (5350) Обновление СОС из 1С7.7 от Igor Pleskun (Igor Igorevich) - (5361) Обновление СОС из 1С8 от vvv vvv (keyn5565`) - (5423) Проверка справочника контрагентов для проверки ликвидирования контрагента для 1с8 от vvv vvv (keyn5565`) - (5419), от Xer shi (Xershi)(5437) Проверки по правилам заполненения для 1С8 от Xer shi (Xershi) - (5508), (5509) Проверка подписей эсчф на портале - от Xer shi (Xershi)(5530), от Yauhen Makei (mrDSide)(5599) Заполнение справочника ОКЭД от vvv vvv (keyn5565`) - (5565)
Вопрос-Ответ
Многие ошибки, да почти все, связаны с не стабильной работой портала, особенно во времена всеобщей выгрузки ЭСЧФ на портал. Но некоторые тут вынесем.
Какие сроки выставления ЭСЧФ?
Ответ: Министерство по налогам и сборам информирует, что в соответствии с пунктом 5 статьи 1061 Налогового кодекса Республики Беларусь с 1 января 2017 года выставление (направление) электронного счета-фактуры осуществляется по общему сроку не позднее 10-го числа месяца, следующего за месяцем дня отгрузки товаров (выполнения работ, оказания услуг), передачи имущественных прав, если иное не установлено пунктом 5 статьи указанной статьи.
В отношении товаров (работ, услуг), имущественных прав, отгруженных (выполненных, оказанных), переданных в декабре 2016 г., выставление электронного счета-фактуры также может производиться по сроку не позднее 10.01.2017.
Подскажите, плиззз, на машинах Win2008R2 при входе на портал
Включите SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2
С Семерки все в норме, хотя делалось все по мануалам идентично одними и теми же ровными руками
Ответ: (639)
Сообщение об ошибке, которое выплевывает 1Ска при попытке законнектиться к порталу (команда "EVatService.Connect..."):
"THE CLIENT AND SERVER CANNOT COMMUNICATE BECAUSE THEY DO NOT POSSESS THE COMMON ALGORITHM"
или по-русски "КЛИЕНТ И СЕРВЕР НЕ МОГУТ ОБЩАТЬСЯ, ПОТОМУ ЧТО ОНИ НЕ ОБЛАДАЮТ ОБЩИМ АЛГОРИТМОМ."
Ответ: (2310)
Ошибка при проверке XML: Класс не зарегистрирован, ClassID: {88D96A07-F192-11D4-A65F-0040963251E5}
Ошибка возникает только на сервере 2003 сп2 32битм Java 7 79 updt
Ответ: (2365)
Отличие Исправленной от дополненной.
Ответ: (5020)
Отправили ЭСЧФ на портал, но ее там нет.
Ответ: Чтобы узнать почему, воспользуйтесь одним из способов:
1) загрузите файл xml этой ЭСЧФ на портала вручную
2) сделайте возврат статуса сразу после отправки на портал. Он вам и вернет ответ на вопрос, почему нет.
Портал вернул статус "IN_PROGRESS" или "В разработке" или "ЭСЧФ с номером 11111111-2017-0000000001 находится в обработке. Запросите статус повторно.".
Ответ: (5237). Данный статус может быть на портале до 3-х часов, но чаще всего лишь минут 30, затем становиться "Выставлен".С 1 января 2017 г наблюдается задержка до суток.
Можно ли анулировать из 1С?
Ответ: Нельзя, только на портале. Можно выставить исправленный, который анулирует исходный, но просто анулировать нельзя.
При подключении к тестовому порталу:
Ошибка авторизации на портале электронных счетов-фактур НДС Сертификат издателя не найден. [Для проверки <vat.gov.by> не найден сертификат <Удостоверяющий центр для разработчиков> (KeyID=6E28B036743B6B021B4D353E1AC51C5A204271FA)
Ответ: (5868)
Что значит UTC в строке: Ответ сервера: В последний раз ЭСЧФ под номером УНП-ГОД-НОМЕРЭСЧФ вы получали 2016-09-06 11:35:18 (UTC), в следующий раз ее можно будет получить после 2016-09-07 11:35:18 (UTC) и почему это время не совпадает с нашим?.
Ответ: UTC — это всемирное координированное время, стандарт времени, принятый на Земле. От UTC отсчитываются часовые пояса. UTC заменил устаревшее время по Гринвичу (GMT). Подробнее тут.
при попытке загрузить ЭСЧФ из xml файла пишет.
Версия анализатора = 2.0
Версия базового анализатора = 4.0
Для загрузки файлов необходима версия XML Parser 3.0
где копать?
Ответ: В ХР зарегистрирован Microsoft XML Parser 4.0, но есть там и 3.0.
Действия :
Отменяем регистрацию версии XML 4.0 :
Пуск - выполнить - копируем или набираем regsvr32 /u msxml4.dll - Ок
Затем регистрируем версию 3.0:
Пуск - выполнить - копируем regsvr32 msxml3.dll -ОК
После этого надо перезапустить 1С программу, если она была открыта.
Если ничего не помогает, качаем ниже и устанавливаем пакет MSXML3
Также ошибка MSXML может возникать и в более поздних версиях Windows 7 и 8. Для 64-битной версии устанавливаем версию соответствующую разрядности ОС x64 - msxml4-kb2721691-enu.
По итогу все равно ничего не работало, пока не закинула эти файлы msvcp71.dll, msvcr71.dll, parser3isapi.dll в папку с 1с.
Еще одно решение:
Через установку и удаление программ я удалил Parser 4 и 6-й. Зашел в 1с - все работает и загружает.
(624) shiko, ну так он у тебя и будет висеть в выставленных, потому что я его не подписал. Я его забрал батником с портала и положил себе на комп, но он имеет имя такое как я тебе в том посте указал. С ошибкой видимо. А как принимать и подписывать из 1с я пока не знаю, у меня от GetList крошится 1с.
Кто как заполняет поле units (единицы измерения) 6го раздела. Согласно xsd это integer. Как мне их заполнить если у меня единица измерения шт, экземпляр и пр
(585) eshtrey, а у вас как это реализовано? У нас есть свой справочник единиц измерения, но у нас например "Шт", а на портале "Штука". Вы перебирали свой существующий и добавляли поле с кодом или выгрузили весь справочник в 1с и используете его отдельно только для формирвания счетов? Или вы вообще руками прописали? Или как?
П.С. Опять походу лагает портал - все упало. А я только собрался разбираться с подписанием выставленных. Кстати, неловко просить, но может поделитесь основополагающими кусками для получения входящих. В ветке все отрывочно, так не хочется изобретать велосипед заново. Заранее спасибо!
(587) Nykos, штука - код 796, килограмм - 166
Заполните вручную на портале с нужными ед изм, выгрузите в xml и увидите нужные вам коды, потом в 1с в справочнике ед изм (или у кого классификатор ед изм) исправить код.
(584) pasha_2001, На портале выложен справочник Единицы Измерения. Каждое наименование единицы в нем соответствует цифровому коду. По логике вещей справочник нужно загрузить в 1с и подтягивать этот числовой код из него в units.
Подскажите, никак не соображу, не работает вот эта штука
res = InvVatTicket.SaveToFile( fn );
Пишет "Метод не найден"
Когда это касалось квитанций я закрыл глаза и оставил до лучших времен, теперь же этот метод должен сохранить входящую счет фактуру и опять тоже - "Метод не найден".
(610) Slypower, Нет, беда не там. XML сохраняю, подписываю, отправляю, получаю квитанцию и положительный ответ, а вот сохранить квитанцию не могу. Вот там именно InvVatTicket
InvVatTicket = EVatService.Ticket;
if InvVatTicket.Accepted <> 0 then
Сообщить( "Ответ сервиса: документ не принят по причине " + InvVatTicket.Message);
res = InvVatTicket.SaveToFile( fn + ".ticket.error.xml" );
if res = 0 then
Сообщить( "Ошибка сохранения квитанции: " + EVatService.LastError );
Возврат;
endif;
else
Сообщить( "Ответ сервиса: документ принят" );
res = InvVatTicket.SaveToFile( fn + ".ticket.xml" );
if res <> 0 then //В случае успешного выполнения возвращается 0, иначе возвращается код ошибки.
Сообщить( "Ошибка сохранения квитанции: " + EVatService.LastError );
Возврат;
endif;
endif;
ПорталФайл = ПорталСервис.CreateEDoc; // Чтение файла
Результат = Ложь;
Если ПорталФайл.Document.LoadFromFile(Константы.ПапкаXML.Получить()+СчетФактура.ПолныйНомер+".xml")<>0 Тогда
Сообщение = "Ошибка чтения: " +ПорталСервис.LastError
ИначеЕсли ПорталФайл.Document.ValidateXML(СчетФактура.ТипСчетаФактуры.Схема,0)<>0 Тогда
Сообщение = "Ошибка схемы xsd: " +ПорталСервис.LastError
ИначеЕсли ПорталФайл.Sign(0)<>0 Тогда // Подпись файла
Сообщение = "Ошибка подписи: " +ПорталСервис.LastError
ИначеЕсли ПорталФайл.SaveToFile(СокрЛП(Константы.ПапкаПописанныхXML.Получить())+СчетФактура.ПолныйНомер+".edoc.xml")<>0 Тогда
Сообщение = "Ошибка сохранения: "+ПорталСервис.LastError
ИначеЕсли ПорталСервис.SendEDoc(ПорталФайл)<>0 Тогда // Отправка подписанного документа на портал ЭСФЧ
Сообщение = "Ошибка отправки: " +ПорталСервис.LastError;
Иначе
ПорталКвитанция = ПорталСервис.Ticket;
Если ПорталКвитанция.Accepted<>0 Тогда // Получение квитанции
Сообщение = "Документ не принят: "+ПорталКвитанция.Message
Иначе
ПорталКвитанция.SaveToFile(Константы.ПапкаКвитанций.Получить()+СчетФактура.ПолныйНомер+".ticket.xml");
Сообщение = "ДОКУМЕНТ ПРИНЯТ";
Результат = Истина;
КонецЕсли;
КонецЕсли;
Функция ПорталВход( ПорталСервис,Сообщения ) Экспорт
Попытка
ПорталСервис = Новый COMОбъект("EInvVatService.Connector");
Исключение
Сообщения.Добавить("Ошибка запуска модуля ЭСЧФ");
Возврат Ложь;
КонецПопытки;
Если ПорталСервис.Login("PASSWORD_KEY="+Константы.ПарольККлючу.Получить(),0)<>0 Тогда
Сообщения.Добавить("Ошибка авторизации: "+ПорталСервис.LastError);
Возврат Ложь;
КонецЕсли;
Если ПорталСервис.Connect(Константы.АдресПортала.Получить())<>0 Тогда
Сообщения.Добавить("Ошибка подключения: "+ПорталСервис.LastError);
Возврат Ложь;
КонецЕсли;
Сообщения.Добавить( "Вход выполнен успешно");
Возврат Истина;
КонецФункции
(627) shiko, Еще проще. Очень удивился. Хотя я новичок в 1с и может чего не понимаю
// Это не работает
ПорталКвитанция.SaveToFile(Константы.ПапкаКвитанций.Получить()+СчетФактура.ПолныйНомер+".ticket.xml");
// А вот это работает
МнеОноНеНужно = ПорталКвитанция.SaveToFile(Константы.ПапкаКвитанций.Получить()+СчетФактура.ПолныйНомер+".ticket.xml");
Теперь у меня и квитанции записываются и счета входящие в папку складываются.
(629) Алексеевич, А из этих счетов входящих можно что-либо вытянуть?
А то я только номер ЭСЧФ могу получить методом getList.
Вообще GetList кроме номера выдает другие реквизиты?
(630) bobrhleb, Я узнаю об этом завтра, а пока надеюсь что все получится. Немного выше был пример, где входящие счета раскладывались "на лопатки", будем его изучать.
(630) bobrhleb, getlist возвращает номера ЭСЧФ
номер ЭСЧФ передаешь в GetEDoc - получаешь саму ЭСЧФ и дальше уже работаешь с эл.документом.
Выше были примеры
Здравствуйте
Кажется я пришел к беспробудному отчаянью ((
Портал наотрез отказывается принимать сформированную xml
Пробовал сформировать счет-фактуру на vat.gav.by, сверил каждую буковку
Безрезультатно
Где ошибка ? Решительно не понимаю
(618) xamss, первое, что приходит - это не нужен параметр:<dateIssuance></dateIssuance>
второе - возможно шапка отличается
3) -<deliveryCondition>/-<contract>-<documents>-<document><date>30.05.16</date>
вот дата и не правильно 100%
(620) там где "это че" - это название договора и портал в таком состоянии его возьмет
634.
VitaliyZdanovich
01.06.16 00:56 Сейчас в теме
Подскажите, плиззз, на машинах Win2008R2 при входе на портал
Включите SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2 С Семерки все в норме, хотя делалось все по мануалам идентично одними и теми же ровными руками
Для серверной винды есть нюанс. Измените в реестре парамерт
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Windows\RequireSignedAppInit_DLLs (поменять на 0 )
После перезапустите ие и попробуйте отгрузить ссылку по https протоколу
(4424) prog_ivory, Про плохой тип переменной пишет, когда не может отдать список. Если хотя бы иногда срабатывает - то дело не строке, а в сервисе.
100% рабочий код:
Всем добрый день,
пробую выгрузку счет-фактур, взял пример на сайте VAT...
web-сервис установлен, Windows Server 2003 R2, 1c v7.7 SQL
Проверка соответствия xml-документа схеме:
InvVatXml = EVatService.CreateEDoc;
Если InvVatXml.Document.LoadFromFile(ИмяФайла) <> 0 Тогда
Сообщить( "Ошибка чтения файла: " + EVatService.LastError);
возврат;
КонецЕсли;
(640) an2007, ИмяФайла - у вас точно соответствует путь до файла? Возможно доступа нет для этого файла. Попробуйте отладчиком посмотреть, в каком месте вылетает
(642) an2007, откуда у вас код? Скиньте его больше, чтобы проследить. В этой темы есть примеры 1С на 7.7 с выгрузкой, проверкой, подписью
Имя произвольное
ФС.УстТекКаталог(СокрЛП(хмлКаталогВыгрузки));
ИмяФайла = СокрЛП(ФС.НайтиПервыйФайл("*.*"));
Пока ИмяФайла <> "" Цикл
Если (ИмяФайла=".") или (ИмяФайла="..") Тогда
ИмяФайла=ФС.НайтиСледующийФайл();
Продолжить;
КонецЕсли;
.....
ИмяФайла=ФС.НайтиСледующийФайл();
КонецЦикла;
(661) an2007, да, получается так. Без авторизации он не может создавать методы и работать с ними, поэтому и проверять не может на 1С7.7. Для этого и авторизуемся. В 8 версии уже в самой программу встраиваются схемы, так там возможность такая должна быть
теперь уже другая беда.
InvVatXml = EVatService.GetEDoc(InvVatNumber);
{D:\BASE1C\OVTC-2010NEW\EXTFORMS\ВЫГРУЗКАЗАГРУЗКАЭЛСЧЕТФАКТУР_TEST_0.ERT(665)}: Плохой тип переменной
for i = 0 to ЧислоЭСЧФ-1 do
InvVatNumber = InvList.GetItemAttribute(i, "document/number");
Сообщить(InvVatNumber);
InvVatXml = EVatService.GetEDoc(InvVatNumber);
Сообщить(InvVatXml);
//Проверить ЭЦП
res = VerifyAllSigns(InvVatXml);
if res = 0 then
Сообщить( "Ошибка проверки ЭЦП полученного документа: " + EVatService.LastError );
endif;
InvVatStatus = EVatService.GetStatus(InvVatNumber);
res = InvVatStatus.Verify();
(4439) prog_ivory, у меня тоже писало "Плохой тип переменной", в итогге оказалось что глючил портал.
Я в таких случаях делал перед вызовом
Сообщить(InvVatNumber); - если выдавало нормальный номер - 100% глюки портала.
Перем dom,ТекУзел, obj2;
Функция ДанныеАтрибута(Узел,Атрибут)
Попытка
если Узел=ТекУзел Тогда
Данные=СокрЛП(ТекУзел.selectSingleNode(Атрибут).text);
ИначеЕсли Узел=dom Тогда
Данные=СокрЛП(dom.documentElement.selectNodes(Атрибут).item(0).text);
ИначеЕсли Узел=obj2 Тогда
Данные=СокрЛП(obj2.getAttribute(Атрибут));
//Иначе
// Предупреждение("Не найден узел "+Атрибут );
КонецЕсли;
Исключение
Данные="";
КонецПопытки;
Возврат Данные;
КонецФункции // ДанныеАтрибута
Процедура СкачкаВФайл() //после введения однократного обращения на портал в течении суток
Перем InvVatNumber;
FSO=СоздатьОбъект("Scripting.FileSystemObject");
Если FSO.FolderExists(ВыбМеста)=0 Тогда
xml_Folder=FSO.CreateFolder(ВыбМеста); //создать папку, если ее нет.
КонецЕсли;
//fn = ВыбМеста+".xml";
НужнаяДата=ФорматДатыВх(НачДата);// Сообщить(НужнаяДата);
ListDocuments = 1;
ПопыкаGetList=0;
~ПроверкаДаты:
Попытка
Состояние("Получаем список ЭСЧФ на портале");
InvList = EVatService.GetList(НужнаяДата);
Исключение
ПопыкаGetList=ПопыкаGetList+1;
Если ПопыкаGetList=4 Тогда
Предупреждение("Ошибка получения списка ЭСЧФ: " + EVatService.LastError + " И это после 4-х попыток...");
Возврат;
КонецЕсли;
Перейти ~ПроверкаДаты;
КонецПопытки;
if InvList = 0 then
Сообщить( "Ошибка получения списка ЭСЧФ: " + EVatService.LastError);
возврат;
endif;
ЧислоЭСЧФ=InvList.Count;
if ЧислоЭСЧФ = 0 then
Сообщить( "Нет поступивших документов на сервере");
ListDocuments = 1;
возврат;
endif;
номер=0;
for i = 0 to ЧислоЭСЧФ-1 do
Состояние("Ищем входящие ЭСЧФ на портале...");
InvVatNumber = InvList.GetItemAttribute(i, "document/number"); //Сообщить(InvVatNumber);
файл=ВыбМеста+"\sgn_"+InvVatNumber+".xml";
файлXML=ВыбМеста+"\file_"+InvVatNumber+".xml";
КоличествоРаз=0;
~ПовторитьПопытку:
Попытка
InvVatXml = EVatService.GetEDoc(InvVatNumber);
Исключение
КоличествоРаз=КоличествоРаз+1; //Сообщить(КоличествоРаз);
Если КоличествоРаз=4 Тогда
Предупреждение(EVatService.LastError);
Прервать;
КонецЕсли;
Сообщить(EVatService.LastError);
ListDocuments = 2;//
res = VerifyAllSigns(InvVatXml);
if res = 0 then
Сообщить( "Ошибка проверки ЭЦП полученного документа: " + EVatService.LastError );
else
res = InvVatXml.SaveToFile( файл );
res = InvVatXml.Document.SaveToFile (файлXML);
endif;
КонецПопытки;
EndDo;
КонецПроцедуры
Процедура СозданиеДока()
Попытка
dom = СоздатьОбъект("MSXML2.DOMDocument");
Исключение
Сообщить("Не удалось создать объект MSXML2.DOMDocument");
Возврат;
КонецПопытки;
ФС.УстТекКаталог(ВыбМеста);
Если ФС.СуществуетФайл(ВыбМеста+"\file_"+ТаблЗнач.ПолучитьЗначение(ТаблЗнач.ТекущаяСтрока(),"InvVatNumber")+".xml")=1 тогда //Сообщить(файл))
файл=ВыбМеста+"\file_"+ТаблЗнач.ПолучитьЗначение(ТаблЗнач.ТекущаяСтрока(),"InvVatNumber")+".xml";// ТаблЗнач.ПолучитьЗначение(ТаблЗнач.ТекущаяСтрока(),"InvVatNumber") - это из таблицы моей. Тут нужен ваш номер эсчф
иначе
предупреждение("Нет файла для чтения");
Возврат;
конецЕсли;
dom.load(файл); //Сообщить(файл);
документЭСЧФ=СоздатьОбъект("Документ.ВходящаяЭСЧФ");
СпрКонтр=СоздатьОбъект("Справочник.Контрагенты");
документЭСЧФ.Новый();
документЭСЧФ.Контрагент=ДанныеАтрибута(dom,"provider/name");
документЭСЧФ.Договор=ДанныеАтрибута(dom,"deliveryCondition/contract/number")+" от "+ДанныеАтрибута(dom,"deliveryCondition/contract/date");
Строки=dom.documentElement.selectSingleNode("roster");
Кол=Строки.childNodes.length;
Для Счетчик=0 По Кол-1 Цикл
документЭСЧФ.НоваяСтрока();
ТекУзел=Строки.childNodes.item(Счетчик);
документЭСЧФ.Услуга=ДанныеАтрибута(ТекУзел,"name");
документЭСЧФ.Количество= Число(ДанныеАтрибута(ТекУзел,"count"));
документЭСЧФ.Цена= Число(ДанныеАтрибута(ТекУзел,"price"));
документЭСЧФ.Сумма= Число(ДанныеАтрибута(ТекУзел,"cost"));
документЭСЧФ.НП= Число(ДанныеАтрибута(ТекУзел,"summaExcise"));
документЭСЧФ.НДС=Число( ДанныеАтрибута(ТекУзел,"vat/summaVat"));
документЭСЧФ.Всего=Число(ДанныеАтрибута(ТекУзел,"costVat"));
КонецЦикла;
документЭСЧФ.Записать(); //запись без проведения
КонецПроцедуры // СозданиеДока
(648) shiko, как я понимаю, они временные, несут инфо о доках. Есть выше ссылка, где их можно расшифровать. Либо же обращаясь к ним можно выходить на док-родитель и брать всю инфу оттуда путем перебора атрибутов
(648) Какая проблема в чтении тикетов? Там все зашифровано base64. При расшифровке получаешь обычный xml. Расшифровываются точно так же, как и ответ портала на GetEDoc
Nykos, я тебе там еще накидал. Подпиши парочку, хочу обновление статусов проверить. И ответных скинь, если не сложно.
(655) shiko, опять b-document((( Интересно, как портал их вообще определяет, как создавать? Закончились номера для e-document? Потом перейдут на какой-нибудь c-document?
Ахахахах, вспомнил свой пост (654), где они в обнове не тот адрес скинули)))) ахахаха, так зато теперь он работает через 1с, подключается и выставляет. Получается, была тогда утечка инфы)) "Не благодарите", работайте дальше)) и да, выставьте пару ЭСЧФ на 190258843
У меня в 8.0 нету "ПостроительDOM" (или я плохо искал), поэтому вытянул реквизиты входящего без него.
Может кому пригодится.
Процедура Раскодировать()
НайденныеФайлы = НайтиФайлы("c:\","*-*-??????????.xml");
Для Каждого Стр Из НайденныеФайлы Цикл
XMLTMP = Новый ЧтениеXML();
XMLTMP.ОткрытьФайл(Стр.ПолноеИмя);
Пока XMLTMP.Прочитать() Цикл
Если XMLTMP.ТипУзла = ТипУзлаXML.НачалоЭлемента И XMLTMP.Имя = "document" Тогда
XMLTMP.Прочитать();
ВремФайл = ПолучитьИмяВременногоФайла("xml");
ДВ = Base64Значение(XMLTMP.Значение);
ДВ.Записать(ВремФайл);
КонецЕсли;
КонецЦикла;
XMLTMP.Закрыть();
XML = Новый ЧтениеXML();
XML.ОткрытьФайл(ВремФайл);
Пока XML.Прочитать() Цикл
Если XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
ИмяУзла = XML.Имя;
XML.Прочитать();
Сообщить(ИмяУзла + "=" + XML.Значение);
КонецЕсли;
КонецЦикла;
XML.Закрыть();
КонецЦикла;
КонецПроцедуры
(668) Что вы хотите увидеть в этих тикетах? Там информации 0. Вот пример расшифрованного тикета:
<quote>
<ticket><issuer URI="https://vat.gov.by/einvoice"><reference URI="document_id:304E25A02877A0C65921EB830BFB258BBFAEB651C7D6786916BB425F513D245A"><digest><method algId="1.2.112.0.2.0.34.101.31.81"/><value>e3evpAJuXCGL7nUocan6B2mShuLtdRmdPYTh+p+K9tU=</value></digest><ob jectIdentifier path="/issuance/general/number"><value>400095469-2016-0000000002</value></objectIdentifier></reference><receipt accepted="true"><message>Документ принят в обработку.</message><date>2016-06-01T02:38:10Z</date></receipt></ticket>
</quote>
(673) pasha_2001, не думаю. Скорее всего, по задумке, тикет - это просто ответ портала "Принято". Пришел тикет - все ОК, на портал ушло, проверяй судьбу ЭСЧФ по номеру через GetEDoc и GetStatus.