Имя: Пароль:
1C
1С v8
Добавление значения в столбец "datetime" привело к переполнению
0 wangoff
 
16.06.14
20:14
Друзья, помогите разобраться в вопросе:

Есть внешний источник данных. Он подключается к таблице SQL, которая хранит данные регистра накопления второй базы 1С.

При запросе используется функция ДобавитьКДате(ВнешнийИсточник.Период,Год,-2000), дабы избавиться от смешения дат.
При этом возникает ошибка:


Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 22007
Номер ошибки: 517
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Добавление значения в столбец "datetime" привело к переполнению.


Я проверил, все выбираемые записи имеют корректные данные в поле период. И если использовать функцию ДобавитьКДате(ВнешнийИсточник.Период,Год,-100), то все работает нормально. И исходная функция работала нормально неделю назад.
1 фобка
 
16.06.14
20:19
>И исходная функция работала нормально неделю назад.
Появилась какая-то запись с пустым периодом?
В общем, "ДобавитьКДате(ВнешнийИсточник.Период,Год,-2000)" выпадает из нормального интервала дат
2 wangoff
 
16.06.14
20:30
(1) Это было первое, что я проверил. Если в запросе просто выбрать даты, без смещения в -2000, то выходят значения, - все за 4014 год.
3 фобка
 
16.06.14
20:34
(2) 4014 - очень странная цифра, непонятно откуда она взялась.
Если конкретно здесь ошибки ты не видишь, значит ошибка в другом поле. Вообще, я бы делал запрос на выборку, с упорядочиванием по этой дате и визуально пробежался по результату
4 rendez-vous
 
16.06.14
20:37
(0) текст запроса нужен
5 wangoff
 
16.06.14
20:46
(4) Что даст текст запроса? Ошибка воспроизводится изменением параметра функции ДобавитьКДате()

ВЫБРАТЬ
    РНОплаты.Сумма КАК Сумма,
    ДОБАВИТЬКДАТЕ(РНОплаты.Период, ГОД, -2000) КАК Период,
    ДокументСтраховойПолис.Номер,
    ПРЕДСТАВЛЕНИЕ(РНОплаты.РегистраторСсылка) КАК Регистратор
ИЗ
    ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.РНОплаты КАК РНОплаты
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.ДокументСтраховойПолис КАК ДокументСтраховойПолис
        ПО РНОплаты.ПолисСсылка = ДокументСтраховойПолис.ПолисСсылка
ГДЕ
    ДокументСтраховойПолис.Номер В(&Номера)
    И РНОплаты.Активность
6 wangoff
 
16.06.14
20:56
(3) в смысле - странный? Они ж в SQL хранятся со смещением.
7 rendez-vous
 
16.06.14
20:59
(5) А теперь убери ГДЕ.
Думается мне, что переполнение происходит до того как накладывается фильтр.
8 фобка
 
16.06.14
21:10
(7) ну, это врядли..


FROM
ON
JOIN
where
GROUP BY
WITH CUBE или WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
9 rendez-vous
 
16.06.14
21:31
(8) Так то оно так. Но источник то внешний. Как в этом случае работает платформа?
10 фобка
 
16.06.14
21:37
(9) это да..
"Обратите внимание, что фактическое физическое выполнение оператора определяется обработчиком запросов и порядок из этого списка может значительно отличаться."

в общем, надо глядеть саму таблицу

Выбрать РНОплаты.Период Из
ВнешнийИсточникДанных.КонтинентСтрахование30.Таблица.РНОплаты РНОплаты
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.