Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Ошибка СУБД: Ошибка Sql: Неправильные параметры функции 'datediff' , ошибка при выполнении запроса          
kasya Подменю пользователя
сообщение 05.02.12, 19:38
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

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

при выполнении данного запроса появляется оршибка "Ошибка СУБД: Ошибка SQL: Неправильные параметры функции 'DateDiff' ".
Что я делаю неверно?

logist Подменю пользователя
сообщение 05.02.12, 19:52
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

ПередачаВПрокат.Дата - значение является Датой или ДатаИвремя? Насколько я в курсе 1С хочет видеть дату в секундах.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kasya Подменю пользователя
сообщение 05.02.12, 20:04
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 05.02.12, 20:52) *
ПередачаВПрокат.Дата - значение является Датой или ДатаИвремя? Насколько я в курсе 1С хочет видеть дату в секундах.
Дата и время, верно.

logist Подменю пользователя
сообщение 05.02.12, 21:06
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

у Вас в РАЗНОСТЬДАТ первый параметр получается наверное число, а должно быть время. Вообщем проблема именно в этой функции


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kasya Подменю пользователя
сообщение 05.02.12, 21:27
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 05.02.12, 22:06) *
у Вас в РАЗНОСТЬДАТ первый параметр получается наверное число, а должно быть время. Вообщем проблема именно в этой функции

ДОБАВИТЬКБАТЕ - я должна получить новую дату (это срок возврата)
РАЗНОСТЬДАТ - я должна получить количество дней (это просрочка)

Batchir Подменю пользователя
сообщение 05.02.12, 21:41
Сообщение #6

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1434 раз
Рейтинг: 0

Здесь проблема:
|РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ПередачаВПрокат.Дата, ДЕНЬ, ПередачаВПрокат.ДанныеПередачиВПрокат.КоличествоДнейПроката), &Дата, ДЕНЬ) КАК Просрочка


в РАЗНОСТЬДАТ не правильные параметры, а именно ДОБАВИТЬКДАТЕ возвращает не то что нужно.
Для примера следующий запрос отработал без проблем:

|ВЫБРАТЬ
|    РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&ТекДата, ДЕНЬ, 10), &ТекДата, ДЕНЬ) КАК Просрочка

kasya Подменю пользователя
сообщение 06.02.12, 11:45
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

все еще актуально, т.к. не работает..

Batchir Подменю пользователя
сообщение 06.02.12, 15:53
Сообщение #8

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1434 раз
Рейтинг: 0

Если ничего не делать то оно и не заработает. Вам указали где ошибка.
Смотрите типы данных которые используются в "ДОБАВИТЬКДАТЕ" и "РАЗНОСТЬДАТ".
Я специально привел рабочий текст запроса что бы показать это.

kasya Подменю пользователя
сообщение 06.02.12, 16:45
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Batchir @ 06.02.12, 16:53) *
Если ничего не делать то оно и не заработает. Вам указали где ошибка.
Смотрите типы данных которые используются в "ДОБАВИТЬКДАТЕ" и "РАЗНОСТЬДАТ".
Я специально привел рабочий текст запроса что бы показать это.
ПередачаВПрокат.Дата - тип Дата, ПередачаВПрокат.ДанныеПередачиВПрокат.КоличествоДнейПроката - тип Число. Тут все в порядке.

Batchir Подменю пользователя
сообщение 06.02.12, 18:29
Сообщение #10

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1434 раз
Рейтинг: 0

Ну я не знаю, чудес ведь не бывает и врятили тут баг платформы.
Цитата
ПередачаВПрокат.Дата - тип Дата
а состав даты какой?

Собственно, пример который я привел работает, а на пальцах гадать почему у Вас так а у нас не так - тяжело
Что бы сказать конкретно нужен ЦФ.

kasya Подменю пользователя
сообщение 06.02.12, 21:21
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 29
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Batchir @ 06.02.12, 19:29) *
Ну я не знаю, чудес ведь не бывает и врятили тут баг платформы.
а состав даты какой?

Собственно, пример который я привел работает, а на пальцах гадать почему у Вас так а у нас не так - тяжело
Что бы сказать конкретно нужен ЦФ.
а что такое ЦФ?


а, поняла. афйл конфигурации


**туплю

Сообщение отредактировал logist - 07.02.12, 2:49
Причина редактирования: Правила п. 13 log

yaroslav78 Подменю пользователя
сообщение 20.02.12, 21:48
Сообщение #12

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 0 раз
Рейтинг: 0

Т.к. соединенние "левое" я бы вместо
ДОБАВИТЬКДАТЕ(ПередачаВПрокат.Дата, ДЕНЬ, ПередачаВПрокат.ДанныеПередачиВПрокат.КоличествоДнейПроката)

писал бы
ДОБАВИТЬКДАТЕ(ЕСТЬNULL(ПередачаВПрокат.Дата, &Дата), ДЕНЬ, ЕСТЬNULL(ПередачаВПрокат.ДанныеПередачиВПрокат.КоличествоДнейПроката,0))


Да и вообще - странно записаны соединения.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.09.24, 13:17
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!