0
егаис
25.05.18
✎
16:17
|
Не могу определить причину неверного поведения процедуры при выводе данных в колонку. Колонка заполняется по выборочным позициям. Точно уверен что код для товаров установлен, но он выводится не по всем.
Есть РС номенклатура поставщика с измерениями Номенклатура,Контрагент,КодКонтрагента. Без ресурсов.
&НаСервере
Процедура ЗаполнитьКодПоставщикаНаСервере()
Если НЕ Объект.Контрагент.Пустая() Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураПоставщиков.КодПоставщика КАК КодПоставщика,
| НоменклатураПоставщиков.Номенклатура КАК Номенклатура
|ИЗ
| РегистрСведений.НоменклатураПоставщиков КАК НоменклатураПоставщиков
|ГДЕ
| НоменклатураПоставщиков.Поставщик = &Поставщик
| И НоменклатураПоставщиков.Номенклатура В(&СписокНоменклатуры)";
Запрос.УстановитьПараметр("Поставщик", Объект.Контрагент);
МассивУдаляемыхСтрок = Новый Массив;
ТаблицаТоваров = Объект.Товары.Выгрузить();
Для Каждого Строка Из ТаблицаТоваров Цикл
Если Строка.Номенклатура.Пустая() Тогда
МассивУдаляемыхСтрок.Добавить(Строка);
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаМассива Из МассивУдаляемыхСтрок Цикл
ТаблицаТоваров.Удалить(СтрокаМассива);
КонецЦикла;
Запрос.УстановитьПараметр("СписокНоменклатуры", ТаблицаТоваров.ВыгрузитьКолонку("Номенклатура"));
ВыборкаНоменклатура = Запрос.Выполнить().Выбрать();
Для Каждого Стр Из Объект.Товары Цикл
Если Стр.Номенклатура.Пустая() Тогда
Продолжить;
КонецЕсли;
Если ВыборкаНоменклатура.НайтиСледующий(Новый Структура("Номенклатура", Стр.Номенклатура)) Тогда
Стр.КодПоставщика = ВыборкаНоменклатура.КодПоставщика;
Иначе
Стр.КодПоставщика = "";
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
|
|