Добрый день!
Столкнулся в версии CRM СТАНДАРТ 1.0.10.2, сейчас смотрю 2.0.1.1 - ситуация не изменилась:
- в CRM по одному контрагенту заведено 2 продажи, одна с номенклатурой А, другая - с номенклатурой Б;
- из БП8 выгружается реализация этому контрагенту с номенклатурой Б;
- при автоматическом подборе продаж в обработке "Загрузка взаиморасчетов из 1С:Бухгалтерия" соответствующая продажа не подставляется.
Смотрю код процедуры ВыполнитьСопоставлениеПродаж() в форме ФормаРаспределения:
1) Если продажа не найдена по идентификатору в первом цикле (закладка 1), то ко второму циклу (закладка 2) следующего элемента выборки никогда не будет - вероятно, перед вторым циклом должен быть сброс выборки?
2) Если ставим сброс выборки - второй цикл начинает работать, но: если запрос выбрал несколько продаж по контрагенту, и в первой из них будет не подходящая номенклатура, но флаг "НеСоответствует" будет поднят (закладка 3) и никогда не сброшен - то есть остальные продажи (даже подходящие) будут отброшены. Вероятно, необходимо переставить сброс флага (закладка 4) ниже внутрь цикла?
Столкнулся в версии CRM СТАНДАРТ 1.0.10.2, сейчас смотрю 2.0.1.1 - ситуация не изменилась:
- в CRM по одному контрагенту заведено 2 продажи, одна с номенклатурой А, другая - с номенклатурой Б;
- из БП8 выгружается реализация этому контрагенту с номенклатурой Б;
- при автоматическом подборе продаж в обработке "Загрузка взаиморасчетов из 1С:Бухгалтерия" соответствующая продажа не подставляется.
Смотрю код процедуры ВыполнитьСопоставлениеПродаж() в форме ФормаРаспределения:
Код |
---|
Пока Выборка.Следующий() Цикл // ------------ закладка 1 Если ЗначениеЗаполнено(Выборка.Ссылка.Описание) И (Найти(Выборка.Ссылка.Описание, СтрокаРеализации.ИдентификаторДокумента)>0) Тогда СсылкаНаДокумент = Выборка.Ссылка; Прервать; КонецЕсли; КонецЦикла; Если СсылкаНаДокумент = Неопределено Тогда НеСоответствует = Ложь; // ----- закладка 4 Пока Выборка.Следующий() Цикл // -------- закладка 2 ВыборткаПоТЧ = Выборка.Выбрать(); Пока ВыборткаПоТЧ.Следующий() Цикл СтрокаТЗ = ТаблицаРеализации.Найти(ВыборткаПоТЧ.Номенклатура, "Номенклатура"); Если СтрокаТЗ = Неопределено Тогда НеСоответствует = Истина; // ------------- закладка 3 Прервать; КонецЕсли; КонецЦикла; Если НЕ НеСоответствует Тогда СсылкаНаДокумент = Выборка.Ссылка; Прервать; КонецЕсли; КонецЦикла; КонецЕсли; |
1) Если продажа не найдена по идентификатору в первом цикле (закладка 1), то ко второму циклу (закладка 2) следующего элемента выборки никогда не будет - вероятно, перед вторым циклом должен быть сброс выборки?
2) Если ставим сброс выборки - второй цикл начинает работать, но: если запрос выбрал несколько продаж по контрагенту, и в первой из них будет не подходящая номенклатура, но флаг "НеСоответствует" будет поднят (закладка 3) и никогда не сброшен - то есть остальные продажи (даже подходящие) будут отброшены. Вероятно, необходимо переставить сброс флага (закладка 4) ниже внутрь цикла?