Имя: Пароль:
1C
 
ERP. 1с время сеанса не равно времени клиента
0 cons74
 
22.12.16
08:04
http://shot.qip.ru/00Qtkp-5oZhWguH6/
Сервер - один часовой пояс, клиент - другой. Время в документе встает как на сервере, а надо как на клиенте.
1 Serg_1960
 
22.12.16
09:14
УстановитьЧасовойПоясСеанса ()
2 NafNaf2000
 
22.12.16
09:27
интересно, а если на одном клиенте уже наступит "завтра", а на другом все проведения будут неоперативными?
3 cons74
 
22.12.16
09:37
(2) Я не знаю. Я может и хочу неправильного - а как должно быть? Что в документации есть на эту тему?
4 cons74
 
23.12.16
07:56
(1) пришел к выводу, что именно так и сделаю. Один вопрос: как его получить, этот часовой пояс? Я конечно могу прописать его руками, но хочется чтоб система определяла его автоматом с клиента.
5 DrZombi
 
гуру
23.12.16
08:26
(0) >>> надо как на клиенте.

Кому надо? Зачем? Для чего?
Порой пользователь не ведает, что творит и где работает :)
6 DrZombi
 
гуру
23.12.16
08:28
(3) Как должно быть должны решить вы сами. 1С может по любому.

...
А так непонятно много моментов, что бы вам дать дельный совет.
Но когда один город будет бить документы на перед, то у вас в БД может возникнуть момент, когда Документы по продажам будут возникать раньше, чем по приходу (это пример) :)
7 cons74
 
23.12.16
08:36
(6) "Но когда один город будет бить документы на перед, то у вас в БД может возникнуть момент, когда Документы по продажам будут возникать раньше, чем по приходу (это пример) :)" - про это я тоже подумал. Но мне сказали что учет будет по одному отдельному юр.лицу. Что как-бы согласуется с http://its.1c.ru/db/pubessence/content/143/hdoc
8 ptiz
 
23.12.16
09:41
Я так делал:
Процедура СкорректироватьЧасовойПоясСеанса() Экспорт

    Структура  = ПолучитьТекущиеДаты();
    ТД = Структура.ТекущаяДата;
    ТДСеанса = Структура.ТекущаяДатаСеанса;
    
    Разница = Окр((ТД - ТДСеанса) / 3600);
    Если Разница = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Стр = "GMT+00:00";
    УстановитьЧасовойПоясСеанса(Стр);
    
    Структура  = ПолучитьТекущиеДаты();
    ТД = Структура.ТекущаяДата;
    ТДСеанса = Структура.ТекущаяДатаСеанса;
    Разница = Окр((ТД - ТДСеанса) / 3600);
    
    Стр = "GMT+0" + Разница + ":00";
    
    УстановитьЧасовойПоясСеанса(Стр);

КонецПроцедуры

Функция ПолучитьТекущиеДаты()

    // Важно, чтобы в датах совпадали секунды, чтобы даты были гарантировано в одном часу! Вероятность 1 / 1000000000, но есть.
    
    ТД = ТекущаяДата();
    ТДСеанса = ТекущаяДатаСеанса();
    
    Пока Секунда(ТД) <> Секунда(ТДСеанса) Цикл
        //Сообщить("Разные секунды ТД=" + ТД + " ТДСеанса=" + ТДСеанса);
        ТД = ТекущаяДата();
        ТДСеанса = ТекущаяДатаСеанса();
    КонецЦикла;

    Структура = Новый Структура;
    Структура.Вставить("ТекущаяДата", ТД);
    Структура.Вставить("ТекущаяДатаСеанса", ТДСеанса);
    
    Возврат Структура;
    
КонецФункции // ПолучитьТекущиеДаты()
9 cons74
 
23.12.16
12:13
(8) я так понял, это толстый клиент?
10 ptiz
 
23.12.16
15:26
(9) ага
11 cons74
 
30.12.16
16:54
(8) а зачем строка Пока Секунда(ТД) <> Секунда(ТДСеанса) Цикл?
У меня на сервере и клиенте разница в минуту.
Ошибка? Это не ошибка, это системная функция.