Имя: Пароль:
1C
1С v8
Как достать правила из конфигурации
,
0 vqwy
 
06.12.13
19:54
Есть конфа Акселот Управление перевозками. В ней есть правила обмена с БП. Я хочу их выгрузить в файл, чтобы потом глянуть.
В конфе есть модуль для выгрузки правил, более-менее стандартный.

&НаКлиенте
Процедура ВыгрузитьПравила(Команда)
    
    ОбщегоНазначенияКлиент.ПредложитьУстановкуРасширенияРаботыСФайлами();
    
    Если ПодключитьРасширениеРаботыСФайлами() Тогда
        
        // Предложение пользователю выбрать файл правил для сохранения
        Режим = РежимДиалогаВыбораФайла.Сохранение;
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
        РасширениеФайла = НРег(Прав(Запись.ИмяФайлаПравил, 4));
        ИмяФайлаБезРасширения = СтрЗаменить(Запись.ИмяФайлаПравил, РасширениеФайла, "");
        ДиалогОткрытияФайла.ПолноеИмяФайла = ?(ПустаяСтрока(ИмяФайлаБезРасширения), "ПравилаДляОбменаДанными", ИмяФайлаБезРасширения);
        Фильтр = НСтр("ru = 'Файлы правил'") + "(*.xml)|*.xml|"
        + НСтр("ru = 'Архивы ZIP'") + "(*.zip)|*.zip";
        ДиалогОткрытияФайла.Фильтр = Фильтр;
        Если НРег(Прав(Запись.ИмяФайлаПравил, 4)) = ".zip" Тогда
            ДиалогОткрытияФайла.ИндексФильтра = 1;
        Иначе
            ДиалогОткрытияФайла.ИндексФильтра = 0;
        КонецЕсли;
        ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
        ДиалогОткрытияФайла.Заголовок = "Укажите в какой файл выгрузить правила";
        
        // Если указано куда выгружать файл правил - то сохраняем его в указанное место
        Если ДиалогОткрытияФайла.Выбрать() Тогда
            ИмяФайла = СтрЗаменить(ДиалогОткрытияФайла.ПолноеИмяФайла, ДиалогОткрытияФайла.Каталог, "");
            РасширениеФайла = НРег(Прав(ДиалогОткрытияФайла.ПолноеИмяФайла, 4));
            ИмяФайлаБезРасширения = СтрЗаменить(ИмяФайла, РасширениеФайла, "");
            ЭтоАрхив = (РасширениеФайла = ".zip");
            Если ЭтоАрхив Тогда
                АдресВременногоХранилища = ПолучитьАдресВременногоХранилищаАрхиваПравилНаСервере(ИмяФайлаБезРасширения);
                Если ПустаяСтрока(АдресВременногоХранилища) Тогда
                    Возврат;
                Иначе
                    ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
                    ДвоичныеДанные.Записать(ДиалогОткрытияФайла.ПолноеИмяФайла);                
                КонецЕсли;
            Иначе
                АдресВременногоХранилища = ПолучитьНавигационнуюСсылкуНаСервере();
                ПолучитьФайл(АдресВременногоХранилища, ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);
            КонецЕсли;
        Иначе
            Возврат;
        КонецЕсли;
        
    Иначе
        Возврат;
    КонецЕсли;
    
КонецПроцедуры


при выполнении процедуры выдает ошибку
{РегистрСведений.ПравилаДляОбменаДанными.Форма.ФормаЗаписи.Форма(160)}: Ошибка при вызове метода контекста (ПолучитьФайл)
                ПолучитьФайл(АдресВременногоХранилища, ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);
по причине:
Неправильный путь к файлу 'e1c://filev/C/Users/Admin/Documents/AXELOT/TMS2demo/e1cib/data/РегистрСведений.ПравилаДляОбменаДанными.ПравилаXML?ИмяПланаОбмена=%D0%9E%D0%B1%D0%BC%D0%B5%D0%BD%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%9F%D0%B5%D1%80%D0%B5%D0%B2%D0%BE%D0%B7%D0%BA%D0%B0%D0%BC%D0%B820%D0%91%D1%83%D1%85%D0%B3%D0%B0%D0%BB%D1%82%D0%B5%D1%80%D0%B8%D1%8F%D0%9F%D1%80%D0%B5%D0%B4%D0%BF%D1%80%D0%B8%D1%8F%D1%82%D0%B8%D1%8F20&ВидПравил=9b21d8135056f0c54088ec8ffd175112'

Что сделать?)))
1 vqwy
 
06.12.13
19:55
спотыкается на функции ПолучитьФайл(АдресВременногоХранилища, ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);
2 jsmith82
 
06.12.13
19:56
найди где он сохраняет их в папку темп
в момент отладки скопируй файл в другое место
загрузи в конвертацию
3 jsmith82
 
06.12.13
19:57
ДвоичныеДанные.Записать(ДиалогОткрытияФайла.ПолноеИмяФайла);
вот здесь
4 vqwy
 
06.12.13
19:57
до темпа вроде не доходит... или я не там смотрю?
5 jsmith82
 
06.12.13
19:57
а, это не то
6 jsmith82
 
06.12.13
19:58
а хотя может и то, я акселот не знаю
включи мозги
7 vqwy
 
06.12.13
20:00
)) спасибо, попробую
8 jsmith82
 
06.12.13
20:01
нет, не то
9 jsmith82
 
06.12.13
20:01
у тебя ошибка до записи файла
10 jsmith82
 
06.12.13
20:03
а нет, после
короче, я гоню
юзай (3)
11 zmaximka
 
06.12.13
21:30
просто сохрани в файл макет правила обмена из макета нужного плана обмена.
12 Рэйв
 
06.12.13
21:47
(0)Да в макете он лежит. Сохрани на диск,подними в КД и ковыряйся на здоровье
Закон Брукера: Даже маленькая практика стоит большой теории.