Имя: Пароль:
1C
 
Заполнение табличной части результатом запроса
↓Ø (Волшебник 16.08.2024 11:53)
0 Si4
 
05.08.24
09:37
Доброго времени суток! имеется некий код. при заполнении параметров вылезает служебное сообщение: "Заполнение ТЧ не произведено! Значение не является значением объектного типа (Владелец)". (понятно что ошибка в ТаблицаЦен = ТабличноеПолеОбъекта.ТекущиеДанные.Владелец();) Подскажите куда копать?
сам код:
Процедура Инициализировать(Объект, ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
    Форма = ПолучитьФорму("Форма");
    Форма.ОткрытьМодально();  
    
    Артикул = сс_ДопМодуль.ПолучитьАртикул(ТипСоединения, Диаметр, "__", ВнутреннееПокрытие, ВнешнееПокрытие, Класс, "", "") + "%";
     Сообщить(Артикул);
    //Если Документ.Ссылка.Пустая() Тогда
    //    Документ = ДокСсылка.ПолучитьОбъект();
    //КонецЕсли;    
    Товары = Объект.Товары;
    Объект.ТипыЦен.Очистить();
    СтрокаТипыЦен = Объект.ТипыЦен.Добавить();
    СтрокаТипыЦен.ТипЦен = ТипЦен;
    
    Если ОчищатьТЧ Тогда
        Товары.Очистить();
    КонецЕсли;    
    
    Валюта = Справочники.Валюты.НайтиПоКоду("643");
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка КАК Номенклатура,
        |    ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
        |        ПО Номенклатура.Ссылка = ЕдиницыИзмерения.Владелец
        |ГДЕ
        |    Номенклатура.Артикул ПОДОБНО &Артикул
        |    И ЕдиницыИзмерения.Наименование = ""пог. м""";
    
    Запрос.УстановитьПараметр("Артикул", Артикул);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Сообщить("" + ВыборкаДетальныеЗаписи.Количество());
    
    ТаблицаЦен = ТабличноеПолеОбъекта.ТекущиеДанные.Владелец();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СтрокаТовары = Товары.Добавить();
        СтрокаТовары.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        СтрокаТовары.Цена = Цена;
        СтрокаТовары.ТипЦен = ТипЦен;
        СтрокаТовары.ЕдиницаИзмерения = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;  
        СтрокаТовары.Валюта = Валюта;
        
        СтрокаТЦ = ТаблицаЦен.Добавить();
        СтрокаТЦ.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;  
        СтрокаТЦ.Цена[1] = ВыборкаДетальныеЗаписи.Цена;    
    КонецЦикла;    
КонецПроцедуры
1 Волшебник
 
05.08.24
09:50
Безумное нагромождение программного кода
AdBlock убивает бесплатный контент. 1Сергей