1. Slypower 19.04.16 12:44 Сейчас в теме

ЭСЧФ Беларусь

Всем привет. Не секрет, в Беларуси с 1 июля 2016 должна подаваться ЭСЧФ. Кто-нибудь уже работает с ней? Ведь там, вроде, уже 60 компаний Беларуси работает в тестовом режиме.
Сделал я по инструкциям, что на их сайте, но столько вопросов к их информации осталось.

Очень много полезного нам дали разработчики. Внимательно читайте их документацию в eInvVat, которую скачиваете, а так же примерами для 1С служат bat файлы из папки eInvVat\simpleapp\vbs\src\. Не поленитесь и посетить их сайт vat.gov.by. На основании этих знаний все пишут обработки. Если что не понятно, то можно прибегнуть к данной теме.
Важные и полезные ссылки на сайты и на сообщения темы.

Ссылки на сайт портала

Обработки с данной темы

Полезные сообщения темы

Коды процедур для 1С

Вопрос-Ответ

Дополняется со временем
kar911; Золушка 007; iZhenius; xav; svilsa; Mustard; Gluk_1C; jeniks; 1v7; botman4; OSA3; MaskO_rimi; Ni4ka; Igor Igorevich; Snake150984; shiko; merlin1975; cssnavi; Krasowskiy; YegorK; KhomDV; +21 Ответить
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо
7404. botman4 5 06.06.18 13:04 Сейчас в теме
(7403)
Ну у меня сперва по коду ищет, для других целей, а потом уже буду вытягивать ТН
7405. botman4 5 06.06.18 14:16 Сейчас в теме
Подскажите пож, как можно ли получить файлы уже подписанных входящих
ЭСЧФ ?
7406. Slypower 06.06.18 14:37 Сейчас в теме
7407. botman4 5 06.06.18 21:12 Сейчас в теме
А список могу получить, если нету номеров ?
7408. Slypower 07.06.18 08:59 Сейчас в теме
(7407) только на портале руками. Оттуда скачать csv файл, с него и список номеров
7411. gsvserg 14.06.18 18:24 Сейчас в теме
Коллеги, подскажите, если кто сталкивался.
Получаю список документов:
InvList = EVatService.GetList(ДатаЗапросаВходящихФормат);

Получаю документы:
Для i = 0 to InvList.Count - 1 Цикл

InvVatNumber = InvList.GetItemAttribute(i, "document/number");
InvVatXml = EVatService.GetEDoc(СокрЛП(InvVatNumber));

КонецЦикла;

На одном из документов вылетает с ошибкой:
Ошибка HTTP: Ответ от сервера не получен. (Socket Error # 0 )

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

Бухгалтер говорит, что этот документ отличается от других размером, много строк в документе.
7412. Slypower 15.06.18 09:39 Сейчас в теме
(7411) может у них стоит какой лимит соединения с порталом?
7413. gsvserg 15.06.18 10:08 Сейчас в теме
7414. Slypower 15.06.18 10:36 Сейчас в теме
Написать им с этим вопросом на vat.support@becloud.by. Отвечают оперативно
7415. gsvserg 15.06.18 10:43 Сейчас в теме
7416. user850079 18.06.18 11:40 Сейчас в теме
Добрый день, может кто поможет. При отправке любых ЭСЧФ периодически получаю такую ошибку "InvVatStatus = EVatService.GetStatus(номердок); Плохой тип переменной". Может есть решение или проблема в самом портале?
7417. Snake150984 18.06.18 11:52 Сейчас в теме
(7416) а может быть что с
номердок
периодически что-то не то?
7418. user850079 18.06.18 12:05 Сейчас в теме
(7417) возможно, я думал может я не один столкнулся с такой проблемой
7419. Slypower 18.06.18 12:16 Сейчас в теме
(7418) все с ней сталкивались, только сложно вспомнить, как решили ее. В попытку обернули так точно)
Gluk_1C; Snake150984; +2 Ответить
7433. ASDCXZ 18.07.18 15:23 Сейчас в теме
(7416) Скорее всего дело в портале т.к. иногда эта ошибка вылазит и при попытке попозже (час, два, день) проходит без ошибки.
7434. Snake150984 18.07.18 16:42 Сейчас в теме
(7433) как-то давно таких проблем не было ... максимум - по таймауту запрос отваливался ... а статусы обновлять можем и по 1000 ЭСЧФ, а то и больше
7420. Snake150984 07.07.18 14:55 Сейчас в теме
Коллеги подскажите, может кто уже сталкивался: общался тут с бухами, рассказывают страшилки, что если в ЭСЧФ указан неверный первичный документ ТН/ТТН (например серия/номер корректные, а код бланка например выбрали старый 402861 вместо 402961) - то МНС потом может аннулировать вычет НДС по данному ЭСЧФ, хотя по данным портала у нее корректный статус и в КК она попадает. Сразу говорю, что в уведомлениях на портале это отображается как "Бланк не принадлежит отправителю", но кто туда когда смотрит при больших объемах.
Не пришлось бы сейчас еще и проверку через blank.bisc.by в обмен допиливать :(
7421. nnn123 7 09.07.18 07:42 Сейчас в теме
(7420) Из-за неправильного кода бланка были случаи когда получатели заворачивали ЭСЧФ и отказывались подписывать, их тогда просто аннулировали и перевыставляли. Так чтобы МНС аннулировал вычет по такому ЭСЧФ - таких случаев не встречал, но проверку через blank.bisc.by нужно делать. МНС все дальше закручивает гайки где возможно.

Вот пример запроса к веб-сервису по Серии и номеру бланка (ЮМ 5041997):
http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWSnTB&pSB=%D0%AE%D0%9C&pNB=5041997

Метод FindBlankWSnTB (pSB, pNB) : WSAnswerList, где:
pSB : String – серия БСО,
pNB : String – номер БСО,
WSAnswerList – объект ответа
keyn5565`; Snake150984; Slypower; +3 Ответить
7422. Slypower 09.07.18 08:31 Сейчас в теме
(7421) Только пример не ЮМ 5041997, а АЕ 5041997?
7423. keyn5565` 4 09.07.18 08:31 Сейчас в теме
(7421)
Судя по ответу WEB сервиса, проверить корректность кода бланка не выйдет.
Сервис проверяет только по серии и номеру но не учитывает код бланка. Т.е. если мы указали старый код бланка, выяснить это благодаря blank.bisc.by не выйдет(((
7424. Snake150984 09.07.18 09:46 Сейчас в теме
(7423) Запросил на blank.bisc.by описание сервиса. Прислали - там несколько вариантов
Прикрепленные файлы:
Поиск БСО. WEB-сервис.Техническое описание.doc.doc
Slypower; +1 Ответить
7425. keyn5565` 4 09.07.18 10:42 Сейчас в теме
(7424)
Тоже запросил.

Сделал на скорую руку обработку запроса.
Прикрепленные файлы:
blank_bisc_by.epf
Parazyte; Sergey_Kirillov; Slypower; +3 Ответить
7426. Sergey_Kirillov 13.07.18 21:24 Сейчас в теме
(7425) Просьба: Выложи в виде кода...Не все в 8-ке сидят :(
Parazyte; +1 Ответить
7427. keyn5565` 4 16.07.18 10:16 Сейчас в теме
(7426)
//Переменная хранит определение web-сервиса
Перем WSСсылка;

Процедура ВыполнинитьЗапрос(method)
	
	Отказ = Ложь;
	
	Если method = 1 Тогда
		ИмяМетода = "FindBlankWS";	
	ИначеЕсли method = 2 Тогда
		ИмяМетода = "FindBlankWSnTB";
	ИначеЕсли method = 3 Тогда
		ИмяМетода = "GetTBListWS";
	КонецЕсли;
	
	Если method = 1 Тогда
		
		Если НЕ ЗначениеЗаполнено(КодБланка) 
			ИЛИ НЕ ЗначениеЗаполнено(СерияБланка)
			ИЛИ НЕ ЗначениеЗаполнено(НомерБланка) Тогда
			Предупреждение("Параметры заданы не верно!", 30, "Ошибка");
			Отказ = Истина;
		КонецЕсли;
		
	ИначеЕсли method = 2 Тогда
		
		Если НЕ ЗначениеЗаполнено(СерияБланка)
			ИЛИ НЕ ЗначениеЗаполнено(НомерБланка) Тогда
			Предупреждение("Параметры заданы не верно!", 30, "Ошибка");
			Отказ = Истина;
		КонецЕсли;
		
	КонецЕсли; 
	
	pTB = СокрЛП(КодБланка);
	pSB = СокрЛП(ВРег(СерияБланка));
	pNB = СокрЛП(НомерБланка);
	
	Если НЕ Отказ Тогда	
		
		Если method = 1 Тогда
			Ответ = ПолучитьОтветСервиса(ИмяМетода, pTB, pSB, pNB)		
		ИначеЕсли method = 2 Тогда
			Ответ = ПолучитьОтветСервиса(ИмяМетода, , pSB, pNB)
		ИначеЕсли method = 3 Тогда
			Ответ = ПолучитьОтветСервиса(ИмяМетода,,,)
		КонецЕсли;
		
		Сообщить(Ответ, СтатусСообщения.Информация)
		
	КонецЕсли;
	
КонецПроцедуры

// Функция - Получить ответ сервиса
//
// Параметры:
//  – pTB – код БСО. Ожидается целочисленное шестизначное значение;
//  – pSB – серия БСО. Ожидается буквенно-числовое значение, соответствующее формату серии указанного БСО. Символы серии должны передаваться посредством кодировки Unicode; 
//  – pNB – номер БСО. Ожидается целочисленное значение длиной до 9 знаков, соответствующее формату номера указанного БСО.
//Обязательность присутствия параметров pTB, pSB, pNB зависит от метода, указанного в первом параметре:
//  – для метода FindBlankWS обязательны все три параметра;
//  – для метода FindBlankWSnTB обязательны pSB и pNB;
//  – для метода GetTBListWS параметры не требуются.
// 
// Возвращаемое значение:
//   - Строка 
//
Функция ПолучитьОтветСервиса(ИмяМетода, pTB = Неопределено, pSB = Неопределено, pNB = Неопределено)
	
	Хост = WSСсылка;
	
	ст_pTB = ?(pTB = Неопределено, "", "&pTB=" + pTB);
	ст_pSB = ?(pSB = Неопределено, "", "&pSB=" + pSB);
	ст_pNB = ?(pNB = Неопределено, "", "&pNB=" + pNB);
	
	Ресурс = "/FindBlankWSHttp.aspx?method=" + ИмяМетода + ст_pTB + ст_pSB + ст_pNB;  
	
	Ответ = ОтправитьHTTPЗапрос(Хост, Ресурс);
	
	Если Ответ <> Неопределено Тогда
		
		СведенияXML = Неопределено;
		Попытка
			ЧтениеXML = Новый ЧтениеXML;
			ЧтениеXML.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
			
			СведенияXML = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
		Исключение
			Возврат ОписаниеОшибки() 
		КонецПопытки;
		
		ПредставлениеОтвета = "Сведения по БСО: ";
		
		Если ТипЗнч(СведенияXML) = Тип("ОбъектXDTO") Тогда
			
			ПредставлениеОтвета = "Сведения по БСО:" + Символы.ПС;
			
			Если pTB <> Неопределено Тогда
				ПредставлениеОтвета = ПредставлениеОтвета + "Код бланка: " + pTB + ", "	
			КонецЕсли;
			
			Если pSB <> Неопределено Тогда
				ПредставлениеОтвета = ПредставлениеОтвета + "Серия бланка: " + pSB + ", "
			КонецЕсли;
			
			Если pNB <> Неопределено Тогда
				ПредставлениеОтвета = ПредставлениеОтвета + "Номер бланка: " + pNB + ", "
			КонецЕсли;
			
			ТаблицаОтвета = Новый ТаблицаЗначений;
			ТаблицаОтвета.Колонки.Добавить("УНП",			 ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(9));
			ТаблицаОтвета.Колонки.Добавить("Наименование",	 ОбщегоНазначения.ПолучитьОписаниеТиповСтроки(200));
			
			Если СведенияXML.IsFound = "1" Тогда
				
				СвойстваXML = СведенияXML.Свойства();
				Если СвойстваXML.Получить("Rel") <> Неопределено Тогда
					
					НоваяСтрока = ТаблицаОтвета.Добавить();
					
					НоваяСтрока.УНП			 = СведенияXML.Rel.WSRel.UNP;
					НоваяСтрока.Наименование = СведенияXML.Rel.WSRel.Name; 
					
				ИначеЕсли СвойстваXML.Получить("Blanks") <> Неопределено Тогда
					
					Попытка
						
						Для Каждого Строка из СведенияXML.Blanks.WSAnswer Цикл
							
							НоваяСтрока = ТаблицаОтвета.Добавить();
							
							НоваяСтрока.УНП			 = Строка.Rel.WSRel.UNP;
							НоваяСтрока.Наименование = Строка.Rel.WSRel.Name;
							
						КонецЦикла;
						
					Исключение
						
						НоваяСтрока = ТаблицаОтвета.Добавить();
						
						НоваяСтрока.УНП			 = СведенияXML.Blanks.WSAnswer.Rel.WSRel.UNP;
						НоваяСтрока.Наименование = СведенияXML.Blanks.WSAnswer.Rel.WSRel.Name;
						
					КонецПопытки
					
				КонецЕсли;
				
				Для Каждого СтрокаТаблицы из ТаблицаОтвета Цикл
					
					ПредставлениеОтвета = ПредставлениеОтвета + Символы.ПС +  "	- Бланк в наличии у: " 
																+ " УНП: " + СтрокаТаблицы.УНП
																+ " " + СтрокаТаблицы.Наименование;
				КонецЦикла;
				
			Иначе
				
				ПредставлениеОтвета = ПредставлениеОтвета + "Данные не обнаружены!"
				
			КонецЕсли;
		Иначе
			
			ПредставлениеОтвета = ПредставлениеОтвета + "Ошибка получения данных!"
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат ПредставлениеОтвета
	
КонецФункции

Функция ОтправитьHTTPЗапрос(Хост, Ресурс) Экспорт
	
	Соединение = Новый HTTPСоединение(Хост);
	Заголовки = Новый Соответствие;
	Заголовки.Вставить("host", Хост); 
	Запрос = Новый HTTPЗапрос(Ресурс, Заголовки); 
	
	Ответ = Неопределено;
	Попытка
		Ответ = Соединение.Получить(Запрос);		
	Исключение
		Сообщить(ОписаниеОшибки(), Статуссообщения.ОченьВажное);
	КонецПопытки;
	
	Возврат Ответ;
	
КонецФункции

//Стандартное WSDL-определение Web-сервиса 
WSСсылка = "ws.blank.bisc.by";
Показать

для 7-ки http запрос можно попробовать использовать из примера показанного в этой теме

ну или использовать то что уже сделано: https://infostart.ru/public/718263/
nnn123; Slypower; Sergey_Kirillov; +3 Ответить
7452. merlin1975 2 22.07.18 23:43 Сейчас в теме
(7425)
Можете добавить проверку сразу по полученному УНП на сайте http://portal.nalog.gov.by ? Есть код. Могу поделиться.
7453. keyn5565` 4 23.07.18 12:35 Сейчас в теме
(7452)
Не особо понял. Зачем добавлять эту проверку?

(7452)
Наверно, имели в виду проверку по этому сайту (http://www.portal.nalog.gov.by/grp/) ?

Проверку добавить не проблема. Вопрос только - Зачем?

Вот пожалуйста:
Функция ПроверкаПоУНП(УНП)
	
	ПредставлениеОтвета = "";
	
	Хост = "www.portal.nalog.gov.by";
	Ресурс = "grp/getData?unp="+СокрЛП(УНП);
	
	Ответ = ОтправитьHTTPЗапрос(Хост, Ресурс);
	
	Если Ответ <> Неопределено Тогда
		СведенияXML = Неопределено;
		Попытка
			ЧтениеXML = Новый ЧтениеXML;
			ЧтениеXML.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
			
			СведенияXML = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
		Исключение
			Возврат ПредставлениеОтвета;
		КонецПопытки;
		
		НаименованиеПолноеПортал	= СокрЛП(СведенияXML.ROW.VNAIMP);
		НаименованиеПортал			= СокрЛП(СведенияXML.ROW.VNAIMK);		
		ЮрАдресПортал 				= СокрЛП(СведенияXML.ROW.VPADRES);
		Если Лев(ЮрАдресПортал, 2) = ", " Тогда
			ЮрАдресПортал = Прав(ЮрАдресПортал, СтрДлина(ЮрАдресПортал) - 2);
		КонецЕсли;
		
		ПредставлениеОтвета = "УНП: " + УНП + " 
		|	Наименование:              " + НаименованиеПортал  + "
		|	Полное наименование: " + НаименованиеПолноеПортал + "
		|	Юридический адрес:      " + ЮрАдресПортал;
		
	Конецесли;
	
	Возврат ПредставлениеОтвета 
	
КонецФункции
Показать
merlin1975; nnn123; +2 Ответить
7454. merlin1975 2 23.07.18 18:41 Сейчас в теме
(7453)
Благодарю!
Что-то выдает ошибку: "Поле объекта не обнаружено (IsFound)"..
7456. keyn5565` 4 23.07.18 20:26 Сейчас в теме
7457. merlin1975 2 24.07.18 00:07 Сейчас в теме
(7456)
Благодарю!
Работает!
Теперь надо попробовать сваять сие для 7-ки, ибо "ну или использовать то что уже сделано: https://infostart.ru/public/718263/" скачать не могу...
7464. daraiznau 31.07.18 14:39 Сейчас в теме
(7457)Для 7-ки, если надо
Процедура Импортировать(ФайлWSAnswer)   
	Анализатор=СоздатьОбъект("AddIn.XMLParser");
	Док=Анализатор.СоздатьДокумент();  
	Док.ЗагрузитьИзСтроки(XMLДокумент);     
	ДокНайден=Число(Док.ВыбратьУзел("WSAnswer/IsFound").Значение);
	Если ДокНайден=1 Тогда 
		УзелОтвета=СокрЛП(Док.ВыбратьУзел("WSAnswer/Rel/WSRel/Date").Значение);
		ОтветСПортала= "БСО был реализован -"+СокрЛП(УзелОтвета)+РазделительСтрок; 
		УзелОтвета=СокрЛП(Док.ВыбратьУзел("WSAnswer/Rel/WSRel/UNP").Значение);
		ОтветСПортала=ОтветСПортала+"Контрагенту - "+ СокрЛП(УзелОтвета); 
		УзелОтвета=Юникоды(СокрЛП(Док.ВыбратьУзел("WSAnswer/Rel/WSRel/Name").Значение));
		ОтветСПортала=ОтветСПортала+" "+ СокрЛП(УзелОтвета); 
//Если была передача БСО другому контрагенту	
Попытка
			УзелОтвета=СокрЛП(Док.ВыбратьУзел("WSAnswer/Pas/WSPas/Date").Значение);
			ОтветСПортала=ОтветСПортала+"БСО был передан -"+СокрЛП(УзелОтвета)+РазделительСтрок; 
			УзелОтвета=СокрЛП(Док.ВыбратьУзел("WSAnswer/Pas/WSPas/UNP").Значение);
			ОтветСПортала=ОтветСПортала+"Контрагенту - "+ СокрЛП(УзелОтвета); 
			УзелОтвета=Юникоды(СокрЛП(Док.ВыбратьУзел("WSAnswer/Pas/WSPas/Name").Значение));
			ОтветСПортала=ОтветСПортала+" "+ СокрЛП(УзелОтвета); 	
		Исключение
		КонецПопытки;		 
	Иначе
		ОтветСПортала="Такой БСО не НАЙДЕН в АС БДБ!"
	КонецЕсли;
КонецПроцедуры
//*******************************************
Процедура Выполнить()
	//Проверим, если компонента нужная
	Если ЗагрузитьВнешнююКомпоненту("v7plus.dll")=0 Тогда
		Предупреждение("Компонента v7plus.dll не найдена!");
	КонецЕсли;
	
	НТТРСервис = СоздатьОбъект("AddIn.V7HTTPReader");
	ВрКаталог = КаталогИБ();
	ФайлWSAnswer = ВрКаталог+"WSAnswer.xml";
	
	Попытка         
		стр="http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWS&pTB="+УТФ8(СокрЛП(КодБланка))+"&pSB="+УТФ8(СокрЛП(Серия))+"&pNB="+УТФ8(СокрЛП(НомерБланка));
		НТТРСервис.ПолучитьКакФайл("http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWS&pTB="+УТФ8(СокрЛП(КодБланка))+"&pSB="+УТФ8(СокрЛП(Серия))+"&pNB="+УТФ8(СокрЛП(НомерБланка)), ФайлWSAnswer) ;                
		НТТРСервис.ПолучитьКакСтроку(стр,XMLДокумент);
		Импортировать(ФайлWSAnswer); 
		ФС.УдалитьФайл(ФайлWSAnswer);
	Исключение 
		//		Сообщить(" НЕТ соед. с сервером");
		Для Сч = 1 По НТТРСервис.КоличествоЗаголовковОтвета() Цикл
			Заголовок  = НТТРСервис.ПолучитьЗаголовокОтвета(Сч);
			Содержание    =   НТТРСервис.ПолучитьСодержаниеЗаголовкаОтвета(Сч);
			
			Сообщить( Заголовок    +" : "+Содержание );   
			
		КонецЦикла;
		//  Это можно использовать при отладке обмена
	КонецПопытки;     
	Сообщить("Проверка завершена!");
КонецПроцедуры  
Показать
merlin1975; +1 Ответить
7465. merlin1975 2 31.07.18 15:16 Сейчас в теме
(7464)
Благодарю!
Ругается на:
{(12)}: Функция не обнаружена (Юникоды)
УзелОтвета=Юникоды<<?>>(СокрЛП(Док.ВыбратьУзел("WSAnswer/Pas/WSPas/Name").Значение));
{(20)}: Функция не обнаружена (Юникоды)
стр="http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWS&pTB="+УТФ8<<?>>(СокрЛП(КодБланка))+"&pSB="+УТФ8(СокрЛП(Серия))+"&pNB="+УТФ8(СокрЛП(НомерБланка));
{(40)}: Функция не обнаружена (УТФ8)
НТТРСервис.ПолучитьКакФайл("http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWS&pTB="+УТФ8<<?>>(СокрЛП(КодБланка))+"&pSB="+УТФ8(СокрЛП(Серия))+"&pNB="+УТФ8(СокрЛП(НомерБланка)), ФайлWSAnswer) ;
{(41)}: Функция не обнаружена (УТФ8)
НТТРСервис.ПолучитьКакФайл("http://ws.blank.bisc.by/FindBlankWSHttp.aspx?method=FindBlankWS&pTB="+УТФ8(СокрЛП(КодБланка)<<?>>)+"&pSB="+УТФ8(СокрЛП(Серия))+"&pNB="+УТФ8(СокрЛП(НомерБланка)), ФайлWSAnswer) ;
{(41)}: Неопознанный оператор
НТТРСервис.ПолучитьКакСтроку(стр,XMLДокумент<<?>>);
{(42)}: Переменная не определена (XMLДокумент)
<<?>>Исключение
{(45)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure')
При проверке модуля обнаружены синтаксические ошибки!
7466. daraiznau 01.08.18 08:18 Сейчас в теме
(7465)Перед процедурой Импортировать() вставьте вот эти:
Перем XMLДокумент,ОтветСПортала;
//*******************************************
 Функция Юникоды(Стр="",Кодировка="UTF-8")   
  	Стрим = СоздатьОбъект("Adodb.Stream");
    Стрим.Type = 2;
    Стрим.Mode= 3;
    Стрим.charset="windows-1251";
    Стрим.Open();
    Стрим.WriteText(Стр);
    Стрим.Position=0;
    Стрим.charset=Кодировка;
    Рез=Стрим.ReadText(-1);
    Стрим.Close();
    Возврат    Рез;
  
  КонецФункции
//*******************************************
// для записи длинных строк
Функция УТФ8(Стр) Экспорт
	
	Длина = СтрДлина(Стр);
	Итог = "";
	
	Для Н = 1 По Длина Цикл
		Знак = Сред(Стр, Н, 1);
		Код = КодСимв(Знак);
		Если Код < 128 Тогда
			Итог = Итог + Знак;
		Иначе
			Если (Код >= КодСимв("А")) И (Код <= КодСимв("п")) Тогда
				Итог = Итог + Симв(208) + Симв(144 + Код - КодСимв("А"));
			ИначеЕсли (Код >= КодСимв("р")) И (Код <= КодСимв("я")) Тогда
				Итог = Итог + Симв(209) + Симв(128 + Код - КодСимв("р"));
			ИначеЕсли (Знак = "ё") Тогда
				Итог = Итог + Симв(209) + Симв(145);
			ИначеЕсли (Знак = "Ё") Тогда
				Итог = Итог + Симв(208) + Симв(129);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Итог;
	
КонецФункции   
Показать

Это функции приобразования
merlin1975; +1 Ответить
7428. nnn123 7 17.07.18 08:25 Сейчас в теме
На портале после выходных поменяли форматы файлов камерального контроля (csv). Изменился заголовок файла и структура полей в шапке и для ВхЭСЧФ и для ИсхЭСЧФ.
Кто делал загрузки для сверки - обратите внимание. Мне пришлось переделывать загрузчики.

Поменяли как обычно вероломно и без объявления войны т.е. без новостей на портале)
AlenkaZu; Gluk_1C; Slypower; keyn5565`; +4 Ответить
7429. Sergey_Kirillov 17.07.18 13:35 Сейчас в теме
(7428)Как всегда....Никто не уважает чужой труд!!!
7430. Gluk_1C 18.07.18 11:34 Сейчас в теме
(7428)
На портале после выходных поменяли форматы файлов камерального контроля (csv). Изменился заголовок файла и структура полей в шапке и для ВхЭСЧФ и для ИсхЭСЧФ.


Как без новостей?
Уважаемые пользователи!

Информируем Вас о том, что обновлен документ "Инструкция пользователя с/х по работе с камеральным контролем и мониторингом сделок".
Обновленная версия доступна по http://vat.gov.by/mainPage/download/KAMERALNII_KONTROL_I_MONITORING_SDELOK_­RUKOVODSTVO_POLZOVATELYa.pdf
7432. ASDCXZ 18.07.18 15:17 Сейчас в теме
(7428) Так ведь не в первый раз. Я у себя в обработке просто загнал номера нужных полей в переменные и меняю по потребности
7435. Slypower 19.07.18 09:28 Сейчас в теме
Всем добрый день. Скажите, когда на портале ввели возможность при выставлении Дополнительного ЭСЧФ указывать условия поставки, и они видны на портале? Чет я пропустил это. Помню, они планировали Дополнительные данные сделать, но условия поставки не помню
7436. Snake150984 19.07.18 10:05 Сейчас в теме
(7435) хм ... сейчас попробовал создать дополнительный ЭСЧФ на портале ... условий поставки нет ...
Прикрепленные файлы:
7438. Snake150984 19.07.18 10:18 Сейчас в теме
(7436) А если я открываю существующий "доп." - то заголовок раздела есть, но в нем ничего нет :) Слава БелОблакам :)
Прикрепленные файлы:
keyn5565`; +1 Ответить
7439. Slypower 19.07.18 11:10 Сейчас в теме
(7438) а при создании на портале тоже нельзя заполнять?
7440. Snake150984 19.07.18 11:23 Сейчас в теме
7441. Slypower 19.07.18 11:34 Сейчас в теме
(7440) на картинке не видно, есть ли возможность развернуть и заполнить
7445. Snake150984 19.07.18 12:38 Сейчас в теме
(7441) при создании - даже раздела такого не отображает. Заголовок появляется если я открываю выставленный ЭСЧФ на просмотр ... но кроме заголовка ничего нет ...
7437. keyn5565` 4 19.07.18 10:10 Сейчас в теме
(7435)
Этого как не было так и нет...
Если только как "Дополнительный без ссылки"
7442. keyn5565` 4 19.07.18 11:49 Сейчас в теме
Получили недавно ЭСЧФ с интересным содержанием.
Чтение которого вызывает ошибку исключения...
Пока его не привести к нужному виду, ЭСЧФ не загрузится.

Встречал ли кто нечто подобное?

Забавно что проверку портала этот файл прошел.. и мы его получили)))
Прикрепленные файлы:
invoice-111111111-2018-0000010241.xml
7443. Slypower 19.07.18 11:56 Сейчас в теме
(7442) обычная ЭСЧФ. Такие постоянно падают нам и читаются. А вид какой нужный? И как вы читаете?
7444. keyn5565` 4 19.07.18 12:06 Сейчас в теме
(7443)
Это он на первый взгляд обычный)
Но он в конце содержит значение NULL

Проверялось на организации с типовой обработкой
Прикрепленные файлы:
7446. Snake150984 19.07.18 12:42 Сейчас в теме
(7444) да, null ... как я понимаю что если разбирать текст - то все отработает, если читать этот файл через встроенный функционал той же 1С - вылетит ошибка при разборе, ибо тот же хром ругается на содержание ... отправитель документа - "молодец"
7447. Slypower 19.07.18 13:19 Сейчас в теме
(7444) а если сперва конвертнуть файл в кодировку вин и потом читать, на 8ке помогло мне.
7448. keyn5565` 4 19.07.18 13:26 Сейчас в теме
(7447)
все тоже самое
NULL никуда не делся
7450. Slypower 19.07.18 13:34 Сейчас в теме
(7448) тогда перед чтением прогнать блокнотом и стрЗаменить("NULL",""). Только так))) Это для 7ки. Для 8ки проще.А если все читается построчно, то тем более это использовать))
7451. keyn5565` 4 19.07.18 13:36 Сейчас в теме
(7450)
в тот раз так и сделали)))
Даже Elnv Vat ругается ))
Дескриптор соединения неверен.

Прогонять xml через текстовый редактор это просто МЕГА костыль))
7458. Migleon 24.07.18 12:45 Сейчас в теме
(7451) Как вариант - предварительно анализировать на наличие недопустимых символов. Если таковые имеются, то складывать xml-ки в какой-то отдельный каталог, или удалять эти символы (тем более, если строка состоит из одного недопустимого символа)
7459. keyn5565` 4 26.07.18 14:53 Сейчас в теме
(7458)
Поддержка ответила:
В этом xml-файле содержатся скрытые символы, которые не воспринимаются системой, их можно просмотреть в текстовом редакторе Notepad++ , их необходимо удалить, смотрите вложенный файл.

Проще говоря можно удаляйте символы вручную....
7460. Snake150984 26.07.18 16:23 Сейчас в теме
(7459)
Проще говоря можно удаляйте символы вручную....

а это один такой ЭСЧФ у вас или от поставщика постоянно такие приходят? Может попробовать им (поставщику, т.е.) сказать "ай-ай-ай"? Или не вариант?
7461. keyn5565` 4 27.07.18 09:15 Сейчас в теме
(7460)
пока только единственный.
и надеюсь это разовое пришествие.
костыль почти доделал...
(7460)
Может попробовать им (поставщику, т.е.) сказать "ай-ай-ай"

Сомневаюсь что это оперативно исправят...

жаль на стороне портала не хотят исправлять этот баг...
7462. Snake150984 27.07.18 10:12 Сейчас в теме
(7461)
жаль на стороне портала не хотят исправлять этот баг...

а они не смогут ... ключи ЭЦП сформированы с учетом этого "NULL". Если они даже и смогут каким-то чудом скорректировать исходный XML (что уже маловероятно, ибо они передают пакетом все сообщение отправителя), то контроль ЭЦП для модифицированного файла не пройдет ... сам смысл ЭЦП - исключить возможность изменения подписанного файла.
ИМХО: единственный вариант в данном случае - не принимать такой входящий ЭСЧФ изначально впринципе еще на первом этапе контроля портала, но это мечты-мечты :)
keyn5565`; +1 Ответить
7463. keyn5565` 4 27.07.18 10:19 Сейчас в теме
Не удумаю что в проверку по схеме не возможно дописать проверку на некорректные символы...
(7462)
впринципе еще на первом этапе контроля портала, но это мечты-мечты :)

Это точно!)))
Такие же несбыточные как: Управление вычетами из учетной системы и аннулирование.
Более полугода уже прошло с анонса))))
7474. lazovit 12.12.18 13:59 Сейчас в теме
(7463) такое ощущение что это кто-то xml так криво формирует, а на портале он не переформировывается
7475. Snake150984 12.12.18 17:29 Сейчас в теме
(7474) а почему он должен там переформироваться? Это данные подписанные ЭЦП. Все, алес капут, менять данные нельзя.
7449. keyn5565` 4 19.07.18 13:32 Сейчас в теме
(7447)
даже через DOM не читает
Значение не является значением объектного типа (selectSingleNode)
7467. ASDCXZ 17.10.18 11:42 Сейчас в теме
У кого-нибудь в файле камерального контроля в поле "ФИО подписавшего ЭСЧФ получателя" есть что-нибудь? Или это типа задел на будущее?
7476. Migleon 10.01.19 12:31 Сейчас в теме
Столкнулся с проблемкой.

Подключаюсь из 1С 8.2 к порталу.
Запрашиваю список документов

СписокВходящих = EVatService.GetList(Формат(ДатаС,"ДФ=гггг-ММ-дд")+"T00:00:00Z");


Но СписокВходящих получает значение Неопределено. Метод LastError выдает: "Не удалось разобрать ответ сервера. DTD запрещен..."

Лог ошибки:

OperID=list
SessionID= здесь указан идентификатор сессии
UserAgent=EInvVatService 1.3.0.53 UNP 999999999
Type=SOAP
Error=DTD запрещен. Line: 1 <!DO CTYPE html><!--[if lt IE 7 ]>


В чем может быть дело?
7477. keyn5565` 4 10.01.19 13:20 Сейчас в теме
(7476)
прокси есть?
попробуйте обновить компоненту eInvVat

еще возможно проблема безопасности:
почитайте это: Dtd запрещен xml
7478. Migleon 10.01.19 14:21 Сейчас в теме
Разобрался. В адресе сервера была ошибка.
7479. Migleon 10.01.19 15:15 Сейчас в теме
Я правильно понимаю, что с портала можно скачать только неподписанные входящие ЭСЧФ?
7480. Slypower 10.01.19 16:11 Сейчас в теме
(7479) по номеру ЭСЧФ можно скачать и подписанные ЭСЧФ
Snake150984; +1 Ответить
7482. chesnok 17.01.19 17:07 Сейчас в теме
Всем привет.
Можно ли как-то получить с портала последний занятый или первый свободный номер исходящей ЭСЧФ?
7483. nvv_2003 17.01.19 21:24 Сейчас в теме
(7482) если коротко - то нет. Вообще портал не контролирует номер выставляемого Исх.ЭСЧФ и даже в случае выставления по ошибке другого ЭСЧФ под номером который уже есть на портале не возвращает ошибку. Вывод: формирование номера ИсхЭСЧФ и их контроль полностью лежит на стороне конфигурации. У нас для разных случаев используются разные шаблоны номеров.
7484. Snake150984 18.01.19 16:49 Сейчас в теме
(7483)
даже в случае выставления по ошибке другого ЭСЧФ под номером который уже есть на портале не возвращает ошибку

ну это вы, уважаемый, не правы ... в черновиках такое может быть, но выставить - не даст никогда

А по факту - да, как вы и написали: при выставлении на портал ЭСЧФ из разных источников (читай разных баз 1С) необходимо использовать префиксы. Причем номера с "*********-****-0..." необходимо оставить ТОЛЬКО для ручного выставления ЭСЧФ, потому что система автонумерации самого портала учитывает только ЭСЧФ выставленные вручную.
7485. nvv_2003 18.01.19 20:17 Сейчас в теме
(7484) Может сейчас что-то изменилось (хотя в новостях этого не было), но несколько раз была ситуация когда из нашей системы была выставлена ЭСЧФ №1, затем под ТЕМ ЖЕ номером через веб-сервис ошибочно выставлялась ЭСЧФ №2 и при отправке не было выдано ошибки и затем при обновлении статуса ЭСЧФ №2 оказалась выставлена (т.к. внутренний номер у них был одинаковый), хотя реально на портале была только ЭСЧФ №1.
При обращении в техподдержку был ответ, что система это не контролирует, это наша проблема контролировать такие ситуации.
Это было в начале прошлого года, если найду ответ техподдержки, то скину.
Хотелось бы верить что за это время что-то изменилось))....
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата до 120 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день

Программист 1С
Москва
Полный день

Программист 1С
Видное
Полный день