Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 03:56

Значение не является значением объектного типа

Автор Shohana, 21 мая 2019, 10:56

0 Пользователей и 1 гость просматривают эту тему.

Shohana

Здравствуйте , выдает такую ошибку {Форма.ФормаОтчета(104)}: Значение не является значением объектного типа (ЕдиницаХраненияОстатков)
               ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.Весбрутто;   

в отчете есть запрос с группировкой и выводам данных , запрос рабочий , выводить данные не хочет  где я совершила ошибку?


Процедура СформироватьНажатие(Элемент)
   ТабДок = ЭлементыФормы.ТабДок;
   
   Макет = ПолучитьМакет("Макет");
    ОбластьШапка= Макет.ПолучитьОбласть("Шапка");
   ОбластьДанныеТЧ1= Макет.ПолучитьОбласть("ДанныеТЧ1");
   ОбластьДанныеТЧ2= Макет.ПолучитьОбласть("ДанныеТЧ2");
    ТабДок.Очистить();

   Запрос = новый Запрос;
   
   
     Запрос.УстановитьПараметр("НачалоПериода",НачалоПериода);
     Запрос.УстановитьПараметр("КонецПериода",КонецПериода);
    Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
    Запрос.УстановитьПараметр("ТипДокумента",перечисления.ТипыДокументаРеализацияТМЦ.Реализация);
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.ГруппаFSC);
    Запрос.Текст = "ВЫБРАТЬ
                   |   ДанныеВыпуска.Номенклатура КАК Номенклатура,
                   |   ДанныеВыпуска.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                   |   ДанныеВыпуска.Партия КАК Партия,
                   |   ДанныеВыпуска.Партия.ПроцентFSCMixed КАК ПартияПроцентFSCMixed,
                   |   ДанныеВыпуска.КоличествоПриход КАК Приход,
                   |   ЕСТЬNULL(ДанныеРеализации.Расход, 0) КАК Расход,
                   |   ЕСТЬNULL(ДанныеВыпуска.КоличествоПриход - ДанныеРеализации.Расход, 0) КАК Остаток,
                   |   Свойства.Значение КАК Значение
                   |ИЗ
                   |   РегистрНакопления.ПартииТМЦНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Номенклатура.ГруппаТМЦ = &Номенклатура) КАК ДанныеВыпуска
                   |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |         ПартииТМЦНаСкладахОбороты.Номенклатура КАК Номенклатура,
                   |         ПартииТМЦНаСкладахОбороты.Партия КАК Партия,
                   |         ПартииТМЦНаСкладахОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
                   |         ПартииТМЦНаСкладахОбороты.КоличествоПриход КАК Приход,
                   |         ПартииТМЦНаСкладахОбороты.КоличествоРасход КАК Расход
                   |      ИЗ
                   |         РегистрНакопления.ПартииТМЦНаСкладах.Обороты(&НачалоПериода, &КонецПериода, Регистратор, Номенклатура.ГруппаТМЦ = &Номенклатура) КАК ПартииТМЦНаСкладахОбороты
                   |      ГДЕ
                   |         ПартииТМЦНаСкладахОбороты.Регистратор ССЫЛКА Документ.РеализацияТМЦ
                   |         И ПартииТМЦНаСкладахОбороты.Регистратор.ТипДокумента = &ТипДокумента) КАК ДанныеРеализации
                   |      ПО ДанныеВыпуска.Номенклатура = ДанныеРеализации.Номенклатура
                   |         И ДанныеВыпуска.Партия = ДанныеРеализации.Партия
                   |         И ДанныеВыпуска.ХарактеристикаНоменклатуры = ДанныеРеализации.ХарактеристикаНоменклатуры
                   |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |         ЗначенияСвойствОбъектов.Свойство КАК Свойство,
                   |         ЗначенияСвойствОбъектов.Значение КАК Значение,
                   |         ЗначенияСвойствОбъектов.Объект КАК Объект
                   |      ИЗ
                   |         РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                   |      ГДЕ
                   |         ЗначенияСвойствОбъектов.Свойство = &Свойство) КАК Свойства
                   |      ПО ДанныеВыпуска.Номенклатура = Свойства.Объект
                   |ГДЕ
                   |   ДанныеВыпуска.Регистратор ССЫЛКА Документ.МебельКомплектация
                   |
                   |СГРУППИРОВАТЬ ПО
                   |   Свойства.Значение,
                   |   ДанныеВыпуска.Номенклатура,
                   |   ДанныеВыпуска.ХарактеристикаНоменклатуры,
                   |   ДанныеВыпуска.Партия,
                   |   ДанныеВыпуска.Партия.ПроцентFSCMixed,
                   |   ДанныеВыпуска.КоличествоПриход,
                   |   ЕСТЬNULL(ДанныеРеализации.Расход, 0),
                   |   ЕСТЬNULL(ДанныеВыпуска.КоличествоПриход - ДанныеРеализации.Расход, 0)
                   |ИТОГИ ПО
                   |   Значение";
               
               НомерСтроки = 1;
               
               
               РезультатЗапроса = Запрос.Выполнить();
                           
               ВыборкаПР = РезультатЗапроса.Выбрать();
            //   Выборка = Запрос.Выполнить().Выбрать();
               Выборка = ВыборкаПР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
               
               
               Макет = ПолучитьМакет("Макет");
               
               ТабДок.НачатьАвтогруппировкуСтрок();
               
               Область = Макет.ПолучитьОбласть("Шапка");
               Область = Макет.ПолучитьОбласть("ДанныеТЧ1");
               Область = Макет.ПолучитьОбласть("ДанныеТЧ2");
            
               ОбластьШапка.Параметры.НачалоПериода = НачалоПериода;
                   ОбластьШапка.Параметры.КонецПериода  = КонецПериода;
               
               ТабДок.Вывести(ОбластьШапка);
               ТабДок.Вывести(ОбластьДанныеТЧ1);
               
                              
               Пока  ВыборкаПР.Следующий() Цикл
                  
                ВыборкаХР = ВыборкаПР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Значение");
               
                                
                Пока ВыборкаХР.Следующий() Цикл
                  
                   Выборка2 = ВыборкаХР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,);
                  
                   Пока Выборка2.Следующий() Цикл
                  
                  
               ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.Весбрутто;   
                  
                ОбластьДанныеТЧ2.Параметры.номер = НомерСтроки ;
               ОбластьДанныеТЧ2.Параметры.Номенклатура = Выборка.Номенклатура;
               ОбластьДанныеТЧ2.Параметры.Свойства = Выборка.Значение;
               ОбластьДанныеТЧ2.Параметры.FSC = Выборка.ПартияПроцентFSCMixed;
               ОбластьДанныеТЧ2.Параметры.Реализация = Выборка.Расход;
               ОбластьДанныеТЧ2.Параметры.Расход = Выборка.Расход;
               ОбластьДанныеТЧ2.Параметры.Остатки = Строка((ВыборкаПР.Приход - ВыборкаПР.Расход)*ЕдиницыИзмерения);
   
                  
                  
                              
                
               ТабДок.Вывести(ОбластьДанныеТЧ2);
               НомерСтроки = НомерСтроки + 1;
                   
            КонецЦикла;
            КонецЦикла;
               КонецЦикла;                   
              ТабДок.ЗакончитьАвтогруппировкуСтрок();   
            ТабДок.Показать();
             
