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

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

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

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

СветланаCC

киньте сюда вашу обработку, что то я не до конца Вас понимаю..
Тазовод)

Alex1111

Цитата: СветланаCC от 14 июн 2012, 11:57
киньте сюда вашу обработку, что то я не до конца Вас понимаю..

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

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

запрос2=новый запрос;   

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

//
//Сообщить("Первая запись выборки из ПроцентВладельцу= "+ДатаЗакр);
Отказ=Истина;
Сообщить("Контрагент """+Контрагент+""" уже использует одну карту. Один и тот же контрагент не может иметь "+
"более одной карты! Запись не сохранена", СтатусСообщения.ОченьВажное);

КонецЕсли;

//запрос=новый запрос;
//запрос.Текст=
//"выбрать
//|ИнформационнаяКарта,
//|Количество(*) как колво
//|из РегистрСведений.СоД_ВладельцыДисконтныхКарт
//|сгруппировать по ИнформационнаяКарта";
//выборка=запрос.Выполнить().Выбрать();
//
//Пока Выборка.Следующий() Цикл
// // ... выведем в окно сообщений поля из результата.
// ИнфКарта = Выборка.ИнформационнаяКарта;
// Количест = Выборка.колво;
// Сообщить("ИнфКарта: " + ИнфКарта + " Кол-во: " + Количест);
//КонецЦикла;


КонецПроцедуры

СветланаCC

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

СветланаCC

Что делает первый запрос? может все на много проще? хотите по информационной карте и контрагенту увидеть дату закрытия?
Тазовод)

Alex1111

Цитата: СветланаCC от 14 июн 2012, 13:10
Что делает первый запрос? может все на много проще? хотите по информационной карте и контрагенту увидеть дату закрытия?

Да именно, только дату закрытия, которая соответствует последней добавленной записи, в которой нужные контрагент и карта, поэтому и делаю Период УБЫВ?
Вы знаете, как это сделать?

СветланаCC

Тазовод)

СветланаCC

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

Тазовод)

СветланаCC

Только вот это:
запрос2.УстановитьПараментр("ИнформационныеКартыСсылка",Справочники.ИнформационныеКарты.ссылка);

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

Alex1111

Цитата: СветланаCC от 14 июн 2012, 13:25
Только вот это:
запрос2.УстановитьПараме[b]Н[/b]тр("ИнформационныеКартыСсылка",Справочники.ИнформационныеКарты.ссылка);

поменяйте на это
запрос2.УстановитьПараме[b]Н[/b]тр("ИнформационныеКартыСсылка",ИнформационнаяКарта);


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

Alex1111

Ну дата закрытия теперь показывается! Спасибо Светлана, я Вас люблю!  :ehtwj:

Теги:

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

Рейтинг@Mail.ru

Поиск