1С8. Как выгрузить все внешние обработки в файлы на диск.

Выгружаем все внешние обработки из справочника "ВнешниеОбработки" на диск.


Функция ПолучитьРезультатЗапросаВнешниеОбработки()

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВнешниеОбработки.Ссылка
                   |ИЗ
                   |    Справочник.ВнешниеОбработки КАК ВнешниеОбработки
                   |ГДЕ
                   |    ВнешниеОбработки.ЭтоГруппа = ЛОЖЬ
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ВнешниеОбработки.Код";
    Результат = Запрос.Выполнить();

    //Выборка = Результат.Выбрать();
    //Пока Выборка.Следующий() Цикл
    //    //<Код>
    //КонецЦикла;

    Возврат Результат;

КонецФункции //ПолучитьРезультатЗапросаВнешниеОбработки

// 1. Формируем выборку (Внешних обработок) запросом
// 2. Выгружаем выборку
Функция ВыгрузитьВнешниеОбработки()

    Результат = ПолучитьРезультатЗапросаВнешниеОбработки();

    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Код = Выборка.Ссылка.Код ;
        сообщить("Код:" + Код + " " + строка(Выборка.Ссылка));
        ВыгрузитьОбработку(Код);
    КонецЦикла;

    Возврат Результат;

КонецФункции // ВыгрузитьВнешниеОбработки()

// По коду найдем обработку, двоичные данные которой будем выгружать в файл на диск
Функция ВыгрузитьОбработку(Код)  

    ВнешняяОбработкаСсылка = Справочники.ВнешниеОбработки.НайтиПоКоду(Код,Ложь); 

    Если ВнешняяОбработкаСсылка = Неопределено Тогда         
        Возврат 0;
    КонецЕсли;

    Если ВнешняяОбработкаСсылка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет Тогда         
        расширениеФайла = ".erf"; //
    иначе
        расширениеФайла = ".epf"; //
    КонецЕсли;


    ВнешняяОбработкаОбъект = ВнешняяОбработкаСсылка.ПолучитьОбъект();    
    ВнешняяОбработкаИмя = УниверсальныеМеханизмы.УдалитьЗапрещенныеСимволыИмени(строка(ВнешняяОбработкаОбъект));

    ИмяФайлаEpf = "e:\Temp\" + ВнешняяОбработкаИмя + расширениеФайла; //        

    ДвоичныеДанные = ВнешняяОбработкаОбъект.ХранилищеВнешнейОбработки.Получить();  

    ДвоичныеДанные.Записать(ИмяФайлаEpf);

    сообщить("ВыгрузитьОбработку() :" + 
        " код: " + Код  +                               
        " (" + ВнешняяОбработкаСсылка.КомментарийКФайлуИсточнику + ")" + 
        " ИмяФайлаEpf: " + ИмяФайлаEpf  +        
        " - записана [-Ok!]"
        );     

    возврат ВнешняяОбработкаСсылка;      

КонецФункции


ВыгрузитьВнешниеОбработки(); // main()

Скачать обработку (архив RAR)




Рекламный блок:

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

Доработка и сопровождение 1С:

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Пишите: j008@j008.ru

Звоните: 8 916 710 83 51 Ольга