КонецПроцедуры



Поиск родных

Я бы попробовал исправить "Весбрутто" на "ВесБрутто" без кавычек
Ну, илил посмотрел туда, одев свои очки

Shohana

Цитата: Геннадий ОбьГЭС от 22 мая 2019, 10:19
Я бы попробовал исправить "Весбрутто" на "ВесБрутто" без кавычек
Ну, илил посмотрел туда, одев свои очки
неа , все имена пересмотрела ошибки не нашла при добавлении нового цикла сразу ругается , если один цикл все нормально выводит

SGIRG

А где Вы перебираете "Выборка"?????
Вижу: ВыборкаПР, ВыборкаХР, Выборка2
А вот Выборка не вижу

Shohana

Цитата: SGIRG от 22 мая 2019, 11:53
А где Вы перебираете "Выборка"?????
Вижу: ВыборкаПР, ВыборкаХР, Выборка2
А вот Выборка не вижу
вот так должно быть?
уже не ругается но данные не выводит, какие данные циклом я должна обходить?

Пока ВыборкаХР.Следующий() Цикл
                  
                   Выборка2 = ВыборкаХР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,);
                  
                   Пока Выборка.Следующий() Цикл
                  
                  
               ЕдиницыИзмерения = ВыборкаПР.Номенклатура.ЕдиницаХраненияОстатков.ВесБрутто;   
                  
                ОбластьДанныеТЧ2.Параметры.номер = НомерСтроки ;
               ОбластьДанныеТЧ2.Параметры.Номенклатура = ВыборкаПР.Номенклатура;
               ОбластьДанныеТЧ2.Параметры.Свойства = ВыборкаПР.Значение;
               ОбластьДанныеТЧ2.Параметры.FSC = ВыборкаПР.ПартияПроцентFSCMixed;
               ОбластьДанныеТЧ2.Параметры.Реализация = ВыборкаПР.Расход;
               ОбластьДанныеТЧ2.Параметры.Расход = ВыборкаПР.Расход;
               ОбластьДанныеТЧ2.Параметры.Остатки = Строка((ВыборкаПР.Приход - ВыборкаПР.Расход)*ЕдиницыИзмерения);

SGIRG

У Вас в запросе итоги по одному полю, в тексте программы описана какая-то более глубокая иерархия.
РезультатЗапроса = Запрос.Выполнить();
ВыборкаПР = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);    // старайтесь называть переменные понятными именами
Пока ВыборкаПР.Следующий() Цикл
    Выборка = ВыборкаПР.Выбрать();
    Пока Выборка.Следующий() Цикл
        // Здесь выполняете необходимы по заполнению отчета действия
    КонецЦикла
КонецЦикла

что-то вроде этого

Shohana

Не ругается но и не выводит данные

Цитата: SGIRG от 23 мая 2019, 12:22
У Вас в запросе итоги по одному полю, в тексте программы описана какая-то более глубокая иерархия.
РезультатЗапроса = Запрос.Выполнить();
ВыборкаПР = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);    // старайтесь называть переменные понятными именами
Пока ВыборкаПР.Следующий() Цикл
    Выборка = ВыборкаПР.Выбрать();
    Пока Выборка.Следующий() Цикл
        // Здесь выполняете необходимы по заполнению отчета действия
    КонецЦикла
КонецЦикла

что-то вроде этого

SGIRG

ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.Весбрутто;   
                 
ОбластьДанныеТЧ2.Параметры.номер = НомерСтроки ;
ОбластьДанныеТЧ2.Параметры.Номенклатура = Выборка.Номенклатура;
ОбластьДанныеТЧ2.Параметры.Свойства = Выборка.Значение;
ОбластьДанныеТЧ2.Параметры.FSC = Выборка.ПартияПроцентFSCMixed;
ОбластьДанныеТЧ2.Параметры.Реализация = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Расход = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Остатки = Строка((ВыборкаПР.Приход - ВыборкаПР.Расход)*ЕдиницыИзмерения);

Эта часть кода, которая была изначально, должна работать

Shohana

Цитата: SGIRG от 23 мая 2019, 14:13
ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.Весбрутто;   
                 
ОбластьДанныеТЧ2.Параметры.номер = НомерСтроки ;
ОбластьДанныеТЧ2.Параметры.Номенклатура = Выборка.Номенклатура;
ОбластьДанныеТЧ2.Параметры.Свойства = Выборка.Значение;
ОбластьДанныеТЧ2.Параметры.FSC = Выборка.ПартияПроцентFSCMixed;
ОбластьДанныеТЧ2.Параметры.Реализация = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Расход = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Остатки = Строка((ВыборкаПР.Приход - ВыборкаПР.Расход)*ЕдиницыИзмерения);

Эта часть кода, которая была изначально, должна работать

Ругается
{Форма.ФормаОтчета(101)}: Значение не является значением объектного типа (ЕдиницаХраненияОстатков)
ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.ВесБрутто;


Пока ВыборкаПР.Следующий() Цикл

Выборка = ВыборкаПР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,("Значение"));
 
Пока Выборка.Следующий() Цикл

ЕдиницыИзмерения = Выборка.Номенклатура.ЕдиницаХраненияОстатков.ВесБрутто;


ОбластьДанныеТЧ2.Параметры.номер = НомерСтроки ;
ОбластьДанныеТЧ2.Параметры.Номенклатура = Выборка.Номенклатура;
ОбластьДанныеТЧ2.Параметры.Свойства = Выборка.Значение;
ОбластьДанныеТЧ2.Параметры.FSC = Выборка.ПартияПроцентFSCMixed;
ОбластьДанныеТЧ2.Параметры.Реализация = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Расход = Выборка.Расход;
ОбластьДанныеТЧ2.Параметры.Остатки = Строка((Выборка.Приход - Выборка.Расход)*ЕдиницыИзмерения);




       
ТабДок.Вывести(ОбластьДанныеТЧ2);
ТабДок.Вывести(ОбластьДанныеТЧ2,Выборка.Значение);
НомерСтроки = НомерСтроки + 1;
                   
КонецЦикла;
КонецЦикла;

SGIRG

Выборка = ВыборкаПР.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,("Значение"));
Зачем так?
Первый уровень иерархии был здесь:
ВыборкаПР = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Далее идут уже детальные записи:
Выборка = ВыборкаПР.Выбрать();

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск