Ошибка парсинга

БП 3.0 выгрузка в сбербанк XML

// Формирует и прикрепляет файл обмена к документам с помощью подсистемы «Файлы» // // Параметры: // МассивДокументов — Массив ссылок на документы, по которым требуется сформировать файл // МассивОписанийФайлов — Массив описаний сформированных файлов // Процедура ВыгрузитьФайлыДляОбменаСБанком(МассивДокументов, МассивОписанийФайлов, ПлатежныйДокумент = Неопределено) Экспорт Отказ = Ложь; Запрос = Новый Запрос; Запрос.УстановитьПараметр(«МассивДокументов», МассивДокументов); Запрос.УстановитьПараметр(«ПлатежныйДокумент», ПлатежныйДокумент); Запрос.Текст = «ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Ведомость, | ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект КАК ЗарплатныйПроект, | ВедомостьНаВыплатуЗарплатыВБанк.Проведен КАК Проведен, | ПлатежныеДокументыПеречисленияЗарплаты.ПлатежныйДокумент КАК ПлатежныйДокумент |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлатежныеДокументыПеречисленияЗарплаты КАК ПлатежныеДокументыПеречисленияЗарплаты | ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ПлатежныеДокументыПеречисленияЗарплаты.Ведомость | И (ПлатежныеДокументыПеречисленияЗарплаты.ПлатежныйДокумент <> &ПлатежныйДокумент) |ГДЕ | ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&МассивДокументов)»; ЗарплатныйПроект = Неопределено; ВДокументахОдинЗарплатныйПроект = Истина; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если ЗначениеЗаполнено(Выборка.ПлатежныйДокумент) Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(«ru = ‘%1 уже включена в %2′»), Выборка.Ведомость, Выборка.ПлатежныйДокумент); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.ПлатежныйДокумент, , , Отказ); КонецЕсли; Если Не Выборка.Проведен Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Документ %1 не проведен.'»), Выборка.Ведомость); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ведомость,,, Отказ); КонецЕсли; Если ЗарплатныйПроект = Неопределено Тогда ЗарплатныйПроект = Выборка.ЗарплатныйПроект; ИначеЕсли ЗарплатныйПроект <> Выборка.ЗарплатныйПроект Тогда ВДокументахОдинЗарплатныйПроект = Ложь; КонецЕсли; Если НЕ ОбменСБанкамиПоЗарплатнымПроектам.ИспользоватьЭОИСБанком(Выборка.ЗарплатныйПроект) Тогда Если ЗначениеЗаполнено(Выборка.ЗарплатныйПроект) Тогда ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘По зарплатному проекту %1 не используется обмен электронными документами с банком.'»), Выборка.ЗарплатныйПроект); Иначе ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘В документе %1 не выбран зарплатный проект.'»), Выборка.Ведомость); КонецЕсли; ОбщегоНазначенияКлиентСервер.СообщитьПользователю( ТекстСообщения, Выборка.ЗарплатныйПроект, «ИспользоватьЭлектронныйДокументооборотСБанком»,,Отказ); КонецЕсли; КонецЦикла; Если ПлатежныйДокумент <> Неопределено Тогда Если НЕ ПлатежныйДокумент.Проведен Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Документ %1 не проведен.'»), ПлатежныйДокумент); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, ПлатежныйДокумент,,, Отказ); КонецЕсли; Если Не ВДокументахОдинЗарплатныйПроект Тогда ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘В документе %1 присутствуют ведомости с разными зарплатными проектами. Файл по документу не сформирован.'»), ПлатежныйДокумент); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, Выборка.Ведомость,,, Отказ); КонецЕсли; КонецЕсли; Если Отказ Тогда Возврат; КонецЕсли; ВидОперации = «ВедомостьНаВыплатуЗарплатыВБанк»; ДатаПолученияДанных = ТекущаяДатаСеанса(); СтруктураПараметровДляФормированияФайла = Новый Структура; СтруктураПараметровДляФормированияФайла.Вставить(«ВидОперации», ВидОперации); СтруктураПараметровДляФормированияФайла.Вставить(«ДанныеШапки», ДанныеШапкиДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент)); СтруктураПараметровДляФормированияФайла.Вставить(«ДанныеСтрок», ДанныеСтрокДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент)); СтруктураПараметровДляФормированияФайла.Вставить(«КорневыеСвойства», ОбменСБанкамиПоЗарплатнымПроектам.КорневыеСвойства(ВидОперации)); СтруктураПараметровДляФормированияФайла.Вставить(«СоответствиеПолейФайла», ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеПолейФайла(ВидОперации)); СтруктураПараметровДляФормированияФайла.Вставить(«ОбязательныеПоляФайла», ОбменСБанкамиПоЗарплатнымПроектам.ОбязательныеПоляФайла(ВидОперации)); СтруктураПараметровДляФормированияФайла.Вставить(«СоответствиеПреобразованияЗначений», ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеПреобразованияЗначений(ВидОперации)); СтруктураПараметровДляФормированияФайла.Вставить(«СоответствиеТипов», ОбменСБанкамиПоЗарплатнымПроектам.СоответствиеТипов(ВидОперации)); СтруктураПараметровДляФормированияФайла.Вставить(«ПлатежныйДокумент», ПлатежныйДокумент); ОбменСБанкамиПоЗарплатнымПроектам.СоздатьФайлыДляОбменаСБанком(МассивДокументов, МассивОписанийФайлов, СтруктураПараметровДляФормированияФайла); КонецПроцедуры // Получает данные документов для формирования файла обмена // // Параметры: // МассивДокументов — Массив ссылок на документы, по которым требуется получить данные // ДатаПолученияДанных — дата формирования файла // ПлатежныйДокумент — Ссылка на платежный документ, в который входят ведомости // // Возвращаемое значение: // Таблица значений «ДанныеШапкиДокумента» — содержит данные документа // Функция ДанныеШапкиДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент = Неопределено) Запрос = Новый Запрос; Запрос.УстановитьПараметр(«ВедомостиНаВыплатуЗарплатыВБанк», МассивДокументов); Запрос.Текст = «ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Документ, | ВедомостьНаВыплатуЗарплатыВБанк.Номер КАК НомерДокумента, | ВедомостьНаВыплатуЗарплатыВБанк.Дата КАК ДатаДокумента, | ВЫБОР | КОГДА Организации.НаименованиеПолное ПОДОБНО «»»» | ТОГДА Организации.Наименование | ИНАЧЕ Организации.НаименованиеПолное | КОНЕЦ КАК ПолноеНаименованиеОрганизации, | Организации.ИНН КАК ИННОрганизации, | ЗарплатныеПроекты.Ссылка КАК ЗарплатныйПроект, | ЗарплатныеПроекты.НомерДоговора КАК НомерДоговора, | ЗарплатныеПроекты.ДатаДоговора КАК ДатаДоговора, | ЗарплатныеПроекты.ОтделениеБанка КАК ОтделениеБанка, | Банки.Код КАК БИКБанка, | ЗарплатныеПроекты.РасчетныйСчет КАК НомерРасчетногоСчетаОрганизации, | ЗарплатныеПроекты.ФорматФайла КАК ФорматФайла, | «»01″» КАК ВидЗачисления, | ИтоговыеДанныеПоВедомости.КоличествоЗаписей, | ИтоговыеДанныеПоВедомости.СуммаИтого |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации | ПО ВедомостьНаВыплатуЗарплатыВБанк.Организация = Организации.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты | ПО ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект = ЗарплатныеПроекты.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Банки КАК Банки | ПО (ЗарплатныеПроекты.Банк = Банки.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ДанныеВедомостейДляОплатыЧерезБанк.Ссылка КАК Ведомость, | КОЛИЧЕСТВО(ДанныеВедомостейДляОплатыЧерезБанк.Сотрудник.ФизическоеЛицо) КАК КоличествоЗаписей, | СУММА(ДанныеВедомостейДляОплатыЧерезБанк.КВыплате) КАК СуммаИтого | ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ДанныеВедомостейДляОплатыЧерезБанк | ГДЕ | ДанныеВедомостейДляОплатыЧерезБанк.Ссылка В(&ВедомостиНаВыплатуЗарплатыВБанк) | | СГРУППИРОВАТЬ ПО | ДанныеВедомостейДляОплатыЧерезБанк.Ссылка) КАК ИтоговыеДанныеПоВедомости | ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ИтоговыеДанныеПоВедомости.Ведомость |ГДЕ | ВедомостьНаВыплатуЗарплатыВБанк.Проведен | И ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&ВедомостиНаВыплатуЗарплатыВБанк)»; ДанныеШапкиДокумента = Запрос.Выполнить().Выгрузить(); // ИдПервичногоДокумента ДанныеШапкиДокумента.Колонки.Добавить(«ИдПервичногоДокумента»); // Номер и дата платежного поручения ДанныеШапкиДокумента.Колонки.Добавить(«НомерПлатежногоПоручения»); ДанныеШапкиДокумента.Колонки.Добавить(«ДатаПлатежногоПоручения»); // ДатаФормирования ДанныеШапкиДокумента.Колонки.Добавить(«ДатаФормирования»); // ИмяФайла ДанныеШапкиДокумента.Колонки.Добавить(«ИмяФайла»); // ДанныеРеестра ДанныеШапкиДокумента.Колонки.Добавить(«ДанныеРеестра»); РеквизитыПлатежногоДокумента = Неопределено; Если ПлатежныйДокумент <> Неопределено Тогда РеквизитыПлатежногоДокумента = Новый Структура(«ПлатежныйДокумент, Номер, Дата», ПлатежныйДокумент, «», ДатаПолученияДанных); Выборка = РегистрыСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Выбрать(Новый Структура(«ПлатежныйДокумент», ПлатежныйДокумент)); Если Выборка.Следующий() Тогда ЗаполнитьЗначенияСвойств(РеквизитыПлатежногоДокумента, Выборка); КонецЕсли; КонецЕсли; НомераРеестров = НомераРеестровДокументов(ДанныеШапкиДокумента, РеквизитыПлатежногоДокумента); КоличествоЗаписей = Неопределено; СуммаИтого = Неопределено; Для каждого СтрокаДанных Из ДанныеШапкиДокумента Цикл Если КоличествоЗаписей = Неопределено Тогда КоличествоЗаписей = ДанныеШапкиДокумента.Итог(«КоличествоЗаписей»); КонецЕсли; Если СуммаИтого = Неопределено Тогда СуммаИтого = ДанныеШапкиДокумента.Итог(«СуммаИтого»); КонецЕсли; СтрокаДанных.ДатаФормирования = ДатаПолученияДанных; Если ПлатежныйДокумент <> Неопределено Тогда СтрокаДанных.ИдПервичногоДокумента = ПлатежныйДокумент.УникальныйИдентификатор(); СтрокаДанных.НомерПлатежногоПоручения = РеквизитыПлатежногоДокумента.Номер; СтрокаДанных.ДатаПлатежногоПоручения = РеквизитыПлатежногоДокумента.Дата; СтрокаДанных.ДатаДокумента = РеквизитыПлатежногоДокумента.Дата; СтрокаДанных.КоличествоЗаписей = КоличествоЗаписей; СтрокаДанных.СуммаИтого = СуммаИтого; СтрокаДанных.ДанныеРеестра = НомераРеестров; НомерРеестра = СтрЗаменить(СтрокаДанных.ДанныеРеестра.НомерРеестра, Символы.НПП, «»); СтрокаДанных.НомерДокумента = НомерРеестра; НомерРеестра = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(НомерРеестра, 2); СтрокаДанных.ИмяФайла = ОбменСБанкамиПоЗарплатнымПроектам.ИмяФайлаОбменаСБанкамиПоЗарплатнымПроектам(ПлатежныйДокумент, «f», СтрокаДанных.ОтделениеБанка, НомерРеестра, «z»); Иначе СтрокаДанных.ИдПервичногоДокумента = СтрокаДанных.Документ.УникальныйИдентификатор(); СтрокаДанных.ДанныеРеестра = НомераРеестров; НомерРеестра = СтрЗаменить(СтрокаДанных.ДанныеРеестра.НомерРеестра, Символы.НПП, «»); СтрокаДанных.НомерДокумента = НомерРеестра; НомерРеестра = СтроковыеФункцииКлиентСервер.ДополнитьСтроку(НомерРеестра, 2); СтрокаДанных.ИмяФайла = ОбменСБанкамиПоЗарплатнымПроектам.ИмяФайлаОбменаСБанкамиПоЗарплатнымПроектам(СтрокаДанных.Документ, «f», СтрокаДанных.ОтделениеБанка, НомерРеестра, «z»); КонецЕсли; ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ЗаполнитьДанныеОплатыВедомостей( СтрокаДанных.Документ, СтрокаДанных.НомерПлатежногоПоручения, СтрокаДанных.ДатаПлатежногоПоручения, ПлатежныйДокумент); ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ОпределитьДанныеШапкиДокументаДляПолученияТекстаФайла(СтрокаДанных, СтрокаДанных.Документ, ДатаПолученияДанных); КонецЦикла; Возврат ДанныеШапкиДокумента; КонецФункции // Определяет номера реестров для документов // Функция НомераРеестровДокументов(ТаблицаДокументов, РеквизитыПлатежногоДокумента) ДокументыВыгрузки = Новый Массив; ГодыВыгрузки = Новый Массив; УникальныеГодыВыгрузки = Новый Соответствие; Если РеквизитыПлатежногоДокумента = Неопределено Тогда Для Каждого ДанныеШапки Из ТаблицаДокументов Цикл ДокументыВыгрузки.Добавить(ДанныеШапки.Документ); ГодВыгрузки = Год(ДанныеШапки.ДатаДокумента); Если УникальныеГодыВыгрузки = Неопределено Тогда УникальныеГодыВыгрузки.Вставить(ГодВыгрузки, Истина); ГодыВыгрузки.Добавить(ГодВыгрузки); КонецЕсли; КонецЦикла; Иначе ДокументыВыгрузки.Добавить(РеквизитыПлатежногоДокумента.ПлатежныйДокумент); ГодыВыгрузки.Добавить(Год(РеквизитыПлатежногоДокумента.Дата)); КонецЕсли; УстановитьПривилегированныйРежим(Истина); Запрос = Новый Запрос; Запрос.УстановитьПараметр(«ГодыВыгрузки», ГодыВыгрузки); Запрос.УстановитьПараметр(«ДокументыВыгрузки», ДокументыВыгрузки); Запрос.Текст = «ВЫБРАТЬ | СостоянияДокументовЗачисленияЗарплаты.Документ, | СостоянияДокументовЗачисленияЗарплаты.Год, | СостоянияДокументовЗачисленияЗарплаты.НомерРеестра |ПОМЕСТИТЬ ВТВыгружаемыеДокументы |ИЗ | РегистрСведений.СостоянияДокументовЗачисленияЗарплаты КАК СостоянияДокументовЗачисленияЗарплаты |ГДЕ | СостоянияДокументовЗачисленияЗарплаты.Документ В(&ДокументыВыгрузки) |; | |////////////////////////////////////////////////////////////­//////////////////// |ВЫБРАТЬ | РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Организация, | РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Дата КАК Дата, | ВыгружаемыеДокументы.Документ, | ВыгружаемыеДокументы.Год, | ВыгружаемыеДокументы.НомерРеестра |ИЗ | ВТВыгружаемыеДокументы КАК ВыгружаемыеДокументы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты КАК РеквизитыПлатежныхДокументовПеречисленияЗарплаты | ПО ВыгружаемыеДокументы.Документ = РеквизитыПлатежныхДокументовПеречисленияЗарплаты.ПлатежныйДокумент | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Организация, | ВедомостьНаВыплатуЗарплатыВБанк.Дата, | ВыгружаемыеДокументы.Документ, | ВыгружаемыеДокументы.Год, | ВыгружаемыеДокументы.НомерРеестра |ИЗ | ВТВыгружаемыеДокументы КАК ВыгружаемыеДокументы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ПО ВыгружаемыеДокументы.Документ = ВедомостьНаВыплатуЗарплатыВБанк.Ссылка | |УПОРЯДОЧИТЬ ПО | Дата»; Выборка = Запрос.Выполнить().Выбрать(); Запрос.Текст = «ВЫБРАТЬ | СостоянияДокументовЗачисленияЗарплаты.Документ, | СостоянияДокументовЗачисленияЗарплаты.Год, | СостоянияДокументовЗачисленияЗарплаты.НомерРеестра |ПОМЕСТИТЬ ВТВыгруженныеДокументы |ИЗ | РегистрСведений.СостоянияДокументовЗачисленияЗарплаты КАК СостоянияДокументовЗачисленияЗарплаты |ГДЕ | СостоянияДокументовЗачисленияЗарплаты.Год В(&ГодыВыгрузки) |; | |////////////////////////////////////////////////////////////­//////////////////// |ВЫБРАТЬ | РеквизитыПлатежныхДокументовПеречисленияЗарплаты.Организация, | ВыгруженныеДокументы.Документ, | ВыгруженныеДокументы.Год, | ВыгруженныеДокументы.НомерРеестра |ПОМЕСТИТЬ ВТДокументыПоОрганизациям |ИЗ | ВТВыгруженныеДокументы КАК ВыгруженныеДокументы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РеквизитыПлатежныхДокументовПеречисленияЗарплаты КАК РеквизитыПлатежныхДокументовПеречисленияЗарплаты | ПО ВыгруженныеДокументы.Документ = РеквизитыПлатежныхДокументовПеречисленияЗарплаты.ПлатежныйДокумент | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Организация, | ВыгруженныеДокументы.Документ, | ВыгруженныеДокументы.Год, | ВыгруженныеДокументы.НомерРеестра |ИЗ | ВТВыгруженныеДокументы КАК ВыгруженныеДокументы | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ПО ВыгруженныеДокументы.Документ = ВедомостьНаВыплатуЗарплатыВБанк.Ссылка |; | |////////////////////////////////////////////////////////////­//////////////////// |ВЫБРАТЬ | ДокументыПоОрганизациям.Организация, | ДокументыПоОрганизациям.Год, | МАКСИМУМ(ДокументыПоОрганизациям.НомерРеестра) КАК НомерРеестра |ИЗ | ВТДокументыПоОрганизациям КАК ДокументыПоОрганизациям | |СГРУППИРОВАТЬ ПО | ДокументыПоОрганизациям.Организация, | ДокументыПоОрганизациям.Год»; НомераРеестровОрганизаций = Запрос.Выполнить().Выгрузить(); УстановитьПривилегированныйРежим(Ложь); НомераРеестров = Новый Соответствие; Пока Выборка.Следующий() Цикл Год = Год(Выборка.Дата); ДанныеРеестра = Новый Структура(«Год, НомерРеестра», Год, Выборка.НомерРеестра); Если Не ЗначениеЗаполнено(Выборка.Год) Или Выборка.Год <> Год Тогда ДанныеДокумента = Новый Структура(«Организация, Год», Выборка.Организация, Год); НайденныеСтроки = НомераРеестровОрганизаций.НайтиСтроки(ДанныеДокумента); Если НайденныеСтроки.Количество() = 0 Тогда ДанныеДокумента.Вставить(«НомерРеестра», 1); ЗаполнитьЗначенияСвойств(НомераРеестровОрганизаций.Добавить(), ДанныеДокумента); Иначе ДанныеДокумента.Вставить(«НомерРеестра», НайденныеСтроки.НомерРеестра + 1); НайденныеСтроки.НомерРеестра = ДанныеДокумента.НомерРеестра; КонецЕсли; ДанныеРеестра.НомерРеестра = ДанныеДокумента.НомерРеестра; КонецЕсли; НомераРеестров.Вставить(Выборка.Документ, ДанныеРеестра); КонецЦикла; Возврат НомераРеестров; КонецФункции // Получает данные строк документа для формирования файла обмена // // Параметры: // МассивДокументов — Массив ссылок на документы, по которым требуется получить данные // ДатаПолученияДанных — дата формирования файла // ПлатежныйДокумент — Ссылка на платежный документ, в который входят ведомости // // Возвращаемое значение: // Таблица значений «ДанныеСтрокДокумента» — содержит данные строк документа // Функция ДанныеСтрокДокументовДляПолученияТекстаФайла(МассивДокументов, ДатаПолученияДанных, ПлатежныйДокумент = Неопределено) Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.УстановитьПараметр(«МассивДокументов», МассивДокументов); Запрос.УстановитьПараметр(«ДатаПолученияДанных», ДатаПолученияДанных); Запрос.Текст = «ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ | &ДатаПолученияДанных КАК Период, | ДанныеСотрудников.Сотрудник КАК Сотрудник |ПОМЕСТИТЬ ВТСписокСотрудников |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ДанныеСотрудников |ГДЕ | ДанныеСотрудников.Ссылка В(&МассивДокументов)»; Запрос.Выполнить(); ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотруднико­в(Запрос.МенеджерВременныхТаблиц, «ВТСписокСотрудников»); КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, «Фамилия,Имя,Отчество»); Запрос.Текст = «ВЫБРАТЬ | ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Документ, | ВедомостьНаВыплатуЗарплатыВБанк.Номер КАК НомерДокумента, | ВедомостьНаВыплатуЗарплатыВБанк.Дата КАК ДатаДокумента, | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник КАК Сотрудник, | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо, | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.НомерСтроки КАК НомерСтроки, | КадровыеДанныеСотрудников.Фамилия КАК Фамилия, | КадровыеДанныеСотрудников.Имя КАК Имя, | КадровыеДанныеСотрудников.Отчество КАК Отчество, | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.НомерЛицевогоСчета КАК НомерЛицевогоСчета, | ВедомостьНаВыплатуЗарплатыВБанкЗарплата.КВыплате КАК СуммаКВыплате, | ЗарплатныеПроекты.ОтделениеБанка КАК ОтделениеБанка, | ЗарплатныеПроекты.ФилиалОтделенияБанка КАК ФилиалОтделенияБанка, | ЗарплатныеПроекты.Валюта.Код КАК КодВалюты |ИЗ | Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьНаВыплатуЗарплатыВБанкЗарплата | ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЗарплатныеПроекты КАК ЗарплатныеПроекты | ПО ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект = ЗарплатныеПроекты.Ссылка | ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников | ПО (ВедомостьНаВыплатуЗарплатыВБанкЗарплата.Сотрудник = КадровыеДанныеСотрудников.Сотрудник) |ГДЕ | ВедомостьНаВыплатуЗарплатыВБанк.Проведен | И ВедомостьНаВыплатуЗарплатыВБанк.Ссылка В(&МассивДокументов)»; ДанныеСтрокДокументов = Запрос.Выполнить().Выгрузить(); НомерСтроки = 0; ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ДополнитьКолонкиДанныхСтрокДокументов(ДанныеСтрокДокументов); Для каждого СтрокаДокумента Из ДанныеСтрокДокументов Цикл Если ЗначениеЗаполнено(ПлатежныйДокумент) Тогда НомерСтроки = НомерСтроки + 1; СтрокаДокумента.НомерСтроки = НомерСтроки; КонецЕсли; ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ЗаполнитьКолонкиДанныхСтрокДокумента(СтрокаДокумента); Если СтрДлина(СтрокаДокумента.НомерЛицевогоСчета) <> 20 Тогда СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru=’По ведомости в банк №%2 от %3г. в строке №%4 у сотрудника %5 лицевой счет менее 20 цифр. |Если номер действительно не удовлетворяет этому требованию, возможно, |банк не поддерживает обмен по типовому стандарту — следует обратиться в банк'»), СтрокаДокумента.НомерДокумента, Формат(СтрокаДокумента.ДатаДокумента, «ДЛФ=D»), СтрокаДокумента.НомерСтроки, СтрокаДокумента.ФизическоеЛицо); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(СообщениеОбОшибке, СтрокаДокумента.Документ, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр(«ru = ‘Зарплата.%2′»), СтрокаДокумента.НомерСтроки-1, «НомерЛицевогоСчета»)); КонецЕсли; КонецЦикла; ОбменСБанкамиПоЗарплатнымПроектамПереопределяемый.ОпределитьДанныеСтрокДокументовДляПолученияТекстаФайла(ДанныеСтрокДокументов, ДатаПолученияДанных); Возврат ДанныеСтрокДокументов; КонецФункции #КонецОбласти Показать

Ошибка парсинга плейлистов

вы не шумите.
вы еще не знаете, что значит ждать ответа.
ваш вопрос всего второй день на висит в этой теме (с 6-го числа), но никак не четвертый.
ну и третий день в этой теме (с 5-го числа), и опять же никак не четвертый.
если бы вы задавали его в одной теме, тогда бы и получили скорый понятный ответ.
а, т.к., вы спрашиваете одно и тоже в разных темах, вот у путаетесь потом в темах, и ждете у моря погоды.
Админ вам еще вчера ответил в теме по IPTV.

1) признаю что разместил вопрос не в той ветке … НО! Не нашел кнопку удалить сообщение ? Есть такая? Поэтому и пересоздал аналогичный вопрос в другой ветке…
2) В той ссылочке (ну на ветку темы о 51IPTV HD+SD) что Вы привели НЕТ ответа на вопрос что делать когда НЕ работает НИ одна ссылка на внешние самообновляемые плейлисты (ЛЮБОЙ из личного кабинета) НИ на одном телике … и выдается одинаковая ошибка «Ошибка парсинга плейлиста!» … При этом ОТ телика НЕТ ни одного исходящего запроса на сервер с плейлистами … При этом если руцями вбить ЭТУ же ссылку в «Перейти по адресу» — то все работает …
3) Вся трабла была НЕ на стороне телика, а на стороне «базы данных» личного кабинета …. явно что-то посыпалось … поудалял записи… ДОБАВИЛ ТОЧНО ТАКИЕ ЖЕ (букафка в букафку)…. и все снова заработало …

ВОПРС СНЯТ … хотя над сохранностью базы данных надо поработать .. не первый случай 😉

При работе со Сбербанк Бизнес Онлайн система может выдавать ряд ошибок. Часть из них можно устранить самостоятельно, однако в большинстве случаев рекомендуется сразу же обратиться в техподдержку банка.

Связано это с тем, что один и тот же код ошибки будет высвечиваться по разным причинам.

Обзор ошибок системы

Большинства ошибок, с которыми сталкиваются клиенты Сбербанк Бизнес Онлайн, можно избежать, если внимательно следовать инструкциям по работе с системой. Но клиенты все равно часто попадают на одни и те же коды ошибок.

Код 0100 высвечивается при попытке входа. Появление ошибки связано с несоответствием сертификата пользователя. Причин этому может быть несколько:

  • истек срок действия;
  • несоответствие адреса;
  • сертификат не прошел проверку подлинности.

В некоторых случаях ошибка высвечивается еще до окончания срока действия сертификата в качестве предупреждающей меры.

Самостоятельно решить этот баг можно только после проверки сертификата, а именно — даты его окончания. В случае, если срок истек, стоит создать новый сертификат.

Ошибка 0140 возникает при «конфликте» с электронной подписью. В первую очередь рекомендуется проверить срок действия электронной подписи. Обычно достаточно его продлить, сделать это можно не ровно в день окончания, а заранее.

При возникновении ошибки 0160 система добавляет, что сервер не смог проверить подлинность сертификата.

Ошибка 401 не связана с сертификатом или электронной подписью. Обычно она свидетельствует о том, что пользователь имеет баги в операционной системе.

Ошибку можно отнести к «несерьезным», так как часто она пропадает, если просто перезайти в Сбербанк Бизнес Онлайн.

Если же эта инструкция не сработала, то можно попробовать:

  • обновить браузер до последней версии;
  • отключить антивирусник или, предпочтительней, включить Сбербанк Бизнес Онлайн в список исключений антивирусной программы.

Более масштабным решением станет обновление операционной системы. Однако чаще хватает обновления браузера.

Еще одна ошибка TLS-соединения связанная с работой сертификата шифруется кодом 0070.

Как и в других сбоях при работе сертификата, он часто происходит из-за окончания срока действия. Необходимо обратиться банк.

Ошибка логина/пароля

Этот тип ошибки появляется не слишком часто. Исправить ситуацию можно, если обновить страницу и повторно попробовать ввести логин и пароль. При повторном сообщении об ошибке рекомендуется воспользоваться формой для восстановления данных.

Ошибка контроля или валидации полей

Надпись появляется во время работы со Сбербанк Бизнес Онлайн при отправке платежного поручения.

Если же ошибка появилась снова в том же поручении, необходимо обратиться в техподдержку.

Этот код не является «постоянным», часто система просто словами описывает, что произошел технический сбой или сервер недоступен. Также может быть использован и другой шифр, но начинается он обычно с 02.

Ситуация никак не связана с действиями клиентов, так как проблемы на стороне разработчика.

Обычно такие сбои устраняются оперативно в течение рабочего дня.

Ошибка СМС-подтверждения

Иногда у клиентов, которые подтверждают операции через Сбербанк Бизнес Онлайн с помощью СМС, одноразовый пароль не проходит. Сбою не присваивается код или номер, но графа для ввода пароля выделяется красным, а операция не проводится.

В таких ситуациях достаточно повторно запросить код и ввести его в соответствующую графу. Если было совершено несколько попыток и все ошибочные — необходимо обратиться в техподдержку.

Список ошибок не является полным. Чаще всего неполадки в работе шифруются в цифровом значении. Это удобно, так как при звонке на горячую линию или при общении с техподдержкой в онлайн-режиме достаточно указать код ошибки, чтобы специалисты поняли суть проблемы и постарались ее решить или подсказали клиенту пути ее устранения.

При копировании файлов (особенно файлов больших размеров) с компьютеров Mac на внешние или сетевые диски с другой, чем в Mac файловой системой, могут возникать ошибки вида:

Finder не может завершить операцию, так как некоторые данные в «XXXX» не удалось прочитать или записать.
(Код ошибки -36)

Причина может крыться в так называемых dot-файлах (имеют название вида «.имяисходного_файла.расширение»), которые файловая система Mac использует для хранения специальных дополнительных атрибутов файлов.

Решением проблемы может стать использование утилиты dot_clean, которая удаляет dot-файлы, сливая их воедино:

  1. Необходимо запустить Терминал.
  2. В окне Терминала надо ввести команду dot_clean и поставить пробел после неё (Enter пока нажимать не надо).
  3. В окно Терминала надо мышкой перетащить директорию, в которой находится проблемный файл, чтобы в командной строке появился путь к ней.
  4. Теперь можно запустить получившуюся команду на выполнение и дождаться её завершения.

Сбербанк Онлайн является надежный и удобным сервисом, которым ежедневно пользуется множество россиян, но даже в его работе бывают появляются ошибки (особенно в мобильном приложении), поэтому многим клиентам банка будет полезно узнать, какие есть коды ошибок в Сбербанк Онлайн, что они означают и как можно избавиться от этих ошибок.

Наиболее популярные коды ошибок в Сбербанк Онлайн

Большинство ошибок при работе с онлайн банкингом Сбербанк Онлайн возникает на мобильных устройствах, независимо от их операционной системы. Сами же ошибки могут возникать, как по вине пользователя, так и по вине сбоев в работе телефона, других приложений или приложения Сбербанк Онлайн:

  • Ошибка: внутренняя ошибка сервера. Работа на стороне сервиса Сбербанк Онлайн. Для решения этой ошибки достаточно подождать 10-20 минут и повторить процедуру заново.
  • Код ошибки: от 01-01 до 01-05 и 20-01 «Неполадки с интернетом». Возникают при проблеме с интернет соединением (незащищенное соединение, работает с перебоем или неправильно). Для решения таких ошибок необходимо сменить интернет соединение (например, переключиться с мобильного интернета на Wi-Fi, если есть подходящая точка доступа рядом) и повторить предыдущие операции заново.
  • Код ошибки: 10-04. Технический сбой в работе приложения при попытке входа за границей. В данном случае может помочь вход в приложение через VPN сервис со сменой IP (нужно выбрать Россия при смене IP).
  • Код ошибки: 30-02 и 60-02 «Ошибка подключения». Проблема в работе интернета или приложения Сбербанк Онлайн. Для решения данной ситуации можно попробовать переустановить приложение Сбербанка (обновить до последней версии), а также изменить точку доступа к сети интернет. Последний вариант перезагрузить телефон и если проблема останется, обратиться в службу поддержки банка.
  • Код ошибки: 24. Возникает при установке приложения Сбербанк Онлайн на мобильный телефон на операционной системе Андроид. Чтобы исправить эту проблему необходимо удалить старую версию приложения, если она была установлена, а также почистить память телефона от остатков файлов после её удаления (к примеру, программой CCleaner или вручную).
  • Код ошибки: 910 и 941. Возникает при установке приложения Сбербанк Онлайн на телефоны с OS Android из-за проблемы соединения телефона с серверами Play Market (магазин приложения для данной платформы). Для решения этой проблемы можно почистить кэш Плей Маркета, а также изменить вид интернет соединения (например, с мобильного интернет соединения переключиться на Wi-Fi).
  • Код ошибки: 1001. Отображается в приложении Сбербанк Бизнес Онлайн при неправильном заполнении платежного поручения. Чтобы исправить эту ошибку необходимо заново корректно заполнить платежное поручение и повторить операцию.
  • Код ошибки: 1003. Ошибка возникает, если на устройстве, на котором работает приложение Сбербанк Онлайн неправильно выставлены дата, время и часовой пояс. Исправить эту ошибку можно выставив правильные настройки в телефоне или ПК.
  • Код ошибки: 1004. Ошибка появляется, если неправильно ввести логин или пароль при входе в приложение. Для решения проблемы достаточно заново пройти авторизацию, внимательно введя правильный логин и пароль от Сбербанк Онлайн.
  • Код ошибки: 1005. Эта ошибка возникает на 2м этапе авторизации в приложении Сбербанк Онлайн, если неправильно введен код. Чтобы исправить ситуацию, необходимо ввести правильный код для авторизации.
  • Код ошибки: 1009. Ошибка авторизации в приложении при попытке входе в него за пределами РФ. Для решения проблемы необходимо сменить IP через VPN сервис (нужно выбрать Россия при смене IP).
  • Код ошибки: 1200. Ошибка при авторизации в приложении Сбербанк Онлайн (возникает при некачественном интернет соединении в мобильном телефоне). Решить проблему можно исправив ошибки в интернет соединении или выбрав другую точку доступа к сети интернет с мобильного телефона, а также обновив приложение Сбербанк Онлайн (если доступно новое обновление).

Существуют и другие коды ошибок при установке приложение Сбербанк Онлайн на мобильный телефон (на операционных системах Android — Андроид или iOS – иОС) или во время работы приложения (авторизации, проведении оплаты или переводов и т.д.) решить которые можно используя универсальные советы, перечисленные ниже или обратившись в техническую поддержку Сбербанка.

Что делать, если появляется ошибка в Сбербанк Онлайн (универсальные советы)?

  • Если ошибки возникают при установке или обновлении приложения Сбербанк Онлайн на мобильном телефоне (смартфоне), то перед установкой нового приложения рекомендуется удалить предыдущую версию, а также почистить телефон от файлов старого приложения (к примеру, можно использовать бесплатную программу CCleaner, которая быстро чистит телефон от файлов удаленных приложений).
  • При входе в мобильное приложение за границей, если возникают ошибки, можно попробовать использовать VPN (для смены IP адреса).
  • Блокировка приложения Сбербанк Онлайн антивирусом (во время установки или работы приложения антивирусная программа, установленная на ПК или телефоне начинает блокировать его). В таком случае достаточно добавить приложение Сбербанк Онлайн в доверенные в антивирусе (или в список исключений), или же – временно отключить антивирус.
  • Одной из самых банальных ошибок, возникающих при установке приложения Сбербанк Онлайн, которую легко можно решить является настройка точного времени и даты в мобильном телефоне, а также выбор часового пояса.
  • Частая причина появления ошибок – некачественное интернет соединение (незащищенное соединение, медленный интернет, перепои в работе интернет соединения).

В заключение к этой статье можно отметить, что ошибки в приложении Сбербанк Онлайн (при установке, входе в приложение или работе в нем) могут появиться на экране телефона у каждого пользователя, поэтому важно не паниковать и используя простые инструкции из этой статьи сразу устранять проблемы возникновения данных ошибок. Свои отзывы и полезные советы, что делать, если появляются ошибки в Sberbank Online (на телефоне или ПК), а также какие еще есть коды ошибок, оставляем в комментариях к этой статье и делимся ей в социальных сетях, если она была Вам полезна.

Автор статьи, в прошлом заместитель начальника отдела по работе с клиентами в банке. В текущий момент аналитик, инвестор и индивидуальный предприниматель. Помогаю другим достигать финансовый грамотности и правильно распоряжаться своими средствами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *