gifts2017

При развертывании ИБ 1С v8.1 выбирайте СМЕЩЕНИЕ ДАТ = 2000

Опубликовал Вячеслав Гилёв (Gilev.Vyacheslav) в раздел Администрирование - Системное

При создании базы с параметром смещения равным 2000 часто решается проблема "не уникальности" индексов на "датах".
Если не знаете смещение у существующей базы, используйте скрипт
SEL ECT TOP 1 Offset FROM _YearOffset

О том, что в 1с v8.1 можно избежать проблему неуникальных индексов при наличии проблемных дат уже писал. Но нет, периодически возникают сомнения у новичков: а правда ли это.

Почитайте партнерский форум (проблемы) :

1. Это проблема присуща толко MS SQL Server ( например на DB2 такой заморочки нет вообще). Изначально смещение - это формат хранения дат в субд.

2. Короткий пересказ мыслей разработчиков " Литерал ДАТАВРЕМЯ(1, 1, 1) адекватно представляется на всех СУБД и считается нулевой датой. Даты от ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) до ДАТАВРЕМЯ(1, 1, 1, 23, 59, 59) считаются временем без даты и тоже адекватно интерпретируются на всех СУБД. Различное поведение возможно для дат из диапазона с ДАТАВРЕМЯ(1, 1, 2) по ДАТАВРЕМЯ(1752, 12, 31, 23, 59, 59). Эти даты не могут быть представлены на MS SQL Server с нулевым смещением дат и могут интерпретироваться либо как нулевые даты, либо вызывать ошибку операций над данными.

В результате можно получить ошибку вроде Microsoft OLE DB Provider for SQL Server: Adding a value to a 'datetime' column caused overflow. HRESULT=80040E07, SQLSrvr: Error state=1, Severity=10, native=517, line=1

3. И хотя официальная позиция 1С туманна :), не стоит искать приключения ...

Выбирайте смещение 2000.

 

 

 

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Вася Пупкин (nosk2k) 09.09.10 09:16
А есть способ найти документ или элемент в котором есть реквизиты с "плохими датами" ?
2. motherf 16.11.11 12:08
(1) смотрите мою обработку, она ищет все такие документы, правда могут быть системные таблицы...
(0) А можо поменять смещение у существующей базы. и как задать смещение при создании базы?
3. Владилен Беляев (vbelyaev) 26.06.13 06:36
(2) motherf,
1) выгрузи базу в *.dt (Конфигуратор - Администрирование - Выгрузить информационную базу)
2) создай Пустую базу на SQL сервере
3) подключи её к серверу предприятия, указав смещение 2000
4) загрузи базу из ранее выгруженного *.dt (Конфигуратор - Администрирование - Загрузить информационную базу)
5) пользуйся
Прикрепленные файлы:
4. Константин Орлов (konstantin5586) 19.02.14 12:17
Разве не проще переподключить базу и всё?
5. Андрей (AnKonAlm) 30.09.15 19:14
А меня спасла вот эта обработка.
Просто командный пересчет итогов видимо.
http://infostart.ru/public/146633/
6. Aleksey Zhuchkov (MrWonder) 31.03.16 17:17
А еще смещение дат можно поменять без перезаливки DT
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа