Имя: Пароль:
1C
1С v8
Преобразование значения к типу Дата не может быть выполнено
,
0 STAYEKR
 
20.06.12
16:37
Помогите, ошибка достала
вот код ошибки
Преобразование значения к типу Дата не может быть выполнено
       ПоследнийРабочийДень = КонецДня(Результат[0].ПоследнийРабочийДень);
а вот код запроса:
   ПоследнийРабочийДень = КонецДня(КонецМесяца(ТекущаяДата()));
   
   Запрос = новый Запрос;
   Запрос.Текст = "
   |Выбрать
   |    МАКСИМУМ(КРаб.Дата) КАК ПоследнийРабочийДень
   |из
   |    РегистрСведений.КалендарьРабот КАК КРаб
   |ГДЕ
   |        КРаб.СтатусДня = ЗНАЧЕНИЕ(Перечисление.СтатусыДня.РабочийДень)        
   |     И
   |        КРаб.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НаДату, МЕСЯЦ) И КОНЕЦПЕРИОДА(&НаДату, МЕСЯЦ);
   |    
   |    ";
   
   Запрос.УстановитьПараметр("НаДату", ТекущаяДата());
   Результат = Запрос.Выполнить().Выгрузить();
   Если Результат.Количество() = 0 Тогда
       Сообщить("Не заполнен рабочий календарь.");
   Иначе
       ПоследнийРабочийДень = КонецДня(Результат[0].ПоследнийРабочийДень);
   КонецЕсли;    
   
   Возврат ПоследнийРабочийДень;
1 Fragster
 
гуру
20.06.12
16:41
NULL в дату не перевести, да
2 Fragster
 
гуру
20.06.12
16:42
вообще учу пользоваться отладчиком, дорого
3 andrewks
 
20.06.12
16:42
а где проверка на пустой результат?
4 Ненавижу 1С
 
гуру
20.06.12
16:42
Если Результат.Количество() = 0 Тогда
       Сообщить("Не заполнен рабочий календарь.");

это условие никогда не выполнится, данный запрос всегда выдаст 1 строку, независимо есть данные или нет
5 rbcvg
 
20.06.12
16:42
"КРаб" - гыг)))
6 ЧашкаЧая
 
20.06.12
16:43
Для начала

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Если Выборка.Следущий() Тогда
   ПоследнийРабочийДень = КонецДня(Выборка.ПоследнийРабочийДень);
Иначе
   ПоследнийРабочийДень = '00010101';
КонецЕсли;

Отладчик, консоль запросов, сколько удивительных инструментов.
7 Жан Пердежон
 
20.06.12
16:45
(6) не далеко ушел от (0)
8 Fragster
 
гуру
20.06.12
16:49
(4) зачем так сразу?
9 Defender aka LINN
 
20.06.12
16:57
(8) Приучает к реальной жизни. И в (4) истинная правда, да.
10 andrewks
 
20.06.12
16:59
(8) сам же (1) написал, а теперь чего?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс