|
Ошибка преобразования datetime в MS SQL 2016 | ☑ | ||
---|---|---|---|---|
0
d546
16.11.17
✎
15:44
|
Проблема образовалась неожиданно.
Суть что перенесли базы на MS SQL 2016 и в разных конфигурациях начал выходить ошибки связанные в первую очередь с сохранением в регистры. Не стали проводится документы. https://yadi.sk/i/Y6O3Nde_3Pke3u При детальном разборе выяснил. Ошибка при помещении таблицы значений в запрос. Если есть поле типа Дата, то данные не передаются в SQL, т.е. становятся равными пустой дате. Кто нибудь сталкивался в проблемой. |
|||
1
d546
16.11.17
✎
15:47
|
//Таблица = Новый ТаблицаЗначений;
//Таблица.Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата")); // //НоваяСтрока = Таблица.Добавить(); //НоваяСтрока.Дата = Дата(2006,1,1); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВТ.Дата |ПОМЕСТИТЬ ВТ |ИЗ | &ВТ КАК ВТ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Дата |ИЗ | ВТ КАК ВТ"; Запрос.УстановитьПараметр("ВТ", Таблица.Выгрузить()); ТаблицаЗапроса = Запрос.Выполнить().Выгрузить(); Для каждого СтрТаблицы Из ТаблицаЗапроса Цикл ЗаполнитьЗначенияСвойств(Таблица.Добавить(), СтрТаблицы); КонецЦикла; |
|||
2
d546
16.11.17
✎
15:58
|
и если даже не таблицей значений передавать, а просто параметр типа дата, тоже ее в нулевую превращает в запросе.
|
|||
3
ptiz
16.11.17
✎
16:20
|
Платформа какой версии?
|
|||
4
d546
16.11.17
✎
16:20
|
1С:Предприятие 8.3 (8.3.10.2466)
|
|||
5
H A D G E H O G s
16.11.17
✎
16:22
|
Посмотреть профайлером запрос
|
|||
6
d546
16.11.17
✎
16:23
|
оказалось еще проще
любая дата помещенная во временную таблицу запроса становиться пустой, даже если берется из базы из документа такой пример для ЗУП 31 Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | БольничныйЛист.Дата |ПОМЕСТИТЬ ВТ |ИЗ | Документ.БольничныйЛист КАК БольничныйЛист |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Дата |ИЗ | ВТ КАК ВТ"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Если Выборка.Следующий() Тогда Сообщить(Выборка.Дата); КонецЕсли; |
|||
7
ptiz
16.11.17
✎
16:39
|
Попробуйте реструктуризацию таблиц сделат.
|
|||
8
d546
17.11.17
✎
09:18
|
проблема вообще без участия данных базы может выйти.
реструктуризация не причем. Сообщить(Выборка.Дата); выдает пустую дату Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | &Дата КАК Дата |ПОМЕСТИТЬ ВТ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Дата |ИЗ | ВТ КАК ВТ"; Запрос.УстановитьПараметр("Дата", ТекущаяДата()); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Сообщить(Выборка.Дата); КонецЕсли; |
|||
9
VladZ
17.11.17
✎
09:21
|
(0) "перенесли базы на MS SQL 2016" - зачем? Какие были причины перехода?
|
|||
10
d546
17.11.17
✎
09:23
|
кстати, в режиме совместимости Версия 8.2.13 проблемы нет
|
|||
11
vde69
модератор
17.11.17
✎
09:27
|
посмотрите на тип колонки в скуле, у меня подобное было... там был тип datetime2 вместо datetime
|
|||
12
d546
17.11.17
✎
09:28
|
(9) прирост производительности по сравнению с 2008
|
|||
13
d546
17.11.17
✎
09:28
|
(11) таблица временная, где посмотреть тип колонки?
|
|||
14
d546
17.11.17
✎
09:30
|
(11) если смотреть (8) то там нет данных из базы.
используется виртуальная таблица. где посмотреть тип колонки? |
|||
15
Dotoshin
17.11.17
✎
09:30
|
(0) Возможно проблема в смещении дат. Посмотрите, какие у вас настройки установлены.
Установка смещения дат в информационной базе на Microsoft SQL Server В диалоге "Добавление информационной базы/группы" при создании информационной базы на СУБД Microsoft SQL Server доступна установка параметра "Смещение дат". Раздел содержит дополнительную информацию о влиянии значения этого параметра на работу информационной базы. https://its.1c.ru/db/metod8dev/content/4055/hdoc |
|||
16
vde69
модератор
17.11.17
✎
09:30
|
"ВЫБРАТЬ ПЕРВЫЕ 1
| БольничныйЛист.Дата |ПОМЕСТИТЬ ВТ |ИЗ | Документ.БольничныйЛист КАК БольничныйЛист |; | соответсвенно в Документ.БольничныйЛист.Дата |
|||
17
d546
17.11.17
✎
09:32
|
(15) смещение стоит 2000, не должно быть проблем
|
|||
18
vde69
модератор
17.11.17
✎
09:34
|
я у себя не смог победить, писал в 1с, еще делал кучу фигню... у меня проблема была именно на ЗУП е с регистрами расчета... при чем танцы с бубном в самой базе SQL то же не принесли плодов, после реструктуризации востановлялось...
как я понял проблемы была непосредственно в кривых метаданных, в результате я перенес данные на пустую базу... |
|||
19
Широкий
17.11.17
✎
09:35
|
а в скульнике что стоит?
|
|||
20
d546
17.11.17
✎
09:42
|
(18) глянул в sql у таблицы поле тип datetime
|
|||
21
d546
17.11.17
✎
09:44
|
(19) версия интересует или что-то другое?
другие программы или что вообще интересует, можно конкретнее? |
|||
22
vde69
модератор
17.11.17
✎
09:51
|
какие права в SQL у пользователя под которым работает база?
создай нового пользователя в SQL, установи его DBO для базы и перенастрой на него сервер 1с |
|||
23
vde69
модератор
17.11.17
✎
09:54
|
ну и еще глянь в файле adojavas на сервере
var adDBTime = 134; если на сервере не стандартные настройки - там возможно будет другое... ну и еще региональные настройки сервера по дате проверь, возможно там используется не стандартный формат дат... |
|||
24
d546
17.11.17
✎
09:57
|
||||
25
vde69
модератор
17.11.17
✎
09:57
|
выполни на SQL запрос типа (синтаксис по памяти, наверняка там ошибки)
select * from convert('20150101',,134) |
|||
26
d546
17.11.17
✎
09:58
|
||||
27
vde69
модератор
17.11.17
✎
10:01
|
(26) повторяется ошибка под ним?
|
|||
28
d546
17.11.17
✎
13:41
|
проблема с Microsoft SQL Server Native Client
на одном сервере 1С стоит старая версия для подключения к SQL2005, отдельные сервера для 1с и SQL. и вот с этого сервера 1С, где стоит старый Native Client пробовали подключится к третьему серверу с SQL2016. из-за этого и выходит эта ошибка. запускали базу на сервере 1с с правильной версией Native Client и ошибки нет. |
|||
29
vde69
модератор
17.11.17
✎
13:44
|
я вообще сразу нативный клиент выключаю всегда...
|
|||
30
d546
17.11.17
✎
13:44
|
(29) где выключаешь и как?
|
|||
31
vde69
модератор
17.11.17
✎
13:48
|
||||
32
d546
17.11.17
✎
14:47
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |