обмен УТ 10.3 БП 3.0
Показывать по
10
20
40
сообщений
- 1
- 2
20.01.2016
11:29
#1
УТ 10.3.35.1
БП 3.0.43.52
правила обмена в УТ загружены из комплекта обновления БП,
после обновления на эти релизы при обмене:
Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = Контрагенты
ТипОбъекта = Контрагент
Объект = "..."
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Получение элемента по индексу для значения не определено
в чем может быть проблема?
код из обработчика:
Если Не Объект.ЭтоГруппа И Не ЗначениеЗаполнено(Объект.СтранаРегистрации) Тогда
Объект.СтранаРегистрации = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.СтраныМира.Россия");
КонецЕсли;
Если Объект.ИсторияКПП.Количество() = 1 Тогда
// Если запись в истории КПП одна, то считается, что изменений нет
// и значение КПП нужно определять из данных объекта.
Объект.ИсторияКПП.Очистить();
ИначеЕсли Объект.ИсторияКПП.Количество() > 1 Тогда
// Первая запись в истории должна иметь пустую дату
Объект.ИсторияКПП.Сортировать("Период");
Объект.ИсторияКПП[0].Период = '00010101';
// Последняя запись в истории всегда должна соответствовать КПП в объекте
Справочники.Контрагенты.УстановитьАктуальноеЗначениеИсторииКПП(Объект.КПП, Объект.ИсторияКПП);
КонецЕсли;
РаботаСДоговорамиКонтрагентовБП.УстановитьОсновнойДоговорКонтрагента(ПараметрыОбъекта["ОсновнойДоговорКонтрагента"]);
БП 3.0.43.52
правила обмена в УТ загружены из комплекта обновления БП,
после обновления на эти релизы при обмене:
Ошибка в обработчике события ПослеЗагрузкиОбъекта
ИмяПКО = Контрагенты
ТипОбъекта = Контрагент
Объект = "..."
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Получение элемента по индексу для значения не определено
в чем может быть проблема?
код из обработчика:
Если Не Объект.ЭтоГруппа И Не ЗначениеЗаполнено(Объект.СтранаРегистрации) Тогда
Объект.СтранаРегистрации = ОбщегоНазначенияКлиентСервер.ПредопределенныйЭлемент("Справочник.СтраныМира.Россия");
КонецЕсли;
Если Объект.ИсторияКПП.Количество() = 1 Тогда
// Если запись в истории КПП одна, то считается, что изменений нет
// и значение КПП нужно определять из данных объекта.
Объект.ИсторияКПП.Очистить();
ИначеЕсли Объект.ИсторияКПП.Количество() > 1 Тогда
// Первая запись в истории должна иметь пустую дату
Объект.ИсторияКПП.Сортировать("Период");
Объект.ИсторияКПП[0].Период = '00010101';
// Последняя запись в истории всегда должна соответствовать КПП в объекте
Справочники.Контрагенты.УстановитьАктуальноеЗначениеИсторииКПП(Объект.КПП, Объект.ИсторияКПП);
КонецЕсли;
РаботаСДоговорамиКонтрагентовБП.УстановитьОсновнойДоговорКонтрагента(ПараметрыОбъекта["ОсновнойДоговорКонтрагента"]);
Ответили:
пост #2
20.01.2016
13:30
#3
существующий обмен пока не трогаем,
в УТ в Дек2015 г. появилось новое юр.лицо, сейчас в Янв2016 разворачиваю пустую БП 3.0 и из УТ в БП настраиваю совсем новый обмен, соответственно контрагентов в бухгалтерии еще вообще нет
пока в правилах закоментировала последнюю строку:
РаботаСДоговорамиКонтрагентовБП.УстановитьОсновнойДоговорКонтрагента(ПараметрыОбъекта["ОсновнойДоговорКонтрагента"]);
и обмен пошел
в УТ в Дек2015 г. появилось новое юр.лицо, сейчас в Янв2016 разворачиваю пустую БП 3.0 и из УТ в БП настраиваю совсем новый обмен, соответственно контрагентов в бухгалтерии еще вообще нет
пока в правилах закоментировала последнюю строку:
РаботаСДоговорамиКонтрагентовБП.УстановитьОсновнойДоговорКонтрагента(ПараметрыОбъекта["ОсновнойДоговорКонтрагента"]);
и обмен пошел
20.01.2016
13:37
#4
а вот обмен, который уже существовал такие ошибки дает:
при получении данных из УТ:
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(3321)}: Значение не является значением объектного типа (Метаданные)
Если Отправитель.Метаданные().РаспределеннаяИнформационнаяБаза Тогда
и
Не удалось загрузить данные из "%1" (этап анализа данных).
т.е. он совсем перестал работать.
обмен настроен через промежуточный файл (не прямым подключением),
из УТ все выгружается без проблем,
при загрузке в БП выходят две ошибки, которые чуть выше напечала
что же могло произойти, в какую сторону смотреть?????
при получении данных из УТ:
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(3321)}: Значение не является значением объектного типа (Метаданные)
Если Отправитель.Метаданные().РаспределеннаяИнформационнаяБаза Тогда
и
Не удалось загрузить данные из "%1" (этап анализа данных).
т.е. он совсем перестал работать.
обмен настроен через промежуточный файл (не прямым подключением),
из УТ все выгружается без проблем,
при загрузке в БП выходят две ошибки, которые чуть выше напечала
что же могло произойти, в какую сторону смотреть?????
Ответили:
пост #5
, пост #7
, пост #12
20.01.2016
21:12
#5
Ответ на
пост №4
MaryS, В первую очередь стоит проверить версии правил конвертации и регистрации и в УТ и в Бух-е. В идеале они, если типовые,перекрестно должны совпадать с версиями конфигураций например (см. скрин). Само собой, протестить обе БД. При необходимости еще раз обновить их.Не поможет - дальше - смотреть в списке значения по ошибке:
ИмяПКО = Контрагенты
ТипОбъекта = Контрагент
Объект = "..."
Обработчик = ПослеЗагрузкиОбъекта
ОписаниеОшибки = Получение элемента по индексу для значения не определено
возможно в УТ и/или Бух есть безымянные контрагенты или бесхозные договора или незаполненные реквизиты, или подобный косяк типа того, и учитывая эффект от коммента:
РаботаСДоговорамиКонтрагентовБП.УстановитьОсновнойДоговорКонтрагента(ПараметрыОбъекта["ОсновнойДоговорКонтрагента"]);
особо обратить внимание на этот реквизит. ОсновнойДоговорКонтрагента
В списке с реквизитами иногда их хорошо видно - или в стандартном, или отчет какой быстренько сделать или обработкой ГрупповаяОбработкаСправочниковИДокументов - все подойдет.
Несколько сложнее и не всегда дает результат, но как вариант, целевым образом иногда помогает - в отладке, при синхронизации найти значение, которое блочит обмен, например через попытку, возможно станет понятно так, где косяк в данных, если он есть. При этом отрицательный результат - это уже отсыл к правилам. (Понятно, нужно умение пользоваться отладкой, конфигуратором и эл. знание языка, XML и понятия о правилах)
Более продвинутый вариант: В конфигурации "конвертация" загрузить МД УТ и Бух, подсунуть правила и посмотреть, нет ли в них косяков при конвертации объектов, особенно где Вам выкидывает ошибки.
Метод небыстрый, непростой, требует квалификации, достаточной для написания правил, но это - почти последняя инстанция перед веревкой )
Ответили:
пост #6
20.01.2016
22:13
#6
Ответ на
пост №5
Хрюша,правила идентичны.
по поводу ОсновногоДоговора, да Вы правы он есть не у всех Контрагентов, а почему? а потому что в базе УТ два юр.лица, Основной Договор у Контрагента только один, да и не могут оба юр.лица одновременно работать со 100% Контрагентами, так что правила однозначно пришлось подправлять, на скорую руку, для проверки, просто комментированием строки, а так надо условие добавить в код в посте 1.
а по поводу поста 4 есть идеи??
по поводу ошибки:
при получении данных из УТ:
{ОбщийМодуль.ОбменДаннымиСобытия.Модуль(3321)}: Значение не является значением объектного типа (Метаданные)
Если Отправитель.Метаданные().РаспределеннаяИнформационнаяБаза Тогда
и
Не удалось загрузить данные из "%1" (этап анализа данных).
20.01.2016
22:36
#7
Ответ на
пост №4
MaryS, на первый взгляд я бы обратил внимание вот на это: Процедура ПроверитьНаличиеЗапретаЗагрузкиПоДате(ЭлементДанных, ПолучениеЭлемента, Знач Отправитель)
оно там рядом, и поставил бы даты запрета в обоих базах перед выгрузкой в 01 01 0001 то есть в пустую дату. Сталкивался, помогает, но не факт что в этом беда на этот раз. Смущает:
ОбщийМодуль.ОбменДаннымиСобытия.Модуль(3321)}: Значение не является значением объектного типа (Метаданные)
посмотреть бы в отладке, что вообще за значение прилетает там:
Отправитель.Метаданные().РаспределеннаяИнформационнаяБаза
а без этого можно только гадать, например, что сначала не было выгрузки из Бух в УТ, а оно вроде обязательно или желательно должно быть, или что то еще, ну типа звезды не так на небе... )
Ответили:
пост #8
20.01.2016
22:49
#8
Ответ на
пост №7
Хрюша,отладчик мимо пролетает строки 3321...
как правильно пользоваться отладчиком при типовой встроенной синхронизации файловых баз? где бы прочитать, не подскажете?
Ответили:
пост #9
20.01.2016
23:27
#9
Ответ на
пост №8
MaryS,погуглить в поисках мануала ) А вообще-то оно не сложно см. скрин:например:
1. Открываем нужный модуль в конфигураторе
2. 2х лк мыши ставим точки останова
3. Запускаем отладку, затем в режиме 1С толстый - тонкий как получится - запускаем синхронизацию
4. Если по ходу правильно поставили точки (используется код при выполнении синхронизации в вашем случае), интерпретатор остановится на точке и на месте 4 или где то еще рядом (рамка будет панель с функциями просмотра)
5. открываем форму вычисления текущих выражений
6. вводим эту форму интересующее и правее будет кнопка вычислить
7. можно их несколько внизу в табло загнать, если надо
там есть еще несколько полезных функций, например замер производительности, ну и экзотика
самое замечательное, что в окне формы отладки 5 можно просмотреть весь объект в деталях, а также таблицы, структуры
но в данном случае интересно, что за план обмена используется, раз так косячит.
Ответили:
пост #10
20.01.2016
23:50
#10
Ответ на
пост №9
Хрюша,так это обычное использование отладчика,
но именно при синхронизации не останавливается на точке останова на этой строке 3321, думала может есть какая необычность в отладке именно синхронизации...
а план обмена типовой,
обмен настроен из УТ 10.3 в БП3.0 через промежуточный каталог
кто настраивал, когда и как история умалчивает....
попробовала настроить новую синхронизацию с 01.01.2015 прямым подключением, прошел обмен, пару новых тестовых документов тоже попали из УТ в БП, в БП даже оборотка осталась без изменений...видимо так и останется
- 1
- 2
Читают тему
(гостей: 1)