8.х Помогите написать обработку которая изменит часть текста в строке справочника.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем a040985, 9 авг 2017.

  1. TopicStarter Overlay
    a040985
    Offline

    a040985

    Регистрация:
    9 авг 2017
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!

    Помогите написать обработку которая изменит часть текста в строке справочника.

    Я не специалист по 1С! Написал вот такую обработку:

    __________________

    Код:
    Выборка = Справочники.ХранилищеДополнительнойИнформации.Выбрать();
    
    Пока Выборка.Следующий() Цикл
    
      Поле = Выборка.ИмяФайла;
    
      Если
    
      Найти(Поле,"D:\Admin\Base\YTMain\images") = Истина Тогда
    
      Переменная = СтрЗаменить (Поле, "D:\Admin\Base\YTMain\images", "E:\backup\clouds\onlinemarket\images");
    
      Переменная1 = Выборка.ПолучитьОбъект();
    
        Переменная1.ИмяФайла = Переменная;
    
      Переменная1.Записать();
    
    КонецЕсли;
    
    КонецЦикла;
    __________________

    Она вроде работает нормально, но ооочень долго.

    Как написать более правильный и быстрый код?
  2. TopicStarter Overlay
    a040985
    Offline

    a040985

    Регистрация:
    9 авг 2017
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Получился такой код

    Код:
    Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |    ХранилищеДополнительнойИнформации.Ссылка
        |ИЗ
        |    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
        |ГДЕ
        |    ХранилищеДополнительнойИнформации.ИмяФайла ПОДОБНО &Наименование";
        Запрос.УстановитьПараметр("Наименование","%D:\admin\baseSQL%");
        Выборка = Запрос.Выполнить().Выбрать();
      
        Пока Выборка.Следующий() Цикл
          ТекОбъект = Выборка.Ссылка.ПолучитьОбъект();
          ТекОбъект.ОбменДанными.Загрузка = Истина;
          ТекОбъект.ИмяФайла = СтрЗаменить(ТекОбъект.ИмяФайла,"D:\admin\baseSQL", "E:\backup\clouds");
          ТекОбъект.Записать();
        КонецЦикла;

Поделиться этой страницей