|   |   | 
| 
 | БП 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 | 
        Разобрался с этой проблемой.
 Чтобы загрузить правила из поставки необходимо использовать команду "Загрузить правила", находящуюся на форме списка синхронизаций. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |