gifts2017

Как поменять смещение даты с 0 на 2000

Опубликовал Андроид (Андроид) в раздел Администрирование - Оптимизация БД (HighLoad)

В связи с тем что я в интернете не нашел ничего для решения этой проблемы, готов поделится своим опытом.

Суть проблемы в чем.. Если Вы случайно развернули базу на сервере SQL со «смещением даты» 0 то возникла проблема, когда в базе встречается реквизит с типом ВРЕМЯ т.е.в этот реквизит ставится 01.01.0001 10:30:00 или дата записалась пустой 01.01.0001 00:00:00. При записи такого реквизита не происходит его запись.

И интернете предлагают создать новую базу со смещением 2000.

Но новую базу создавать не очень хотелось. И менять у всех пользователях путь к базе.

Тогда я пошел по пути, а где ж хранится это значение в SQL-е. Нашел и поменял на 2000 и все стало ок..

А теперь по шагово, где поменять.

Выгнать всех пользователей.

ВНИМАНИЕ!!!

1.  Сначала сделайте резервную копию средствами 1С т.е. выгрузите ее в *.dt

 Это нужно делать до того как поменяете «смещение»

Если этого не сделать то во всей вашей базе спр., док, и т.д.

где есть есть реквизит дата будет стоять допустим 02.10.0009

ЧТО НЕ ДОПУСТИМО….

Итак Вы сделали выгрузку в *.dt 

2. Заходим в SQL Server Management Studio

Находим Вашу базу в списку нажимаем плюсик.

Находи там папочку «Таблицы» и раскрываем ее.

Откроется куча таблиц, идем в самый низ, находим таблицу

_YearOffset,  становимся на нее и правой клавишей выбираем пункт «Открыть таблицу» см. рис.1

Меняем значение 0 на 2000

Закрываем SQL Server Management Studio

3.  Заходим в конфигуратор и загружаем ранее сохраненную базу.

Если это не сделать, то все даты будут с годом 0009.

После того как база загрузилась… Можно  зайти в 1С и удостоверится что даты нормальные.

 Результат мы поменяли «смещение дата с 0 на 2000»

 

Не забываем + если вам помогло.

См. также

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

Комментарии

1. Игорь <...> (I_G_O_R) 13.10.09 00:47
ну и чем это отличается от создания новой базы?
2. gilv (Gilev.Vyacheslav) 13.10.09 02:03
>В связи с тем что я в интернете не нашел ничего для решения этой проблемы
ты об этом http://www.infostart.ru/public/21348/

низачот :evil:
Трактор; +1 1 Ответить 1
3. gilv (Gilev.Vyacheslav) 13.10.09 02:04
вследующий раз попробуй "поиск"
4. Андроид (Андроид) 13.10.09 12:56
I_G_O_R ничем не отличается..
Я так и написал что можно создать новую... Но если у вас 100 пользователей то прийдется всем поменять имя базы у каждого.

gilv Я читал этту ссылку.. Но ни одного слова там нет КАК поменять это смещение В УЖЕ СОЗДАННОЙ БАЗЕ
Повторяю создать новую базу не хотел...
forsagforsag; Pavel-T; pavel06; +3 Ответить
5. Денис (den_neo) 14.10.09 09:42
Правда незачет!!!
Зачем менять пути у пользователей, если можно просто подменить базу, и никаких проблем не будет.
8)
6. Андроид (Андроид) 14.10.09 12:59
den_neo
Да согласен глупость написал по поводу менять пути к базе. Помненить в скуле можно методом переименования...

Тогда рассмотривайте мой метод как один из вариантов когда ничего создавать не надо.
1 выгрузку сделать поменять 1 цифорку и 1 раз загрузить.

Метод создания новой базы никто не отменял..


7. рукав Рухан (andr_hav) 11.02.10 09:18
Рекомендую. Над данной проблемой бился два дня, причём сроки поджимали, и на исходе сил залез в интернет и нашел ответ. Данная статья помогла. Большое спасибо автору.
8. Ivan S (regnum) 02.03.11 07:11
Так делать нельзя будут ошибки даты разъедутся с теми которые были, не все конечно, но работать в такой базе, наверное нельзя, т.к. потом будут претензии т.е. появятся пустые даты.. м.б. автор тестировался на типовой и плохо протестил? Есть нормальное решение, которое рекомендует 1С. Вобщем плохое решение, использовать его на свой страх и риск, там где достоверность базы не нужна.
9. Денис И (Scag) 11.05.11 06:42
Нормальное решение:
выгрузить базу в dt, удалить базу в 1С и SQL, затем заново создать базу с тем же именем в 1С и SQL со смещением 2000 и загрузить базу из dt.
10. Дмитрий Костомаха (b1waver) 18.07.11 15:34
Scag,
в этом случае потеряется журнал регистрации, т.к. база будет создана с новым GUID.
11. logdog (logdog) 06.09.11 03:18
а что делать если проблема такая же для последовательности, но база файловая? тестирование и исправление, как и выгрузки не помогают
12. Sergey Ivanov (sergb1979) 24.02.12 10:11
Спасиб, написано все ясно и наглядно.
13. Максименко Михаил (Stribog) 15.06.12 14:31
Что делать если выгрузить в .dt нет возможности (база больше 10ГБ)?
14. Руслан Микулович (rumik007) 29.06.12 12:45
(13) Stribog,

Почему нет возможности, у меня база 70 гиг и выгружается нормально.
15. Сергей C (a31) 18.01.13 23:45

8.
regnum
02.03.11 7:11

Так делать нельзя будут ошибки даты разъедутся с теми которые были, не все конечно, но работать в такой базе, наверное нельзя, т.к. потом будут претензии т.е. появятся пустые даты.. м.б. автор тестировался на типовой и плохо протестил? Есть нормальное решение, которое рекомендует 1С. Вобщем плохое решение, использовать его на свой страх и риск, там где достоверность базы не нужна.

Изменено: regnum - 02.03.11 15:15

присоединяюсь, ОСТОРОЖНО - сделал точно как написано, получил ВСЕ документы с датами вида 18.01.0013 12:00:02, как то так
16. Сергей C (a31) 19.01.13 02:10
15.
a31
18.01.13 23:45

8. regnum 02.03.11 7:11 ...Показать

присоединяюсь, ОСТОРОЖНО - сделал точно как написано, получил ВСЕ документы с датами вида 18.01.0013 12:00:02, как то так
для инфо: сервер 2008 R2, скуля тож 2008 R2
вышел из положения так: выгрузил базу через 1с сервер в дт, убил базу в сервере, создал новую со смещением 2000, и загрузил дт в новую базу со смещением, - все встало как надо.
17. Adapter Бахтыреев (adapter) 24.01.13 10:34
А в чем разница??:
1 - создать новую в скуле и в нее загрузить DT
2 - поменять параметр в старой базе скула и в нее загрузить DT
18. Sergey Ivanov (sergb1979) 20.11.14 09:33
(2) gilv, Здесь написано четко и понятно. КАк ФАК
В той статья все причины и много инфы.
19. Sergey Andreev (starik-2005) 20.12.14 13:14
Хорошая статья, мне помогло
20. Павел Семенов (pavel06) 17.09.15 12:08
Статья полезна, благодаря картинке, которой у Гилева нет. Кроме того у него ссылка на форум для избранных, которую не прочесть.
Где + ставят я не понял.
21. Андрей (AnKonAlm) 30.09.15 19:13
А меня на 100% спасла вот эта обработка:
http://infostart.ru/public/146633/

Дело в том, что я не мог выгрузиться в dt - места мало на диске, а база огромная.
22. Aleksey Zhuchkov (MrWonder) 31.03.16 17:30
Без перезаливки DT'шника можно делать так
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа