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

Как достать данные из запроса. Подскажите.

Автор vurdalak, 24 окт 2012, 17:13

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

vurdalak

Запрос = Новый Запрос(   
"ВЫБРАТЬ
|   ЗаказПоставщику.Товары.(
|      Серия.ПериодГодности КАК ПериодГодности,
|      Серия.ДатаОконГод КАК ДатаОконГод
|   ) КАК Товары
|ИЗ
|   Документ.ЗаказПоставщику КАК ЗаказПоставщику");
Результат = Запрос.Выполнить().Выбрать();
Условие = Соглашение.ПроцСрокаПолИсп;

Пока Результат.Следующий() Цикл
   ПериодГодности = Результат.Товары.ПериодГодности;
   ДатаОконГод = Результат.Товары.ДатаОконГод;
   Сообщить(ПериодГодности);
   ТекДата = ТекущаяДата();
   ОстСрокГод = НачалоДня(ДатаОконГод) - ТекДата;
   Сообщить(ОстСрокГод);
КонецЦикла;

Пытаюсь таким образом к периоду годности обратиться: ПериодГодности = Результат.Товары.ПериодГодности;
, а он говорит что такого поля нет.
Подскажите пожалуйста как в таком случае достать период годности?

sadovod

А попробуй так:
"ВЫБРАТЬ
| ЗаказПоставщикуТовары.ПериодГодности КАК ПериодГодности,
| ЗаказПоставщикуТовары.ДатаОконГод КАК ДатаОконГод
|ИЗ
| Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары"

А дальше как у тебя, за исключением:
ПериодГодности = Результат.ПериодГодности;
ДатаОконГод = Результат.ДатаОконГод;

vurdalak

Нет так не работает. Так и пишит что поле не найдено и конструктор запроса не открывается тоже говорит что поле не найдено.

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

vurdalak

Такая ошибка у меня была:
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ЗаказПоставщику.МодульОбъекта(608)}: Поле объекта не обнаружено (ПериодГодности)
   ПериодГодности = Результат.Товары.ПериодГодности;

Эта ошибка после того как я сделал как sadovod написал
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ЗаказПоставщику.МодульОбъекта(602)}: Ошибка при вызове метода контекста (Выполнить)
Результат = Запрос.Выполнить().Выбрать();
по причине:
{(2, 27)}: Поле не найдено "ЗаказПоставщикуТовары.ПериодГодности"
ЗаказПоставщикуТовары.<<?>>ПериодГодности КАК ПериодГодности,

Dethmontt

Запрос в конструкторе открывается?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

У тебя точно в табличной части ТОВАРЫ документа ЗаказПоставщику есть реквизит ПериодГодности ????
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Все увидел блин...

вот так

"ВЫБРАТЬ
|    ЗаказПоставщикуТовары.Серия.ПериодГодности КАК ПериодГодности,
|    ЗаказПоставщикуТовары.Серия.ДатаОконГод КАК ДатаОконГод
|ИЗ
|    Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары"


Ну и далее по тексту...
Результат = Запрос.Выполнить().Выбрать();
Условие = Соглашение.ПроцСрокаПолИсп;

Пока Результат.Следующий() Цикл
   ПериодГодности = Результат.ПериодГодности;
   ДатаОконГод = Результат.ДатаОконГод;
   Сообщить(ПериодГодности);
   ТекДата = ТекущаяДата();
   ОстСрокГод = НачалоДня(ДатаОконГод) - ТекДата;
   Сообщить(ОстСрокГод);
КонецЦикла;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

vurdalak

Спасибо большое, работает. А как это вы сделали? Это с помощью конструктора?

Dethmontt

Это с помощью МОЗГА =))
Просто просмотрел что в вашем варианте запроса еще и серии выбирались

*** А консолью запросов просто проверяйте себя... Если не открывается, то и работать не будет
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:

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

Рейтинг@Mail.ru

Поиск