Всем привет. Не секрет, в Беларуси с 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с - все работает и загружает.
У меня 2 дня реально разрывается телефон :) Обьясните мне, как обьяснить бухгалтерам, что я как 1Сник, не имею отношения к порталу? :)
Контролировал у клиентов пакетную отправку от 1к до 5к+ док-тов. Реально портал нормально начал принимать после окончания рабочего дня. Сдается мне, что основную нагрузку создают именно пользователи, которые работаю руками через вэб, нагружая систему многочисленными запросами... А поскольку после 18 большая их часть отваливается - шайтан- машина начинает немного раздупляться.. А так тоже большая часть док-тов отваливается с коннекшн таймаутом.
(4240) stavrosoleg, присоединяюсь к вопросу "как объяснить" одному бухгалтеру, вроде умная женщина, а на отрез отказывается понимать, что я и портал - это разные люди), и я не создал его, а такой же пользователь
(4241) Slypower, Я думаю что у всех одна и та же проблема с бухгалтерами. Если программер сделал обработку, то бухов совершенно не волнует, что есть еще и другая сторона, за кторую мы не можем отвечать, но им это совершенно по барабану, если не работает значит плохая обработка. Приходят с претензиями. А то что сервер не отвечает или тупит, им ни как не возможно объяснить. И у всех одно: "Ну сделай что нибудь". Так и хочется сказать "Хош руку залмаю".
При считывании поступивших ЭСЧФ с основного портала практически всегда получаю ошибку "плохой тип переменной". К слову сказать, что на тестовом портале такого не происходит, - читаю выставленные ЭСЧФ нормально. В обоих случаях работает одна и та же программа.
А теперь вопрос: КАК С ЭТОЙ ОШИБКОЙ БОРОТЬСЯ?
ПопыкаGetList=0;
~ПроверкаДаты:
Попытка
Состояние("Получаем список ЭСЧФ на портале");
InvList = EVatService.GetList(НужнаяДата);
Исключение
ПопыкаGetList=ПопыкаGetList+1;
Если ПопыкаGetList=4 Тогда
Предупреждение("Ошибка получения списка ЭСЧФ: " + EVatService.LastError + " И это после 4-х попыток...");
Возврат;
КонецЕсли;
Перейти ~ПроверкаДаты;
КонецПопытки;
(4254) Xershi, это немного другое. Ваш код у меня идет далее, но он не обрабатывает провалы портала при проверки метода GetList. Мой метод же при ошибки вызова метода повторяет еще раз, и еще. А если уже после 4х попыток не смог прочитать, тогда выдает предупреждение и прекращает работать. Поэтому ошибку "плохой тип переменной" я не получаю. Так же реализовывется на получение статусов, подключение к порталу.
(4252) Slypower, Коллеги, наверное придираюсь, но хоть бы цикл организовали какой бесконечный и внутри условие на "прервать", а то метки ... нехорошо как-то (
(4257) Slypower, По итогу для компилятора - разницы никакой, но код с циклом более читаемый - логика работы понятна. Ладно тут несколько строк между меткой и переходом на метку, а если там несколько сотен строк будет? У меня еще со времен учебы в голове фраза засела, что " ... использование меток это плохой стиль программирования, который говорит от том, что программист не умеет "думать" на языке программирования ...". Ни в коей мере не говорю это о вас, но мысль мне эту в голову хорошо вложили в свое время )
ну как-то так
ПопыкаGetList=0;
Пока Истина Цикл
Попытка
Состояние("Получаем список ЭСЧФ на портале");
InvList = EVatService.GetList(НужнаяДата);
Прервать;
Исключение
ПопыкаGetList=ПопыкаGetList+1;
Если ПопыкаGetList=4 Тогда
Предупреждение("Ошибка получения списка ЭСЧФ: " + EVatService.LastError + " И это после 4-х попыток...");
Возврат;
КонецЕсли;
КонецПопытки;
КонецЦикла;
(4258) Snake150984, Всего 4 попытки на подключение - да это почти идеальная работа сервиса! У меня стоит 20 попыток и то изредка не хватает, надо несколько раз запускать обработку на выполнение
(4266) ASDCXZ, я просто не понимаю, если с 4-х раз не сработало, то зачем мучаться))) Если ставить на ночь, может и стоит так делать, но когда сам следишь, так уж лучше по мне чтоб после 4-х раз прервалось и я закрыл нафих обработку, 1С, да и комп выключил, чтобы нервы сберечь))
(4257) Slypower, как уже сказали использование меток это моветон. Лучше использовать бесконечный цикл с прерыванием. Логика программы от этого более читаема для человека, т.е. оглядываться на метку не нужно, но на практике простой код с меткой меньше места занимает!
Но в 1С нет такого понятия как длина названия переменной, потому что потом код переводится в машинный и там уже переменные имеют совсем другие названия.
Но вот чтобы запутать программиста или корявый код писать для отладки использование меток само то))
(4252) Slypower, Ура! Читается. Правда процесс идет не быстро. 1 документ ~ 10 сек. А их у меня много.
И еще одна проблема, которая выявилась уже сейчас. В пришедших файлах XML отсутствует реквизит «Дата выписки ЭСЧФ» (dateIssuance). Понятно, что в исходном XML-файле его и не должно быть. Но после отсылки на портал Поставщиком он ведь должен появиться.
Короче, теперь корректно не могу отсечь период для просмотра. Хотя ..., вот смотрю на поступившие, у свеже выставленных файлов реквизит "dateIssuance" уже имеется. Что бы это значило. Кто-нибудь встречался с такой проблемой?
(4263) heap, Ничего с этим не поделаешь - получай с портала документы и тут же создавай их в 1С. А уж в 1С обрабатывать их сможешь с периодом с... по ....
А загрузку ЭСЧФ - сделай по примеру vbs - скрипта - downloadRecvDir.vbs из "комплекта пакетной обработки ЗАО Авест "... по другому ничего хорошего не выходит
07.10.2016 9:39:45 | Ошибка авторизации: Ошибка HTTP
SSPI QueryContextAttributes returns error #-2146893042(0x8009030E): No credentials are available in the security package
Ошибка подключения: Ошибка HTTP
SSPI QueryContextAttributes returns error #-2146893042(0x8009030E): No credentials are available in the security package
Всем привет.
Не секрет, что портал "работает" очень и очень нестабильно...
Каждый раз при попытке какой-либо операции через сервис портала происходят какие-либо проблемы.
На текущий момент появилась следующая проблема:
При попытке считать документ методом (входящие ЭСЧФ по номерам)
EDoc = EVatService.GetEDoc(НомерЭСЧФ);
, считываются документы. Для слежения за ошибками, использую следующий код
При первых попытках выводятся следующие ошибки:
"Ответ сервера: В последний раз ЭСЧФ под номером ... вы получали 2016-10-06 15:15:58 (UTC), в следующий раз ее можно будет получить после 2016-10-07 15:15:58 (UTC)." Которые понятны - ограничение скачивания файла раз в сутки.
Но затем (после попыток 8-9) выводится следующая ошибка:
"Ошибка HTTP
Socket Error # 10014
Buffer fault." После чего при следующей попытке считывания документа методом GetEDoc - происходит зависание, и помогает только "убийство" процесса.
Самое странное - что до 06.10.2016 до 18 часов (вчерашний день) - данным образом загрузилось (ооочень медленно) документов 30-40 за 30 минут (это из необходимых 10000 за месяц).
На ком лежит ответственность за разработку технической возможности обмена, к кому высылать свои вопросы и с кем оперативно решать проблемы ?
Техническая поддержка, отвечающая на телефонные звонки (номер телефона "110"), не может оперативно решать проблемы, тем более дозвониться до технической поддержки невозможно. В связи с чем у фирмы возникают проблемы выставления и подписи электронных счёт-фактур, анализа и выставления подписи по входящим счетам-фактурам.
Может добрые люди, обитающие на этом форуме подскажут по данному вопросу какое-либо решение.
Спасибо.
(4262) user619447_mex85, я написал 2 дня назад письмо на почту. Они еще не ответили.
Вы тоже пишите туда.
Главбух сегодня на семинаре каком-то там. Я ей сказал задать этот вопрос там, но похоже ее это мало интересовало и ответила, что кто не успел, тот больше штрафов получит и смех и грех=))
(4264) Xershi, Да уже слали...слали...и слали письма счастья им.
Странно что после того, как послали - начало загружаться. Может количество пользователей подключающихся к порталу уменьшилось - но ошибки пока нет, хоть и грузятся файлы очень-очень медленно.
Надеюсь догрузится, бухгалтера нервничают...
(4262) user619447_mex85, Можно попробовать в МНС (чем выше - тем лучше) с формулировкой типа "вручную - физически невозможно из-за объема, а автоматически - не работает. что делать?". но это должно как минимум от г/буха исходить. захочет ли он в такое ввязываться?
На тестовом портале выставили мне ЭСЧФ.
2. Дата выставления ЭСЧФ: 07.10.2016 12:40:30
Но в сохраненной хмл этой даты нет (наверно это dateTransaction).
Я так понимаю по этой причине:
res = EDocStatusInfo.Verify;
Если res <> 0 Тогда
ТекстОшибки = ?(ТекстОшибки = "", "", ТекстОшибки + Символы.Пс) +
Нстр("ru = 'Ошибка проверки полученного документа: '") + Строка(InvVatNumber)+ " " + EVatService.LastError;
Продолжить;
КонецЕсли;
Валится в ошибку.
Напишу разрабам наверное. У кого еще такое. Кто-то спрашивал про не заполненный реквизит, но чет не нашел сообщения, наверно про это было.
(4267) Xershi, немного не тот код выложил.
Вот как было:
На тестовом портале выставили нам ЭСЧФ.
В документе на портале стоит:
2. Дата выставления ЭСЧФ: 07.10.2016 12:40:30
Но в сохраненной хмл этой даты нет (наверно это реквизит dateTransaction).
Я так понимаю по этой причине:
res = InvVatXml.VerifySign(i, 0);
Если res <> 0 Тогда
ТекстОшибки = ?(ТекстОшибки = "", "", ТекстОшибки + Символы.Пс) + Нстр("ru='В документе № ") + Строка(InvVatNumber) + Нстр("ru=' ошибка проверки подписи'");
Отказ = Истина;
Возврат;
Иначе
ДатаПодписи = InvVatXml.GetSignProperty(i, "SIGNDATE", 0)
КонецЕсли;
Мне выдает:
600123341-2016-0000002335 ошибка проверки подписи
Ответ:
Добрый день. Так как данная дата необязательна для заполнения, то соответственно если вы не выставляете ее, при выгрузке она так же будет отсутствовать.
Так алгоритм у меня валится не на дате, а на проверка ЭЦП.
Написал им повторно:
Так что выходит?
Мне в таком случае не стоит использовать:
res = InvVatXml.VerifySign(i, 0);
Я думал эта строка мне проверяет корректность заполнености документа.
Судя по документации
VerifySign — проверка ЭЦП документа.
Этот метод использовать обязательно!
Или поясните мне для чего же на самом деле проверка нужна?
(4320) Xershi, ну не то чтобы совсем ... проверка подписи по сути скажет вам примет ли подписи документов портал. Т.е. либо вы отсекаете проблемы с сертификатами на этапе подготовки файла к отправке и пишете сообщение об этом, либо сам портал в дальнейшем не примет ЭСЧФ. При получении входящих ее можно игнорировать или написать "ЭСЧФ *** можно будет подписать только непосредственно на портале". Например сертификат поставщика на текущий момент уже просрочен - в этом случае веб-сервис такой документ не пропустит при подписании покупателем.
(4322) Snake150984, теперь становится понятно!
Вот их ответ на это:
Здравствуйте. Вам необходимо загрузить сертификат ГОССУОК. Скачать его можно здесь - http://nces.by/pki/certs/
Только не написали кому именно, тому кто выставил или тому кто получает такие документы.
Я так понимаю такая ошибка возникла потому что тестовый портал пропустил?
Или это известный баг?
(4323) Xershi, Если вы про просроченный сертификат отправителя - у меня проскочило месяца полтора назад. ТП ответила что по таким ЭСЧФ подпись только на портале без оговорок что это ошибка и будет исправляться. Так что видимо это не баг, а "особенность работы" )
(4324) Snake150984, я думаю что это про отправителя:
InvVatXml.Message = Не удалось проверить ЭЦП квитанции: Сертификат издателя не найден. [Для проверки <Организация отправитель> не найден сертификат <Республиканский удостоверяющий центр ГосСУОК> (KeyID=KeyID)]
(4325) Xershi, т.е. выходит, что на портал попала ЭСЧФ с просроченной подписью уже на момент загрузки на портал?
А вот и ответ:
Добрый день. Скачать необходимо пользователю, у которого возникает ошибка указанная вами ниже.
У нас работа идет на сервере, значит нужно обновить под пользователем агента сервера. Я то наверно проверял под своей доменной учеткой.
Админ сейчас все перепроверит и решим вопрос!
4269.
user589919_digitta
07.10.16 15:17 Сейчас в теме
Подскажите пожалуйста,
Вот получаем мы номер ЭСЧФ InvVatNumber = InvList.GetItemAttribute(i, "document/number")
а другие реквизиты вытянуть можно?
Ведь в мануале написано, что EDocList - являться электронным документом, имеющим методы и свойства, аналогичные EDocument.
Можно ли разобрать его?
(4273) Slypower, Имело ввиду не через edocument. а вот так приблизительно через list
InvList=EvatService.GetList(Дата);
Для i=0 по InvList.Count-1 Цикл
InvVatNumber = InvList.GetItemAttribute(i, "document/number");
InvVatNumber = InvList.GetItemAttribute(i, "document/ documentType");
InvVatNumber = InvList.GetItemAttribute(i, "document/ dateTransaction");
….
(4287) user589919_digitta, Правильно, нельзя сохранить в файл т.к. это список ЭСЧФ, когда его читаем по номеру ЭСЧФ и позиции в этом списке получаем номер ЭСЧФ а потом по номеру методом Edoc получаем и скачиваем методом SavetoFile конкретный ЭСЧФ, но если мне не нужен xml файл, а я заполняю документ в 1С, могу ли я получить другие атрибуты ЭСЧФ, кроме Номера ЭСЧФ(InVatNumber) методом getlist.
(4279) user589919_digitta, они не описаны просто в документации натыкалась что getlist имеет такие же методы как и edocument, просто list это грубо массив документов, вот и возник такой вопрос а можно ли так?
(4277) daraiznau, где-то на просторах страниц данной темы есть ссылка на сайт, где разбирается данный скаченный файл. Но вот то, что вы хотите, это навряд ли. Тут у разрабов спросить бы, никто так не интересовался уже давно.
(4296) user589919_digitta, Я что понял))) InvList - это переменная, которая присваивает значение: InvList = EVatService.GetList(НужнаяДата);, например. Тут нужно глубже копать.
Метод GetList
Получение списка поступивших в АС портала в адрес получателя ЭСЧФ.
Входные параметры:
• FromDate — дата периода поиска документов.
Результат:
В случае успешного выполнения возвращается объект электронный документ, содержащий объект EDocList со списком реквизитов ЭСЧФ, иначе возвращается пустой объект. Подробности ошибки можно получить, используя свойство LastError объекта Connector.
4300.
user589919_digitta
07.10.16 16:34 Сейчас в теме
(4298) Slypower,
"содержащий объект EDocList со списком реквизитов ЭСЧФ"
а - объект EDocList - это документ, со всеми вытекающими
б - "со списокм".... уж точно там не только номер ЭСЧФ
4302.
user589919_digitta
07.10.16 16:49 Сейчас в теме
(4301) Slypower,
но мы же забираем один из реквизитов методом GetItemAttribute. До вызова GetEDoc.
GetItemAttribute - Метод доступа к реквизитАМ (-АМ!) найденных документов. Например “document/number”
На данный момент, нам известен только этот реквизит.
Попробую я разрабам написать. Пусть потрудятся объяснить...
4313.
user589919_digitta
07.10.16 18:19 Сейчас в теме
(4309) Xershi, это вы похоже не врубаетесь в суть моего вопроса.
Повторяю еще раз: какие еще атрибуты, кроме номера ЭСЧФ "document\number", можно вытянуть из полученного списка методом GetItemAttribute. УНП тех кто в списке? дату транзакции документов?
Как получить документ, прочитать, разложить, сохранить я знаю. Меня интересует именно список и то, что с него можно взять кроме номеров ЭСЧФ.
(4313) user589919_digitta, почитали бы мои посты, глувых вопросов не задали, влом читать, влом вам разжовывать!
(4314) 1c77minsk, на тестовом портале ограничения в 24 часа нет.
(4316) Nik, через батники тут мало кто работает. У вас что не 1С? Компоненту используйте.
4272.
user589919_digitta
07.10.16 15:27 Сейчас в теме
(4270) keyn5565`, так мы разбираем сам документ ЭСЧФ.
А я имел виду разбирать полученный список. Там, же наверно, не только номера полученных ЭСЧФ хранятся.
InvList.GetItemAttribute - метод доступа к реквизитам найденных документов. Неужели из всех реквизитов там только номер....
(4275) keyn5565`, это у вас в работает только раз в сутки же. Для разбора лучше сохранять сразу в xml или создавать док в базе. Т.к. вдруг случайно закрыли таблицу, а изучить все не смогли. Вот тут и нужно считывать из файла или документа
(4275), (5126), (5508), (5509) моя публикация подсистемы обмена. В ближайших планах удалить и добавить последние правила, работа с методами SetData/GetData интерфейса IEDocument.
(4269) user589919_digitta, можно, за исключением таблиц/списков.
Выше писал, что МНС заказалос недоделку и компонентой таблички не вытянуть, поэтому выше есть алгоритм, которым я вытянул все что можно таким методом. А также алгоритмы для вытягивания из хмл как на 1с8 так и 1с7.
4293.
user589919_digitta
07.10.16 16:15 Сейчас в теме
(4289) Xershi, а где брали описание атрибутов? или методом тыка?
(4292) Slypower, не думаю, что прикроют. Запрос на получение дока с подписью и списком номенклатуры (а он может быть оооочень большой) и получение списка с основными атрибутами разные вещи...
4276.
user589919_digitta
07.10.16 15:35 Сейчас в теме
Мы разбираем содержимое документа полученного GetEDoc.
А я спрашивал, можно ли разобрать содержимое документа, полученного GetList. Полученный список - это тоже документ, со своими атрибутами. Они мне нужны :)
(4288) user589919_digitta, думаю, это плохая идея. не зря же ограничение на GetEDoc поставили, что много обращения на портал. Если все так станем делать, то и на getlist поставят. Просто еще разрабы не прочухали.
Здравствуйте
Совершенно запутался в "одной сосне"
Пытаясь подписать входящую ЭСЧФ
Например, сохраняю входящую счет фактуру в 2 файла 100083608-2016-0000043541.xml и 100083608-2016-0000043541.sgn.xml
Затем пытаюсь подписать ее отправить:
Процедура ПодписатьИОтправитьНаПорталЭСФЧ()
ПриАвторизации();
тс.ВыбратьСтроки();
Пока тс.ПолучитьСтроку() = 1 Цикл
Если тс.Метка = 2 Тогда
КаталогВходящих=КаталогИБ()+"XML\recv\";
ИмяФайла = СокрЛП(КаталогВходящих+СокрЛП(тс.НомерДок)+".sgn.xml");
Сообщить(ИмяФайла) ;
InvVatXml = EVatService.CreateEDoc;
if InvVatXml.LoadFromFile(ИмяФайла) <> 0 then
Сообщить( "Ошибка чтения файла: " + EVatService.LastError);
возврат ;
endif;
res = InvVatXml.Sign(0);
if res <> 0 then //В случае успешного выполнения возвращается 0, иначе возвращается код ошибки
Сообщить("Ошибка выработки подписи: " + EVatService.LastError);
Возврат;
endif;
res = EVatService.SendEDoc(InvVatXml);
else
Сообщить("Документ "+сокрлп(тс.НомерДок)+" отправлен");
endif;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
В результате получаю
Компоненты доступа к порталу ЭСФЧ загружены
Авторизация успешно
Подключение успешно
Документ 100083608-2016-0000043541 отправлен
Обновляю статус и вижу
Message: Выставлен
Status : COMPLETED
Захожу на портал они там тоже выставлены и ожидают подписания
Что я делаю не так как все ???
Заранее благодарный)
(4304) cssnavi, отсутствует выработка подписи res = VerifyAllSigns(InvVatXml);
InvVatXml = EVatService.CreateEDoc;//Сообщить("1");
if InvVatXml.LoadFromFile(ИмяФайла) <> 0 then
Сообщить( "Ошибка чтения файла: " + EVatService.LastError);
//возврат;
//else Сообщить("все гуд"); Прервать;
endif;
res = VerifyAllSigns(InvVatXml);// Сообщить("5");
if res = 0 then // Сообщить("6");
Возврат;// Сообщить("7");
endif; //Сообщить("8");// Сообщить("далее");
res = InvVatXml.Sign(0);
if res <> 0 then //В случае успешного выполнения возвращается 0, иначе возвращается код ошибки
Сообщить("Ошибка выработки подписи: " + EVatService.LastError);
Возврат;
endif;
if signCount = 0 then
Сообщить( "Ошибка: документ №" + InvVatNumber + " не содержит ЭЦП");
VerifyAllSigns = 1;
//возврат;
endif;
for i = 0 to signCount - 1 do
oid = "2.5.4.3"; //(commonName)
str = InvVatXml.GetSignProperty(i, oid, 0);
//Сообщить( "Проверка подписи " + str);
res = InvVatXml.VerifySign(i, 0);
if res <> 0 then
Сообщить( "Ошибка проверки подписи: " + EVatService.LastError);
ОшибкаПодписи=1;
VerifyAllSigns = 2;
Прервать;
else
ОшибкаПодписи=0;
Сообщить("ЭЦП проверена. Дата подписания: " + InvVatXml.GetSignProperty(i, "SIGNDATE", 0));
endif;
EndDo;
VerifyAllSigns = 0
Показать
Компоненты доступа к порталу ЭСФЧ загружены
Авторизация успешно
Подключение успешно
C:\OB4\XML\recv\100083608-2016-0000043541.sgn.xml
Ошибка проверки подписи: Нет доверия сертификату. [KeyID=68835BB5005D6CB8592417D98DD2DE4C9F719E28]
Ошибка отправки1: Нет доверия сертификату. [KeyID=68835BB5005D6CB8592417D98DD2DE4C9F719E28]
Документ 100083608-2016-0000043541 отправлен
Message: Выставлен
Status : COMPLETED
Но кардинальных улучшений так и не обнаружил
счет-фактуры по прежнему прекрасно отправляются
но менять статус с Выставлен на какой-либо другой - не хотят ((((
(4306) cssnavi, "нет доверия сертификату" - обычно сообщение означает что какой-то из сертификатов МНС из "сетевого справочника" на вашей машине не добавлен в список доверенных. Посмотрите в менеджере сертификатов Авеста по ID сертификата что за он и добавьте. И будет вам счастье )
(4308) cssnavi, аа, знаете что, это вы сможете подписать только вручную. Вам походу выставили с не обновленными СОС, а их так не подпишешь, глюк портала, который как месяц исправляют
Спасибо огромное
Вы меня просто спасли
Раз 100 переделывал никак не мог понять в чем косяк (месяц назад все подписывалось, а теперь ВНЕЗАПНО нет)
и почему он только у меня )))
Добрый день. Помогите с такой проблемой.
Мне нужно по номеру ЭСЧФ входящему, "скачать" его с портала. Каким методом это сделать?
И еще вопрос, если я "скачал" ее сегодня методом
InvList = EVatService.GetList(fromDate);
То я смогу ее прямым запросом по номеру скачать себе (не ждать 24 часа, что бы проверить, подписалась она или нет)?
Думаю, что этот сервис является причиной тормозов портала по следующим причинам.
1. При подписании в каталоге IN остаются ЭСЧФ ( автоматически они не удаляются).
2. В каталоге RECV тоже счета остаются.
При первом запуске батника обработка проходит быстро и нет проблем. На следующий день мы добавляем в каталог IN файлы, подписываем, а заодно и вчерашние пытаемся( они же в каталоге остались!!!!). Тоже самое происходит и в каталоге RECV. Каталоги разрастаются и каждый раз обработка перебирает все файлы.
В документации упоминается о возможности очистки каталога IN, "3.5 Если указан ключ командной строки -d и получен успешный ответ сервиса, то исходный файл удаляется.", но куда этот ключ засунуть я не догадался.
Я запускал батники и тупо наблюдал за всем, что происходит. Когда мне это надоело (наверно через месяц), я просто начал очищать каталоги и время обработки сократилось в разы.
А как решают этот вопрос другие? Может ли быть это причиной торможения на портале? Сколько пользователей работают через "средство взаимодействия с автоматизированным сервисом Портала АИС "Учет счетов-фактур"?
(4316) Nik, В файле signAndUploadDir.bat для очистки директории IN строка имеет вид "%VBRUN% src\signAndUploadDir.vbs -d %1 %EINV_PORTAL_URL% %IN_FOLDER% %OUT_FOLDER%"
Процедура КнопкаСкачатьСОСНажатие(Элемент)
Файл = Новый Файл("C:\Program Files (x86)\Avest\AvPCM_MNS\get_crl.bat");
Если Файл.Существует() Тогда
ЗапуститьПриложение(Файл.ПолноеИмя);
Возврат;
КонецЕсли;
Файл = Новый Файл("C:\Program Files\Avest\AvPCM_MNS\get_crl.bat");
Если Файл.Существует() Тогда
ЗапуститьПриложение(Файл.ПолноеИмя);
Возврат;
КонецЕсли;
КонецПроцедуры
На просторах сети выкладывалось решение создания батника и добавление его в задания винды. Выкладываю архив. Пробуйте. Я же запускаю батник: c:\Program Files (x86)\Avest\AvPCM_nces\get_crl.bat и все обновляется само. Так что можно сделать запуск из 1с.
Совершенно задолбала ситуация складывающаяся с дополнительными СФ. Их у нас две со ссылкой и без ссылки.
Методология рекомендует оформлять возвраты дополнительной со ссылкой, но в моих условиях добиться этого от покупателей технически невозможно. В то же время для доп. без ссылки запрещено изменение.
В условиях ежегодной обрезки ссылаться на прошлогодние СФ крайне затруднительно.
В связи с изложенным рождается не совсем трезвая идея как обойти эти ограничения.
1. Содаем СФ ОРИГИНАЛ с суммами в 1 коп.
2. Создаем доп.СФ со ссылкой на оригинал в первой строке которой указываем суммы -1 коп. Далее согласно документа.
В результате такого создания мы получаем все преимущества обоих вариантов доп СФ. Это здорово может помочь при отражении суммовых разниц возвратов, валютных приходов.
Готов ловить тапки!
П.С. На идиотски поставленное условие, следует кретинский ассиметричный ответ !