Имя: Пароль:
1C
1C 7.7
v7: Методы EInvVatService
0 AliAksA
 
29.05.17
09:46
Привет всем!
Как сохранить полученные с портала данные в xml-файл ?

EVatService  = СоздатьОбъект("EInvVatService.Connector");
InvList = EVatService.GetList(ПреобрДаты(НаДату) + "T00:00:01Z");
InvVatNumber = InvList.GetItemAttribute(i, "document/number");    
Попытка
    InvVatXml = EVatService.GetEDoc(InvVatNumber);
Исключение
    Сообщить("Не удалось получить ЭСЧФ № " + InvVatNumber + ": " + EVatService.LastError);
    Продолжить;
КонецПопытки;
ДанныеXML = InvVatXml.Document.GetData(0);
... ???

Заранее благодарю.
1 Slypower
 
29.05.17
11:00
(0) http://forum.infostart.ru/forum9/topic150593/?PAGEN_1=71 здесь найдете на все ответ и вам помогут оперативно на все ваши вопросы. Там же есть и примеры и сами обработки, в шапке.
И кстати, скачивая с портала архив eInvVat, вы найдете примеры, нужные вам. А так же там есть bat файлы, по которым все сделали себе обработки. Скачайте, посмотрите, все найдете.
А вот и ответ вам:

        res = VerifyAllSigns(InvVatXml);
        if res = 0 then              
            Сообщить( "Ошибка проверки ЭЦП полученного документа: " + EVatService.LastError );
        else
            res = InvVatXml.SaveToFile( файл );
            res = InvVatXml.Document.SaveToFile    (файлXML);            
        endif;
2 Fedor-1971
 
29.05.17
11:13
(1) там может быть строка Base64
(0) простая ЗаписьТекста, если действительно получил XML в виде строки
3 Slypower
 
29.05.17
11:20
(2)  там сохраняется 2 файла, один в Base64, второй в нормальном виде, для разбора по поставщикам, по товарам. Это разработка разработчиками портала и их код для программистов 1с7.7.
4 AliAksA
 
29.05.17
11:38
(2, 3) спасибо щас попробую ... сорки, отвлекли
5 AliAksA
 
29.05.17
12:28
(1) ругнулось на метод VerifyAllSigns(InvVatXml)
сделал через попытку (проверка ЭЦП - своим модулем)

ВСЕМ СПАСИБО - ТЕМА ЗАКРЫТА.
6 Slypower
 
29.05.17
13:06
(5) попытка на  VerifyAllSigns(InvVatXml); - это не верно.
Лучше делать попытку на
InvVatXml = EVatService.GetEDoc(InvVatNumber);    
Это отвечает на получение списка выставленных не подписанных эсчф на портале. И потом уже на эти номера делаем запрос на проверку ЭЦП. Так вот, если эцп уже были скачены в течении 12 часов, то ошибку и выдаст на это, что уже скачивали, подождите.