Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 сен 2021, 19:19

Обход полученных запросов. Метод ПолучитьОбъект.

Автор reznik911, 09 янв 2017, 10:29

0 Пользователей и 1 гость просматривают эту тему.

reznik911

Добрый день уважаемые! Есть справочники (Спр) Банки и Банковские счета (БС). В справочник Банки занесли список банков по городам (БИК банков совпадают, разнятся только названия и города). Теперь решили оставить по одному банку из всех списков, чтобы плагиата не было. А БС по всем то уже занесли, есть ссылки. Помечаем на удаление банки, оставляем по одному из каждого вида.
Написал внешнюю обработку. На форме обработки первый запрос получает из Спр Банки все записи не помеченные на удаление, которых оставили. Второй запрос получает все те записи из Спр БС ,у которых реквизит Банк помечен на удаление. Цель: заменить в спр БС реквизиты банк на те банки из СПр Банки не помеченные на удаление. После того как ссылки перебьются на новые, стандартной обработкой удалить лишние записи.
Пока удается получить из запросов записи, а найти по БИК и записать Объекту банковские счета новое значение не получается. Конечный цикл у меня неправильно перебирает и методом получить объект не выходит. Надеюсь на какие ни будь направления где что искать и что не правильно по сути

&НаКлиенте
Процедура ИзменитьСсылки(Команда)
   
ИзменитьСсылкиНаСервере();
   
КонецПроцедуры

&НаСервере
Процедура ИзменитьСсылкиНаСервере()
   
   //Условие: выбираем тех, которые не помечены на удаление
   
     Запрос = Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
                   |   Банки.Ссылка,
                   |   Банки.БИК КАК БИК
                   |ИЗ
                   |   Справочник.Банки КАК Банки
               |ГДЕ
               |   НЕ Банки.ПометкаУдаления  ";

               
         ТаблицаЗапросаБанки = Запрос.Выполнить().Выбрать();
         
         Пока ТаблицаЗапросаБанки.Следующий() Цикл
            
         КонецЦикла;


   // Выбрать тех, где поле банк заполнено тем значением, который помечен на удаление      
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   БанковскиеСчета.Ссылка КАК СсылкаНаСпр,
                  |   БанковскиеСчета.Банк,
                  |   БанковскиеСчета.БИКБанка КАК БИКБанка
                  |ИЗ
                  |   Справочник.БанковскиеСчета КАК БанковскиеСчета
                  |ГДЕ
                  |   БанковскиеСчета.Банк.ПометкаУдаления";

          ТаблицаЗапросаБС = Запрос.Выполнить().Выбрать();


        Пока ТаблицаЗапросаБС.Следующий() Цикл
                    
        КонецЦикла;
       
        Для каждого Строка из ТаблицаЗапросаБанки Цикл
          
           Если  ТаблицаЗапросаБС.БИКБанка = ТаблицаЗапросаБанки.БИК Тогда
             
                БанковкийСчет = ТаблицаЗапросаБС.СсылкаНаСпр.ПолучитьОбъект();
               БанковкийСчет.Банк = Строка;
                 БанковкийСчет.Записать();    
           КонецЕсли;
          КонецЦикла;

КонецПроцедуры;

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск