![]() |
|
БП 3.0. Ошибка при загрузке правил обмена из файла | ☑ | ||
---|---|---|---|---|
0
es3000
16.01.15
✎
09:50
|
В связке работают БП 3.0 + УТ 11.
Вчера поставил последние обновления и теперь надо обновить правила обмена. Самая последняя версия правил - в поставке УТ. Поэтому я попытался загрузить эти правила в план обмена в БП. Делаю все как обычно: выбираю вариант "из файла", указываю файл "Правила обмена.zip", нажимаю "Загрузить". Но 1С-ка почему-то не грузит и выдает ошибку: "При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами." Что это значит? Может быть 1С как-то переделала загрузку правил? |
|||
1
es3000
16.01.15
✎
09:56
|
Забыл сказать...
Я также пробовал распаковать из архива с правилами и загрузить отдельно файл ExchangeRules.xml - тоже выдается ошибка. Но уже другая: "{РегистрСведений.ПравилаДляОбменаДанными.МодульМенеджера(162)}: Значение не является значением объектного типа (Записать) ДвоичныеДанныеКорреспондента.Записать(ИмяВременногоФайлаКорреспондента);" |
|||
2
Поpyчик-4
16.01.15
✎
10:11
|
(0) Вертайте конфы взад. Работало ведь, на зачем было трогать.
|
|||
3
es3000
16.01.15
✎
10:17
|
(2) ну обновления ставить надо
|
|||
4
varyag
16.01.15
✎
10:23
|
(0) а правила обмена не в xml ли должны быть?
|
|||
5
varyag
16.01.15
✎
10:24
|
+ (4) Не увидел (1)
|
|||
6
varyag
16.01.15
✎
10:27
|
Смотри какой тип у ДвоичныеДанныеКорреспондента в отладчике?
|
|||
7
es3000
16.01.15
✎
10:48
|
(4),(5) да сами правила в формате xml, но они в поставке обновления запакованы в файл "Правила обмена.zip" и раньше именно zip указывали при загрузке правил в план обмена
|
|||
8
es3000
16.01.15
✎
11:05
|
Посмотрел код.
В коде проверяется чтобы в zip-архиве был либо один либо два файла. Это странно, ведь раньше в zip-файле всегда было три файла: -правила обмена -правила обмена корреспондента -правила регистрации Там такой код: Если ЭтоПравилаКонвертации Тогда СписокРаспакованныхФайлов.Количество() = 2 Тогда Если СписокРаспакованныхФайлов[0].Имя = "ExchangeRules.xml" И СписокРаспакованныхФайлов[1].Имя ="CorrespondentExchangeRules.xml" Тогда ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя); ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя); ИначеЕсли СписокРаспакованныхФайлов[1].Имя = "ExchangeRules.xml" И СписокРаспакованныхФайлов[0].Имя ="CorrespondentExchangeRules.xml" Тогда ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[1].ПолноеИмя); ДвоичныеДанныеКорреспондента = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя); Иначе НСтрока = НСтр("ru = 'Имена файлов в архиве не соответствуют ожидаемым. Ожидаются файлы: |ExchangeRules.xml - правила конвертации для текущей программы; |CorrespondentExchangeRules.xml - правила конвертации для программы-корреспондента.'"); ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ); КонецЕсли; // Старый формат ИначеЕсли СписокРаспакованныхФайлов.Количество() = 1 Тогда НСтрока = НСтр("ru = 'В архиве найден один файл правил конвертации. Ожидаемое количество файлов в архиве - два. Ожидаются файлы: |ExchangeRules.xml - правила конвертации для текущей программы; |CorrespondentExchangeRules.xml - правила конвертации для программы-корреспондента.'"); ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ); // В архиве оказалось несколько файлов, хотя должен быть один - отказываемся от загрузки. ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда НСтрока = НСтр("ru = 'При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.'"); ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ); КонецЕсли; Иначе // Закладываем полученный файл правил обратно в двоичные данные. Если СписокРаспакованныхФайлов.Количество() = 1 Тогда ДвоичныеДанные = Новый ДвоичныеДанные(СписокРаспакованныхФайлов[0].ПолноеИмя); // В архиве оказалось несколько файлов, хотя должен быть один - отказываемся от загрузки. ИначеЕсли СписокРаспакованныхФайлов.Количество() > 1 Тогда НСтрока = НСтр("ru = 'При распаковке архива найдено несколько файлов. Должен быть только один файл с правилами.'"); ОбменДаннымиСервер.СообщитьОбОшибке(НСтрока, Отказ); КонецЕсли; КонецЕсли; |
|||
9
es3000
19.01.15
✎
10:30
|
Разобрался с этой проблемой.
Чтобы загрузить правила из поставки необходимо использовать команду "Загрузить правила", находящуюся на форме списка синхронизаций. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |