Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Рассчитываемая колонка в ТЧ документа

Рассчитываемая колонка в ТЧ документа
Я
   егаис
 
25.05.18 - 16:17
Не могу определить причину неверного поведения процедуры при выводе данных в колонку. Колонка заполняется по выборочным позициям. Точно уверен что код для товаров установлен, но он выводится не по всем.
Есть РС номенклатура поставщика с измерениями Номенклатура,Контрагент,КодКонтрагента.  Без ресурсов.


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

ВыборкаИзРезультатаЗапроса (QueryResultSelection)
Сбросить (Reset)
Синтаксис:
Сбросить()
Описание:
Позиционирует выборку в начало.
   егаис
 
2 - 25.05.18 - 16:32
блин, точно!
спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует