|
Ошибка при синхронизации БД через УТ | ☑ | ||
---|---|---|---|---|
0
kleminaV
04.04.21
✎
00:10
|
Здравствуйте. Помогите разобраться с ошибкой
Событие: Отправка. ПОД: Справочник_ШтрихкодыНоменклатуры_Отправка. ПКО: Справочник_ШтрихкодыНоменклатуры_Отправка. Объект: Регистр сведений набор записей: Штрихкоды, РегистрСведенийНаборЗаписей.Штрихкоды. {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(572)}: Ошибка при вызове метода контекста (Проверить) ОбъектXDTO.Проверить(); по причине: Ошибка проверки данных XDTO: Структура объекта '/НоменклатураОтбор' не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4}КлючевыеСвойстваНоменклатура Проверка свойства 'Наименование': форма: Элемент имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.4}Наименование тип: {http://www.w3.org/2001/XMLSchema}string Отсутствует обязательное свойство |
|||
1
hhhh
04.04.21
✎
00:13
|
(0) ну, пустое наименование где-то. Читать-то умеете?
|
|||
2
Garykom
гуру
04.04.21
✎
00:20
|
(1) проблема в том что разработчики вот этой уйни не подумали что надо бы подобные ошибки нормально обрабатывать
это же идиотизм что одна ошибка в данных (несущественная по сути) и обмен совсем падает |
|||
3
kleminaV
04.04.21
✎
12:18
|
Читать умею, я новичок. Остальные ошибки нашла и устранила. А эту не найду: что пустое наименованием Справочниках штрихкодов, или какой- то номенклатуре штрих-код не присвоен? Как это вычислить?
|
|||
4
hhhh
04.04.21
✎
13:51
|
(3) наверно сортировка спасет мать русской демократии. Открыть справочник, задать сортировку по наименованию, элемент с пустым наименованием будет в самом верху.
ну или обработка Групповое изменение реквизитов, которая в администрировании. Там отбор задать на пустое наименование. Все пустые элементы и высветятся. |
|||
5
Garykom
гуру
04.04.21
✎
16:35
|
(4) Не не скажи какой именно справочник открыть чтобы пустое наименование искать ))
|
|||
6
Chameleon1980
04.04.21
✎
17:27
|
(5) ну все слова еще раз перечитать и станет понятно
|
|||
7
Garykom
гуру
04.04.21
✎
17:56
|
(6) А вот и хрен
Может быть как у Номенклатуры так и у любого из реквизитов |
|||
8
kleminaV
04.04.21
✎
18:39
|
Всем спасибо за остроумные и ценные советы, ошибку я не нашла
|
|||
9
Garykom
гуру
04.04.21
✎
18:41
|
(8) И где ошибка была?
И самый сложный вопрос а как сделать чтобы обмен в будущем не падал при подобных ошибках а просто выводил их и пропускал объекты? |
|||
10
kleminaV
04.04.21
✎
19:18
|
Не нашла я ошибку, я начинающий бухгалтер, не программист
|
|||
11
kleminaV
06.04.21
✎
12:45
|
Вот текст ошибки из конфигуратора, может кто подскажет в каком элементе искать
Процедура ВыгрузкаОбъектаВыборки(КомпонентыОбмена, Объект, ПравилоОбработки = Неопределено) Экспорт ЗаписьXML = КомпонентыОбмена.ФайлОбмена; Если ТипЗнч(Объект) <> Тип("Структура") Тогда ОбъектМетаданныхТекущий = Объект.Метаданные(); Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(ОбъектМетаданныхТекущий) Тогда ТекОбъект = Объект.Ссылка; Иначе ТекОбъект = Объект; КонецЕсли; КомпонентыОбмена.ВыгруженныеОбъекты.Добавить(ТекОбъект); Попытка ПравилоОбработки = ПОДПоОбъектуМетаданных(КомпонентыОбмена, ОбъектМетаданныхТекущий); Исключение ТекстОшибки = Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Событие: %1. |Объект: %2. | |%3.'"), КомпонентыОбмена.НаправлениеОбмена, ПредставлениеОбъектаДляПротокола(ТекОбъект), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СокрЛП(ТекстОшибки)); Возврат; КонецПопытки; Иначе КомпонентыОбмена.ВыгруженныеОбъекты.Добавить(Объект); КонецЕсли; // Отработка ПОД ИспользованиеПКО = Новый Структура; Для Каждого ИмяПКО Из ПравилоОбработки.ИспользуемыеПКО Цикл ИспользованиеПКО.Вставить(ИмяПКО, Истина); КонецЦикла; Если ЗначениеЗаполнено(ПравилоОбработки.ПриОбработке) Тогда ПриОбработкеПОД( КомпонентыОбмена, ПравилоОбработки, Объект, ИспользованиеПКО); КонецЕсли; // Отработка ПКО НесколькоПКО = (ПравилоОбработки.ИспользуемыеПКО.Количество() > 1); Для Каждого ТекущееПКО Из ИспользованиеПКО Цикл Попытка Если Не ТекущееПКО.Значение Тогда // Если правил конвертации несколько, и некоторые из них не используются - // необходимо выгрузить удаление объекта на случай если ранее он был выгружен по этим правилам. Если НесколькоПКО Тогда ЕстьКолонкаОчисткаДанных = КомпонентыОбмена.ПравилаОбработкиДанных.Колонки.Найти("ОчисткаДанных") <> Неопределено; Если Не ЕстьКолонкаОчисткаДанных Или ПравилоОбработки.ОчисткаДанных Тогда ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО"); ВыгрузитьУдаление(КомпонентыОбмена, Объект.Ссылка, ПравилоКонвертации); КонецЕсли; КонецЕсли; Продолжить; КонецЕсли; // 1. Поиск правила конвертации. ПравилоКонвертации = КомпонентыОбмена.ПравилаКонвертацииОбъектов.Найти(ТекущееПКО.Ключ, "ИмяПКО"); // 2. Конвертируем Данные в Структуру по правилам конвертации. ДанныеXDTO = ДанныеXDTOИзДанныхИБ(КомпонентыОбмена, Объект, ПравилоКонвертации, Неопределено); // 3. Конвертируем Структуру в ОбъектXDTO. СсылкиИзОбъекта = Новый Массив; ОбъектXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ДанныеXDTO, ПравилоКонвертации.ТипXDTO,,СсылкиИзОбъекта); ОбъектXDTO.Проверить(); Если КомпонентыОбмена.ЭтоОбменЧерезПланОбмена Тогда Для Каждого ЗначениеСсылки Из СсылкиИзОбъекта Цикл Если КомпонентыОбмена.ВыгруженныеОбъекты.Найти(ЗначениеСсылки) = Неопределено И ВыгружатьОбъектПоНеобходимости(КомпонентыОбмена, ЗначениеСсылки) Тогда Если Не РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах.ОбъектЕстьВРегистре( ЗначениеСсылки, КомпонентыОбмена.УзелКорреспондента) Тогда ОбъектВыгружаемыйПоСсылке = Неопределено; Если ОбщегоНазначения.СсылкаСуществует(ЗначениеСсылки) Тогда ОбъектВыгружаемыйПоСсылке = ЗначениеСсылки.ПолучитьОбъект(); КонецЕсли; Если ОбъектВыгружаемыйПоСсылке <> Неопределено Тогда ВыгрузкаОбъектаВыборки(КомпонентыОбмена, ОбъектВыгружаемыйПоСсылке); КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Добавить(ЗначениеСсылки); РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах.ДобавитьОбъектВФильтрРазрешенныхОбъектов( ЗначениеСсылки, КомпонентыОбмена.УзелКорреспондента); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; // 4. Записываем ОбъектXDTO в XML-файл. ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO); Исключение ТекстОшибки = Символы.ПС + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Событие: %1. |ПОД: %2. |ПКО: %3. |Объект: %4. | |%5'"), КомпонентыОбмена.НаправлениеОбмена, ПравилоОбработки.Имя, ТекущееПКО.Ключ, ПредставлениеОбъектаДляПротокола(Объект), ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписатьВПротоколВыполнения(КомпонентыОбмена, СокрЛП(ТекстОшибки)); |
|||
12
vicof
06.04.21
✎
12:51
|
А может позвать программиста?
|
|||
13
Garykom
гуру
06.04.21
✎
13:21
|
(12) программист денег стоит
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |