Имя: Пароль:
1C
1С v8
Преобразование значения к типу Дата не может быть выполнено
,
0 GreenDay1986
 
29.11.11
16:24
{Форма.Форма.Форма(1931)}: Преобразование значения к типу Дата не может быть выполнено
   л_НачДВ = л_НачДВ + ЧИСЛО(День(НачалоРаботы)

переменные л_НачДВ = 0; л_НачМВ = 0; л_НачГВ = 0;
   л_КонДВ = 0; л_КонМВ = 0; л_КонГВ = 0;
   м_ЛетВ = 0; м_МесВ = 0; м_ДнВ = 0;

Начало работы - дата выбираемая из запроса. л_НачДВ нулевой датой нужно обьявить?
1 GreenDay1986
 
29.11.11
16:25
извиняюсь
л_НачДВ = л_НачДВ + День(НачалоРаботы)

переменные л_НачДВ = 0; л_НачМВ = 0; л_НачГВ = 0;
   л_КонДВ = 0; л_КонМВ = 0; л_КонГВ = 0;
   м_ЛетВ = 0; м_МесВ = 0; м_ДнВ = 0;

вот так
2 DrShad
 
29.11.11
16:25
что за бред
3 Ц_У
 
29.11.11
16:25
(2) 86
4 andrewks
 
29.11.11
16:25
чего-чего?
5 GreenDay1986
 
29.11.11
16:26
Обработку во франче заказывали, проверить никто не потрудился. Теперь выдается ошибка
Преобразование значения к типу Дата не может быть выполнено

   л_НачДВ = л_НачДВ + ЧИСЛО(День(НачалоРаботы)
6 rotting
 
29.11.11
16:26
вот на этом глючит наверное День(НачалоРаботы), у тебя НачалоРаботы тип дата?
7 Wobland
 
29.11.11
16:27
(5) думаешь, сейчас придут твои франчи и иправят свой косяк?
8 Wobland
 
29.11.11
16:29
День() и так число возвращает, на кой его ещё принудительно?
9 GreenDay1986
 
29.11.11
16:29
Начало работы тип - дата. Выбирается запросом
Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ ПЕРВЫЕ 1
       |    Прием.Дата КАК Дата
       |ИЗ
       |    Документ.Прием КАК Прием
       |ГДЕ
       |    Прием.Сотрудник = &Сотрудник
       |
       |УПОРЯДОЧИТЬ ПО
       |    Дата УБЫВ";

Запрос.УстановитьПараметр("Сотрудник", Сотрудник);

   Результат = Запрос.Выполнить();
   //Если НЕ Результат.Пустой() Тогда
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

       ВыборкаДетальныеЗаписи.Следующий();
       НачалоРаботы = ВыборкаДетальныеЗаписи.Дата;    
       Сообщить(ВыборкаДетальныеЗаписи.Дата);
(5)Думаю нет конечно.
Потому и разбираться приходится
10 Ц_У
 
29.11.11
16:29
Либо из запроса null либо л_НачДВ задать 0 (или чего там нужно..?)
11 УхТы
 
29.11.11
16:29
Голова не работает но в конце по синтаксису не хватает скобки и точки с запятой
12 Wobland
 
29.11.11
16:30
(9) уверен, что ВыборкаДетальныеЗаписи.Следующий() истину вернуло?
13 GreenDay1986
 
29.11.11
16:30
л_НачДВ = л_НачДВ + День(НачалоРаботы)
Преобразование к типу дата не может быть выполнено л_НачДВ = 0;
14 Beduin
 
29.11.11
16:31
(12) А какая разница что оно вернуло?
15 andrewks
 
29.11.11
16:31
развод какой-то
16 Wobland
 
29.11.11
16:32
(14) подробнее, плз, не догоняю...
17 Wobland
 
29.11.11
16:32
(15) он на самом деле такой ;)
18 andrewks
 
29.11.11
16:32
л_НачДВ в реквизитах формы присутствует?
19 Beduin
 
29.11.11
16:33
(16) То что оно вернуло нигде не используется в коде.
Или ты это и имел в виду?
20 Wobland
 
29.11.11
16:33
(19) имел в виду, а есть ли мальчик - непустой результат запроса
21 Wobland
 
29.11.11
16:34
+(20) ну и использовать это как-то надо ;)
22 hhhh
 
29.11.11
16:35
(19) как? НачалоРаботы = ВыборкаДетальныеЗаписи.Дата; имеет смысл, если только ВыборкаДетальныеЗаписи.Следующий();
вернуло истину.
23 GreenDay1986
 
29.11.11
16:36
Пробую
Если НЕ Результат.Пустой() Тогда
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

       ВыборкаДетальныеЗаписи.Следующий();
       НачалоРаботы = ВыборкаДетальныеЗаписи.Дата;    
       Сообщить(ВыборкаДетальныеЗаписи.Дата);
   Иначе
       Сообщить("Ошибка при получении даты приема!");    
   КонецЕсли;

Пишет ошибку получения даты. Выдимо результата не пустого и впрямь не существует :(
24 Wobland
 
29.11.11
16:36
(22) поверю, т.к. сам не помню. всё равно гвнокод ;)
25 andrewks
 
29.11.11
16:36
я один не въехал, чё надо получить ТС?
26 Wobland
 
29.11.11
16:37
(25) абсолютно пофих, у него запрос ничего не выбирает
27 GreenDay1986
 
29.11.11
16:38
Получить нужно дату приема так понимаю.
28 hhhh
 
29.11.11
16:40
(27) ну значит у тебя сотрудник не принят на работу.
29 Beduin
 
29.11.11
16:40
(27) Ты у нас спрашиваешь?
30 Wobland
 
29.11.11
16:40
(27) нет даты. что делать?
31 GreenDay1986
 
29.11.11
16:41
Нет, не спрашиваю. В документе дата приема присутствует, не пойму почему не выбирает
32 Wobland
 
29.11.11
16:42
(22) вот зачем путаешь? неопределено совершенно спокойно туда падает
33 DrShad
 
29.11.11
16:42
потому что нет дока соответствующегоусловию в запросе
34 andrewks
 
29.11.11
16:42
Если НЕ Результат.Пустой() Тогда
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

       Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       //НачалоРаботы = ВыборкаДетальныеЗаписи.Дата;    
       Сообщить(ВыборкаДетальныеЗаписи.Дата);
       КонецЦикла;
   Иначе
       Сообщить("Ошибка при получении даты приема!");    
   КонецЕсли;
35 salvator
 
29.11.11
16:44
(34) Там цикл-то особо не нужен, у него ПЕРВЫЕ 1
36 andrewks
 
29.11.11
16:45
НачалоРаботы='01010001 00:00:00';

   Если НЕ Результат.Пустой() Тогда
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

       Если ВыборкаДетальныеЗаписи.Следующий() Тогда
          НачалоРаботы = ВыборкаДетальныеЗаписи.Дата;    

       КонецЕсли;
   КонецЕсли;

   Если НачалоРаботы='01010001 00:00:00' Тогда
       Сообщить("Ошибка при получении даты приема!");    
   КонецЕсли;
37 Wobland
 
29.11.11
16:46
НачРаботы=?(Выборка.Следующий(), Выборка.Дата, '00010101')
38 andrewks
 
29.11.11
16:49
+(36) прошу прощения, литерал дат,ы конечно же, как '00010101 00:00:00'
39 andrewks
 
29.11.11
16:56
"ВЫБРАТЬ ПЕРВЫЕ 1
       |    Прием.Дата КАК Дата
       |ИЗ
       |    Документ.Прием КАК Прием
       |ГДЕ
       |    Прием.Сотрудник = &Сотрудник
       |ОБЪЕДИНИТЬ
       |ВЫБРАТЬ ДатаВремя(1,1,1)
       |УПОРЯДОЧИТЬ ПО
       |    Дата УБЫВ";
40 Wobland
 
29.11.11
17:17
(39) неа.
ВЫБРАТЬ ПЕРВЫЕ 1 ИЗ
(ВЫБРАТЬ
 Прием.Дата КАК Дата
ИЗ
 Документ.Прием КАК Прием
ГДЕ
   Прием.Сотрудник = &Сотрудник
ОБЪЕДИНИТЬ
ВЫБРАТЬ
 ДатаВремя(1,1,1))
УПОРЯДОЧИТЬ ПО
   Дата УБЫВ
41 andrewks
 
29.11.11
17:18
(40) у него один проход, так что монописсуарно. но так логичней, конечно же
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.