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` 5 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` 5 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` 5 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` 5 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` 5 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` 5 19.07.18 10:10 Сейчас в теме
(7435)
Этого как не было так и нет...
Если только как "Дополнительный без ссылки"
7442. keyn5565` 5 19.07.18 11:49 Сейчас в теме
Получили недавно ЭСЧФ с интересным содержанием.
Чтение которого вызывает ошибку исключения...
Пока его не привести к нужному виду, ЭСЧФ не загрузится.

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

Забавно что проверку портала этот файл прошел.. и мы его получили)))
Прикрепленные файлы:
invoice-111111111-2018-0000010241.xml
7443. Slypower 19.07.18 11:56 Сейчас в теме
(7442) обычная ЭСЧФ. Такие постоянно падают нам и читаются. А вид какой нужный? И как вы читаете?
7444. keyn5565` 5 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` 5 19.07.18 13:26 Сейчас в теме
(7447)
все тоже самое
NULL никуда не делся
7450. Slypower 19.07.18 13:34 Сейчас в теме
(7448) тогда перед чтением прогнать блокнотом и стрЗаменить("NULL",""). Только так))) Это для 7ки. Для 8ки проще.А если все читается построчно, то тем более это использовать))
7451. keyn5565` 5 19.07.18 13:36 Сейчас в теме
(7450)
в тот раз так и сделали)))
Даже Elnv Vat ругается ))
Дескриптор соединения неверен.

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

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

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

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

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

а они не смогут ... ключи ЭЦП сформированы с учетом этого "NULL". Если они даже и смогут каким-то чудом скорректировать исходный XML (что уже маловероятно, ибо они передают пакетом все сообщение отправителя), то контроль ЭЦП для модифицированного файла не пройдет ... сам смысл ЭЦП - исключить возможность изменения подписанного файла.
ИМХО: единственный вариант в данном случае - не принимать такой входящий ЭСЧФ изначально впринципе еще на первом этапе контроля портала, но это мечты-мечты :)
keyn5565`; +1 Ответить
7463. keyn5565` 5 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` 5 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` 5 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.
При обращении в техподдержку был ответ, что система это не контролирует, это наша проблема контролировать такие ситуации.
Это было в начале прошлого года, если найду ответ техподдержки, то скину.
Хотелось бы верить что за это время что-то изменилось))....
Snake150984; +1 Ответить
7486. iZhenius 23.01.19 11:02 Сейчас в теме
Добрый день! Подскажите, есть ли возможность программно из учетной системы указать порталу, какой ЭСЧФ не нужно принимать к зачету? Бухгалтер говорит, на самом портале такая кнопочка есть.
7487. Snake150984 23.01.19 11:44 Сейчас в теме
Аннулирование и управление вычетами анонсировано в конце 2017 года еще, но насколько я знаю до реального функционала так ничего не дошло.
iZhenius; nvv_2003; +2 Ответить
7488. nvv_2003 23.01.19 19:28 Сейчас в теме
(7487) Да, у нас были письма от МНС что к концу февраля 2018 года уже все доработки будут, но воз и ныне там...
iZhenius; +1 Ответить
7489. Snake150984 24.01.19 15:50 Сейчас в теме
(7488) Собственно что и требовалось доказать ...
Прикрепленные файлы:
keyn5565`; iZhenius; nvv_2003; +3 Ответить
7490. merlin1975 2 15.02.19 21:40 Сейчас в теме
https://nces.by/planovaya-smena-lichnogo-klucha-v-centre-atributnyh-sertifikatov/
На работе ЭСЧФ это не отразится? И надо ли обновлять ПО или только импортировать сертификат, если и до этого работало?
nvv_2003; +1 Ответить
7491. botman4 5 24.02.19 10:46 Сейчас в теме
Подскажите плз, как формировать файл для отправки если отгрузили товар Физ. лицу по ТТН-1 ?
Портал не принимает при виде документа ТТН-1 и без УНП .
7492. keyn5565` 5 25.02.19 16:34 Сейчас в теме
(7491)
в шапке есть примеры заполненных форм

при реализации физ. лицу 4 и 5 раздел не заполняется.
Прикрепленные файлы:
Formy-ESChF.rar
7493. brus 10.03.19 20:41 Сейчас в теме
Ошибка при подключении к порталу: в личном хранилище отсутствуют действующие сертификаты
----------------
Столкнулся с проблемой: при серверном варианте работы 1С 8.3.13 при выполнении EVatService.Login("" ,0) - EVatService.LastError выдает "в личном хранилище отсутствуют действующие сертификаты"
В файловом варианте такого нет и нормально идет соединение с хранилищем сертификатов.
Может кто сталкивался?

Режим работы 1С 8 - тонкий клиент, управляемые формы
Код выполняется во внешней обработке.
Сначала код находился в модуле формы обработки - та же проблема, затем перенес в модуль объекта обработки - ничего не поменялось.
EVatService - иницализируется (COM-объект), с сертификатами тоже все норм (повторюсь - в файловом режиме все работает).

Функция ПолучитьСоединениеСПорталом(Отказ) Экспорт
	
	Перем EVatService;
	
	ТекстСообщений	= "";
	
	EVatService = КомпонентаУстановлена(ТекстСообщений, Отказ);
	Если Отказ Тогда
		Возврат Неопределено;
	КонецЕсли;	

	//Если Не АвторизацияПройдена Тогда
		Если EVatService.Login("", 0) = 0 Тогда
			АвторизацияПройдена = Истина;	
		Иначе
			ТекстСообщений = ТекстСообщений + "Ошибка авторизации на портале электронных счетов-фактур НДС: " + EVatService.LastError;
			//ЗакрытьСоединениеЭСЧФ(ТекстСообщений);
			Отказ	= Истина;
			Возврат Неопределено;
		КонецЕсли;
	//КонецЕсли;
	
//	Если АвторизацияПройдена Тогда
		Если EVatService.Connect(СокрЛП(АдресПодключения)) = 0 Тогда
			СоединениеУстановлено = Истина;
		Иначе
			ТекстСообщений = ТекстСообщений + "Ошибка соединения с порталом электронных счетов-фактур НДС: " + EVatService.LastError;
			//ЗакрытьСоединениеЭСЧФ(ТекстСообщений);
			Отказ	= Истина;
			Возврат Неопределено;
		КонецЕсли;	
//	КонецЕсли;
	
	
	
КонецФункции
// ПолучитьСоединениеСПорталом

Функция  КомпонентаУстановлена(ТекстСообщений, Отказ)
	
	Попытка 
		#Если ВебКлиент Тогда
			ПодключитьВнешнююКомпоненту("ОбщийМакет.EInvVatService");
			EVatService = Новый ComОбъект("EInvVatService.Connector");
		#Иначе 
			EVatService = Новый ComОбъект("EInvVatService.Connector");
		#КонецЕсли	
		
	Исключение
		ТекстОшибки 	= ОписаниеОшибки();
		Отказ 				= Истина;
		Возврат Неопределено;
	КонецПопытки;
	
	Возврат EVatService;
КонецФункции
Показать
7494. Slypower 11.03.19 08:33 Сейчас в теме
(7493) ключи на сервер проброшены? Или все же на этом компе стоит авест? Как настроены? Где подключены?
7495. Snake150984 11.03.19 09:41 Сейчас в теме
(7493) Может есть смысл вернуть все в модуль формы и явно указать директивами что это &НаКлиенте ? ибо по симптомам-то похоже что в клиент-сервере вызов "Login" происходит в контексте сервера (и соответственно под пользователем, под которым этот сервер работает), а там как-бы ничего и нет ...
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

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

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