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

Внешний отчет ошибка (Поле объекта не обнаружено)

Автор Shohana, 30 апр 2019, 14:47

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

Shohana

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

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

antoneus


Shohana

Цитата: antoneus от 30 апр 2019, 14:57
Переменная Номенклатура - это что?
Мой справочник откуда я тяну реквизит

antoneus


Z.spb

Цитата: Shohana от 30 апр 2019, 15:04Мой справочник откуда я тяну реквизит
Подробнее. Где в коде эта переменная инициализируется? Можете это место найти?
Ошибка "Поле объекта не обнаружено" может возникнуть только в 2х случаях. Или у вашего справочника "номенклатура" нет реквизита с таким названием "ЕдиницаХраненияОстатков". (что вряд ли)
Или переменная "номенклатура" не является типом "СправочникОбъект.Номенклатура"
 


Shohana

Цитата: Z.spb от 30 апр 2019, 15:20
Цитата: Shohana от 30 апр 2019, 15:04Мой справочник откуда я тяну реквизит
Подробнее. Где в коде эта переменная инициализируется? Можете это место найти?
Ошибка "Поле объекта не обнаружено" может возникнуть только в 2х случаях. Или у вашего справочника "номенклатура" нет реквизита с таким названием "ЕдиницаХраненияОстатков". (что вряд ли)
Или переменная "номенклатура" не является типом "СправочникОбъект.Номенклатура"

Сама переменная больше этого кусочка кода не появляется , сам реквизит тип "СправочникСсылка.ЕдиницыИзмерения"

alexandr_ll

Цитата: Shohana от 30 апр 2019, 14:47
Здравствуйте , выбивает такая ошибка  {Форма.ФормаОтчета(67)}: Поле объекта не обнаружено (ЕдиницаХраненияОстатков)
ЕдиницыИзмерения = Номенклатура.ЕдиницаХраненияОстатков;

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

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


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

Я не понимаю, на что вы собираетесь умножать при определении остатка, ведь переменная ЕдиницыИзмерения не имеет типа "Число".

Shohana

Цитата: alexandr_ll от 02 мая 2019, 10:01
Цитата: Shohana от 30 апр 2019, 14:47
Здравствуйте , выбивает такая ошибка  {Форма.ФормаОтчета(67)}: Поле объекта не обнаружено (ЕдиницаХраненияОстатков)
ЕдиницыИзмерения = Номенклатура.ЕдиницаХраненияОстатков;

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

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


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

Я не понимаю, на что вы собираетесь умножать при определении остатка, ведь переменная ЕдиницыИзмерения не имеет типа "Число".

Огромное спасибо работает


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

Теги:

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

Рейтинг@Mail.ru

Поиск