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

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111, 14 июн 2012, 11:07

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

Alex1111

Есть запрос:

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

      
      Сообщить("Дата закрытия: " +ДатаЗакр+" период: "+пер+" скидка: "+скид);
      Пока Выборка.Следующий() Цикл
       // ... выведем в окно сообщений поля из результата.
      пер=выборка2.период;
       ДатаЗакр=выборка2.ДатаЗакрытия;
      скид=выборка2.скидка;
                                                             
       Сообщить("Дата закрытия: " +ДатаЗакр+" период: "+пер+" скидка: "+скид);
      КонецЦикла;

В окне сообщений выводится
Дата закрытия:  период:  скидка:
Дата закрытия:  период:  скидка:
т.е. сами значения полей не выводятся, хотя они есть - проверял в режиме Предприятия в соответствующем регистреСведений.
Почему так происходит? Как сделать чтобы показывались значения?

СветланаCC

Попробуйте так

Сообщить("Дата закрытия: " +Строка(ДатаЗакр)+" период: "+Строка(пер)+" скидка: "+Строка(скид));
Тазовод)

СветланаCC

Тазовод)

СветланаCC

Зачем Вам внутреннее соединение с справочником контрагенты? если у Вас условие идет по контрагенту?
Тазовод)

Alex1111

Цитата: СветланаCC от 14 июн 2012, 11:13
Попробуйте так

Сообщить("Дата закрытия: " +Строка(ДатаЗакр)+" период: "+Строка(пер)+" скидка: "+Строка(скид));


Так - тот же результат - значения не показываются

Alex1111

Цитата: СветланаCC от 14 июн 2012, 11:14
а вообще скажите что Вы хотите увидеть?

вообще мне нужно вытащить только дату закрытия. другие поля я специально вывел, чтобы проверить может проблема только в поле "дата закрытия", но оказалось у других то же самое ((

СветланаCC


запрос2=новый запрос;  
  запрос2.Текст=
  "ВЫБРАТЬ
  |ПроцентВладельцу.ДатаЗакрытия как ДатаЗакрытия,
  |ПроцентВладельцу.Период как Период,
  |ПроцентВладельцу.Скидка как Скидка
  |ИЗ
  |РегистрСведений.ПроцентВладельцу КАК ПроцентВладельцу
  |ГДЕ
  |ПроцентВладельцу.Объект = &ИнформационныеКартыСсылка
  |И ПроцентВладельцу.Владелец =&Контрагент
  |УПОРЯДОЧИТЬ ПО ПроцентВладельцу.Период УБЫВ";
  Выборка2=запрос2.Выполнить().Выбрать();
     Пока Выборка2.Следующий() Цикл
      // ... выведем в окно сообщений поля из результата.
     пер=выборка2.период;
      ДатаЗакр=выборка2.ДатаЗакрытия;
     скид=выборка2.скидка;
                                                           
      Сообщить("Дата закрытия: " +ДатаЗакр+" период: "+пер+" скидка: "+скид);
     КонецЦикла;


И Потом установить параметр контрагента.... и информационных карт
Тазовод)

СветланаCC

вот так -
запрос2=новый запрос;   
   запрос2.Текст=
   "ВЫБРАТЬ
   |ПроцентВладельцу.ДатаЗакрытия как ДатаЗакрытия,
   |ПроцентВладельцу.Период как Период,
   |ПроцентВладельцу.Скидка как Скидка
   |ИЗ
   |РегистрСведений.ПроцентВладельцу КАК ПроцентВладельцу
   |ГДЕ
   |ПроцентВладельцу.Объект = &ИнформационныеКартыСсылка
   |И ПроцентВладельцу.Владелец =&Контрагент
   |УПОРЯДОЧИТЬ ПО ПроцентВладельцу.Период УБЫВ";
запрос2.УстановитьПараментр("ИнформационныеКартыСсылка",ИнформационныеКарты);
запрос2.УстановитьПараментр("Контрагент",Контрагент);
   Выборка2=запрос2.Выполнить().Выбрать();
      Пока Выборка2.Следующий() Цикл
       // ... выведем в окно сообщений поля из результата.
      пер=выборка2.период;
       ДатаЗакр=выборка2.ДатаЗакрытия;
      скид=выборка2.скидка;
                                                             
       Сообщить("Дата закрытия: " +ДатаЗакр+" период: "+пер+" скидка: "+скид);
      КонецЦикла;

Тока уточните почему Вы берете Контрагент.Наименование, ИнформационныеКарты.наименование - а не ссылки на объекты??
Тазовод)

Alex1111

{РегистрСведений.ВладельцыДисконтныхКарт.Форма.ФормаЗаписи(77)}: Метод объекта не обнаружен (УстановитьПараментр)
   запрос2.УстановитьПараментр("ИнформационныеКартыСсылка",Справочники.ИнформационныеКарты);

СветланаCC

так погодите...ИнформационныеКарты у Вас что это? реквизиты, которые выбираются на форме?
сорри
запрос2.УстановитьПараметр("ИнформационныеКартыСсылка",ИнформационныеКарты);
запрос2.УстановитьПараметр("Контрагент",Контрагент);
Тазовод)

Теги:

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

Рейтинг@Mail.ru

Поиск