Имя: Пароль:
1C
1С v8
Сервер 1С 8.2 + postgres
0 _alex_mst_
 
12.02.15
11:47
Проблема такая: создаю базу, сохраняю документ с датой "10.02.2015" - в базе постгреса pgAdmin'ом это дата в таблице документа отображается как "2015-02-10" - это нормально; а вот на моём клиентском подключении (толстый клиент) этот док сохраняется с датой "01.01.2000" - wtf?!
дебажил запросы 1С:Сервера к базе - запрос возвращает дату в формате "2015-02-10".
1 _alex_mst_
 
12.02.15
11:49
толи 1С:Сервер уродует дату, толи клиент не так понимает пришедшую дату
2 _alex_mst_
 
12.02.15
11:51
ну и соответственно все движения по регистрам делаются тоже с датой "01.01.2000" - это уже в саму базу так пишется
3 _alex_mst_
 
12.02.15
11:53
Доки заносил с двух разных клиентов (два разных компа)
4 _alex_mst_
 
12.02.15
11:59
5 _alex_mst_
 
12.02.15
12:16
конфиг системы: win2k3 x64, postgresql x64, 1С:Сервер 1С:Предприятие 8.2 (8.2.19.121) x32, клиент 1С:Предприятие 8.2 (8.2.19.121)
6 _alex_mst_
 
12.02.15
12:32
?
7 polosov
 
12.02.15
12:36
(4) 3999 год это служебная дата, используется в РН. Она не влияет на тови заморочки с датами документов.
8 bolero
 
12.02.15
12:37
предположу, что в 1с 8.3 с pg 9.3 такого не будет
9 _alex_mst_
 
12.02.15
12:40
(7) Возможно, но в регистре накопления пишется 2000-й год, а соответственно движения и итоги левые, и запросы по периоду не работают
10 _alex_mst_
 
12.02.15
12:41
(8) возможно, но конфиг написан для 8.2
11 polosov
 
12.02.15
12:42
(9) Серв 1с и субд на одной машине?
12 _alex_mst_
 
12.02.15
12:44
(7) http://i9.pixs.ru/storage/9/0/2/tmpPNG_8359967_16010902.png
результат проведения документа
13 _alex_mst_
 
12.02.15
12:44
(11) да
14 polosov
 
12.02.15
12:50
(13) А проблема возникает при работе непосредственно на сервере?
15 _alex_mst_
 
12.02.15
12:55
(14) нет, в работе участвуют 2 компа: сервер (postgresql, 1С:Серв), мой комп (толстый клиент)/другой комп(толстый клиент). Запись в базу документа проходит правильно (потверждается первым скрином), а вот отображение данных из базы на клиенте кривое, и как следствие кривые движения по регистрам.
Документы проводятся на сервере, т.е. получается что 1С:Серв как-то криво читает дату из базы
16 _alex_mst_
 
12.02.15
12:57
(15) и оперирует уже с кривой датой
17 _alex_mst_
 
12.02.15
13:02
хотя, (0) - "дебажил запросы 1С:Сервера к базе - запрос возвращает дату в формате "2015-02-10"."
18 braslavets
 
12.02.15
13:07
(0) Было похожее. Решалось перезагрузкой сервера 1с.
19 _alex_mst_
 
12.02.15
13:08
Можно было бы платформу отдебажить и перекомпилить ))) - вопросов бы не было!
20 _alex_mst_
 
12.02.15
13:08
(18) и перегружал и переустанавливал - не помогает
21 Garikk
 
12.02.15
13:16
не знаю насколько это к постгри с 1с применимо
Но в оракле например, такие глюки вылезают когда в региональных настройках клиентов и сервера разные форматы дат стоят
22 Garikk
 
12.02.15
13:17
P.S. это не относится к 1с, я в другой софтине на оракле с такой штукой сталкивался
23 _alex_mst_
 
12.02.15
13:24
(21) проверял это тоже, одинаковые настройки
24 _alex_mst_
 
12.02.15
14:28
?
25 bolero
 
12.02.15
14:38
возможно, 1С в каком-то месте запрашивает дату в виде строки, а потом преобразовывает обратно строку в дату, но ожидает "русский" формат даты.

Попробуй ALTER DATABASE xxx SET datestyle TO GERMAN, DMY;

не гарантирую, что после этого вообще все не сломается!

кошерный (и дефолтный) стиль iso,ymd

Соответствующая настройка есть еще в postgresql.conf, но она вроде только на вновь созданные базы влияет.
26 _alex_mst_
 
12.02.15
14:49
(25) не помогло
27 bolero
 
12.02.15
14:51
(26) а подебажь запросы как в (0) - в каком виде дата идет?

клиент может сам datestyle переопределить в не зависимости от мнения базы
28 bolero
 
12.02.15
15:06
если опять идет как 2015-02-12, то либо клиент делает SET datestyle в начале соединения, либо дата в нативном формате передается

остается только искать место в конфигурации, где строка преобразуется в дату, и надеяться, что место это не в платформе
29 _alex_mst_
 
12.02.15
15:11
(28) это в платформе, т.к. док записывается стандартным методом платформы
30 _alex_mst_
 
12.02.15
15:12
(28) ведь запись идёт правильно, а считывание криво
31 bolero
 
12.02.15
15:26
(29) ну тогда либо подстраивать конфу под платформу посвежее, либо искать способ сделать повторный "русский" SET datestyle от клиента, что не сильно правильно (обязательно сломается в другом месте)
32 _alex_mst_
 
12.02.15
16:07
(31) ну да, перевёл всё на платформу 8.3 - всё ок