CRM СТАНДАРТ: загрузка продаж из БП - ошибка или нет?

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
CRM СТАНДАРТ: загрузка продаж из БП - ошибка или нет?
 
Добрый день!

Столкнулся в версии CRM СТАНДАРТ 1.0.10.2, сейчас смотрю 2.0.1.1 - ситуация не изменилась:

- в CRM по одному контрагенту заведено 2 продажи, одна с номенклатурой А, другая - с номенклатурой Б;
- из БП8 выгружается реализация этому контрагенту с номенклатурой Б;
- при автоматическом подборе продаж в обработке "Загрузка взаиморасчетов из 1С:Бухгалтерия" соответствующая продажа не подставляется.

Смотрю код процедуры ВыполнитьСопоставлениеПродаж() в форме ФормаРаспределения:

Код
      Пока Выборка.Следующий() Цикл // ------------ закладка 1
         Если ЗначениеЗаполнено(Выборка.Ссылка.Описание) И (Найти(Выборка.Ссылка.Описание, СтрокаРеализации.ИдентификаторДокумента)>0) Тогда
            СсылкаНаДокумент = Выборка.Ссылка;
            Прервать;
         КонецЕсли;
      КонецЦикла;
      
      Если СсылкаНаДокумент = Неопределено Тогда
         НеСоответствует = Ложь; // ----- закладка 4
         Пока Выборка.Следующий() Цикл // -------- закладка 2
            ВыборткаПоТЧ = Выборка.Выбрать();
            Пока ВыборткаПоТЧ.Следующий() Цикл
               СтрокаТЗ = ТаблицаРеализации.Найти(ВыборткаПоТЧ.Номенклатура, "Номенклатура");
               Если СтрокаТЗ = Неопределено Тогда
                  НеСоответствует = Истина; // ------------- закладка 3
                  Прервать;
               КонецЕсли;
            КонецЦикла;
            
            Если НЕ НеСоответствует Тогда
               СсылкаНаДокумент = Выборка.Ссылка;
               Прервать;
            КонецЕсли;
         КонецЦикла;
      КонецЕсли;


1) Если продажа не найдена по идентификатору в первом цикле (закладка 1), то ко второму циклу (закладка 2) следующего элемента выборки никогда не будет - вероятно, перед вторым циклом должен быть сброс выборки?

2) Если ставим сброс выборки - второй цикл начинает работать, но: если запрос выбрал несколько продаж по контрагенту, и в первой из них будет не подходящая номенклатура, но флаг "НеСоответствует" будет поднят (закладка 3) и никогда не сброшен - то есть остальные продажи (даже подходящие) будут отброшены. Вероятно, необходимо переставить сброс флага (закладка 4) ниже внутрь цикла?
 
Добрый день.

В ближайшем релизе Стандарта 2.0 это поправим.

Для самотстоятельного исправления, код надо привести к виду:

Код
            
      Если СсылкаНаДокумент = Неопределено Тогда
         
         Пока Выборка.Следующий() Цикл
           НеСоответствует = Ложь; 
            ВыборткаПоТЧ = Выборка.Выбрать();
            Пока ВыборткаПоТЧ.Следующий() Цикл
               СтрокаТЗ = ТаблицаРеализации.Найти(ВыборткаПоТЧ.Номенклатура, "Номенклатура");
               Если СтрокаТЗ = Неопределено Тогда
                  НеСоответствует = Истина;
                  Прервать;
               КонецЕсли;
            КонецЦикла;
            
            Если НЕ НеСоответствует Тогда
               СсылкаНаДокумент = Выборка.Ссылка;
               Прервать;
            КонецЕсли;
         КонецЦикла;
      КонецЕсли;

Изменено: Кучеров Андрей - 18.02.2014 10:06:22
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С