helpf.pro
Регистрация

Отбор результата запроса по текущей дате

bless18
05.05.2010 19:25Прочитано: 11998
Здравствуйте! В запросе
Код 1C v 8.х
 Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме
|ИЗ
| Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
|ГДЕ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме = &ИмяПользователяВСистеме
| И РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата В(&ТекДата)";
Запрос.УстановитьПараметр("ТекДата", ТекущаяДата());
Запрос.УстановитьПараметр("ИмяПользователяВСистеме", ПараметрыСеанса.ТекущийПользователь);


нужно отобрать значения по текущей дате. Проблема в том, что ТЧ получается пустой после выполнения запроса, хотя документ на текущую дату имеется
Может ли быть это из-за того, что разный формат дат?
Вот у ТекущаяДата() формат ddmmyyyy mm ss, а в реквизитах ddmmyyyy?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
06.05.2010 10:20Ответ № 1
надо не
РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата В(&ТекДата)"

а
Код 1C v 8.х
 РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата = &ТекДата"   
bless18
06.05.2010 10:33Ответ № 2
Когда пишу так, то при дебаге не заходит в цикл
Код 1C v 8.х
 Процедура ПриОткрытии()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме
|ИЗ
| Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
|ГДЕ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме = &ИмяПользователяВСистеме
| И РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата = &ТекДата";
Запрос.УстановитьПараметр("ТекДата", ТекущаяДата());
Запрос.УстановитьПараметр("ИмяПользователяВСистеме", ПараметрыСеанса.ТекущийПользователь);

Результат = Запрос.Выполнить();
ТзВрем = Результат.Выгрузить();
ТзВрем.Колонки.Добавить("ПроцентОставшегосяВремени");

Для Каждого СтрокаРаспределениеЗадачиСотрудникам Из ТзВрем Цикл
СтрокаТабличнойЧасти = ЭтотОбъект.Пользователи.Добавить();
СтрокаТабличнойЧасти.ПользовательСистемы = СтрокаРаспределениеЗадачиСотрудникам.ИмяПользователяВСистеме;
СтрокаТабличнойЧасти.ТекущаяЗадача = СтрокаРаспределениеЗадачиСотрудникам.НаименованиеЗадачи;
СтрокаТабличнойЧасти.Приоритет = СтрокаРаспределениеЗадачиСотрудникам.Приоритет;
СтрокаТабличнойЧасти.ДатаНачалаВыполнения = СтрокаРаспределениеЗадачиСотрудникам.Дата;
СтрокаТабличнойЧасти.ДатаВыполненияПоПлану = СтрокаРаспределениеЗадачиСотрудникам.ДатаВыполнения;
СтрокаТабличнойЧасти.ИсполнительЗадачи = СтрокаРаспределениеЗадачиСотрудникам.Исполнитель;

ДатаНачала = СтрокаРаспределениеЗадачиСотрудникам.Дата;
ДатаКонца = СтрокаРаспределениеЗадачиСотрудникам.ДатаВыполнения;

Если Год(ДатаНачала)=Год(ДатаКонца) Тогда
КоличествоДнейНаВыполнение = День(ДатаКонца)-День(ДатаНачала);
КоличествоДнейСоДняНачалаВыполнения = День(ТекущаяДата())-День(ДатаНачала);
СтрокаРаспределениеЗадачиСотрудникам.ПроцентОставшегосяВремени=Окр(Число(КоличествоДнейСоДняНачалаВыполнения / КоличествоДнейНаВыполнение) * 100, 2);
КонецЕсли;
КонецЦикла;

E_Migachev
06.05.2010 14:41Ответ № 3
Не заходит значит нет данных!
гда ты указываешь Текущая дата, то он ищет документ с текущей датой, а его нет)
тебе нужно указывать диапозон, например:
Код 1C v 8.х
 Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме
|ИЗ
| Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
|ГДЕ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.ИмяПользователяВСистеме = &ИмяПользователяВСистеме
| И РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата Между &ТекДатаН и &ТекДатаН";
Запрос.УстановитьПараметр("ТекДатаН", НачалоДня(ТекущаяДата()));
Запрос.УстановитьПараметр("ТекДатаK", ТекущаяДата());

При таком условии в запрос попадут все документы созданные сегодня от 00.00.00 часов до текущего времени
bless18
06.05.2010 18:35Ответ № 4
Оо, спасибо Вам большое-пребольшое!
Заработало! *05
bless18
06.05.2010 21:00Ответ № 5
Вопрос закрыт!
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.