Имя: Пароль:
1C
 
Пересчет часового пояса городов по отношению к определенному городу
0 LivingStar
 
12.02.15
10:04
Задача в получении времени определенного города, по введенному времени разных городов. Есть справочник города, там разные города. Есть документ, по разным городам где указанно время в учете с часовым поясом этих городов. Нужно вывести в отчете колонку где время будет пересчитано к часовому поясу определенного города. Где можно было бы получить такую информацию?
1 probably
 
12.02.15
10:30
Путем сложнния и вычитания, не?
Все данные должны хранится в едином формате а ля utc+3.
Отсюда разница считается одним арифметическим действием
2 LivingStar
 
12.02.15
10:34
(1) вопрос в том где взять эти данные, где есть эта часовая разница к такому то городу. Что за формат?
3 Гёдза
 
12.02.15
10:34
(2) где взять часовой пояс города ты хотел спросить?
4 LivingStar
 
12.02.15
10:35
(3) да, если это так называется, часовой пояс города по отношению к нему всех прочих городов
5 LivingStar
 
12.02.15
10:48
пока вижу вариант в инете найти ресурс с разницей в часах с тем или иным городом, добавить поле в справочник и указать эти цыфры разницы в часах, для последующего пересчета
6 probably
 
12.02.15
11:16
(2) городов сколько? десятки тысяч?
или несколько десятков? о чем речь вообще?
Взять таблицу и руками её вбить.
Если города не только отечественные, то нужно будет предусмотреть переход на зимнее/летнее время.
7 Гёдза
 
12.02.15
11:19
(4) часовые пояса относительно гринвича идут вообщето
8 probably
 
12.02.15
11:33
(7) курс школьной географии я готов только за деньги давать)
Оффтоп: пугает меня состояние нашей нации, складывается впечатление, что подавляющее большинство живет по принципу "мы ведь дальше своей Дубровки никуда не ездим" (с)
9 LivingStar
 
12.02.15
12:48
(6) городов может быть сколько угодно и какие угодно, и зарубежье тоже

(7) И как этим воспользоваться?

(7) есть родственник, преподает географию в школе, думаете он что подскажет?
10 IUnknown
 
12.02.15
12:50
это в клюшках или на снеговике?
11 IUnknown
 
12.02.15
12:55
МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс())
12 ktvladimir
 
12.02.15
12:57
По крайней мере по России можно завязать на регион
http://www.kakras.ru/doc/time-zone.html#table-time-zone
13 ktvladimir
 
12.02.15
12:58
а дальше курить стандартные функции МестноеВремя, УниверсальноеВремя итд
14 IUnknown
 
12.02.15
12:59
зачем на что-то завязывать если все уже до нас придумано?
15 LivingStar
 
12.02.15
13:03
(10) БП 2.0
16 LivingStar
 
12.02.15
13:04
(11) не знаю как этим пользоваться, разницу в часах плюс, или минус все равно в справочник заносить, дополнительным реквизитом придется
17 IUnknown
 
12.02.15
13:05
(16)я тебе показал как этим пользоваться ... часовойПояс() берется от часового пояса твоего компьютера ...
18 IUnknown
 
12.02.15
13:06
то есть что-бы все работало надо только на компах где это будет работать установить правильные часовые пояса
19 LivingStar
 
12.02.15
13:08
(17) понятно, нужно поразбираться, но как определять сколько прибавить к дате времени часов или сколько отнять

компьютер сервер, там стоит операционная система, время вроде на час вперед
20 IUnknown
 
12.02.15
13:11
(19)еще раз ничего прибавлять и отнимать не нужно ...

можешь просто руками на своем компе поменять часовые пояса и попробовать получить результат функцией в табло у предприятия

МестноеВремя(ТекущаяУниверсальнаяДата(), ЧасовойПояс())
21 IUnknown
 
12.02.15
13:13
ТекущаяУниверсальнаяДата() - возвращает дату по Гринвичу
ЧасовойПояс() - возвращает часовой пояс

МестноеВремя - функция возвращает местное время исходя из двух параметров ... время по Гринвичу ... часовой пояс
22 ktvladimir
 
12.02.15
13:22
23 LivingStar
 
12.02.15
13:39
(21) отчет, в каждой строке практически разный город, и есть время для каждого города, свое, в своем часовом поясе, мне нужно это время для каждого города пересчитать под определенный город, пока не понял как эта функция может помочь
24 LivingStar
 
12.02.15
17:13
(20) Как ничего не нужно отнимать и прибавлять, а как узнать разницу определенного города с прочими, идущими в списке строк отчета, что бы вывести текущее время по определенному городу???
25 LivingStar
 
15.02.15
11:42
(20) что бы использовать эту функцию нужно ввести в базу разницу по времени для каждого города?
26 LivingStar
 
15.02.15
11:53
(6) как предусмотреть переход на зимнее время и обратно для зарубежных городав?
27 Jaap Vduul
 
15.02.15
13:11
https://ru.wikipedia.org/wiki/Tz_database

более подробно, но на английском
http://en.wikipedia.org/wiki/Tz_database
28 ShoGUN
 
15.02.15
13:32
(25) Тебе нужно (образно), сидя в Новосибирске пересчитывать всё по камчатскому времени? Или всё же просто  пересчитывать всё по местному времени?
29 LivingStar
 
15.02.15
14:09
(28) есть колонка, в которой разное время, города которому принадлежит эта строка, Мне нужно, все это время, разное, перевести в новосибирское время. Есть справочник города. Пока я начал в колонку разница с новосибирском, проставлять туда часы, + или - разницу. Потом буду либо пересчитывать выводя в колонку "Время по новосибирску".  Либо пробовать пользоваться функцией (20), если она поможет.

Правильный ход решения?
30 ShoGUN
 
15.02.15
14:12
(29) Неверный подход. Храниться всё должно с одинаковым временем. А модификация должна быть в момент записи(приводим время к одному часовому поясу, например GMT+0) и в момент вывода(переводим время из гринвического в тот пояс, в котором нужно выводить.
31 LivingStar
 
15.02.15
14:24
(30) вам видимо это все ясно но мне не понятно, то что я ввожу в справочник каждому городу разницу с новосибирском, не верно?
Как переводить я буду если не буду знать на сколько отличается время с новосибирском?
32 LivingStar
 
15.02.15
14:28
В документе хранится во времени того или иного города. Мне нужно перевести в новосибирское все это, если не вводить разницу часов в справочник от куда её брать?

Как приводить в одному часовому поясу? Зачем? Я читал что сейчас все хранится в unixtime в универсальном времени. Зачем только в него переводить? Если есть время которое нужно просто перевести в новосибирское используя разницу во времени.
33 LivingStar
 
15.02.15
14:33
(30) возможно вы правы, но опять же как время введенное в формате того или иного города перевести не зная часы разницы?
34 ShoGUN
 
15.02.15
14:34
(32) Делай как знаешь. Ты в своём способе сам же запутался и просишь помощи. Тебе говорят - делай так, так проще. Нет - надо поспорить.
>Мне нужно перевести в новосибирское все это, если не вводить разницу часов в справочник от куда её брать?
Документ вводится на компьютере, который имеет свои часы, которые настроены на определённый часовой пояс. Из (21) видно, что эти настройки можно получить. ПРИ ЗАПИСИ документа.
35 ShoGUN
 
15.02.15
14:34
(33) Почему не зная-то? В каждом компьютере есть свои часы. При записи ты знаешь и текущее время, и часовой пояс.
36 LivingStar
 
15.02.15
14:35
(30) подскажете как переводить в (GTM+0) можно конечно, делать дополнительные поля и хранить там что угодно.

Я хочу сделать правильно по этому спрашиваю у вас.
37 LivingStar
 
15.02.15
14:36
(35) если в документах записываются разные города, от куда я буду знать их время???? есть их время и название города и все, я сейчас добавляю разницу часовую с новосибирском, хотите сказать это не нужно делать?
38 ShoGUN
 
15.02.15
14:37
(36) 1С и так всё приводит к одному времени - времени сервера, вне зависимости от того, где сидит клиент.
39 ShoGUN
 
15.02.15
14:38
(37) Опиши задачу _полностью_. Мы сейчас говорим о Дате-времени документа или о каком-то времени, вводимом вручную?
40 LivingStar
 
15.02.15
14:38
(34) я не спорю, я спрашиваю, так как не понимаю.

Менеджер сидит в новосибирске, и вводит в документы разные города и время в формате этих городов понимаете???? Каким образом его переводить? Разницу я считаю нужно вносить в справочник в любом случае.

Все это делается на одном сервере.
41 ShoGUN
 
15.02.15
14:40
(40) Опиши задачу полностью!
42 LivingStar
 
15.02.15
14:41
(39) Это не дата документа, это дата время подачи транспорта к примеру, в разные города. Введена она во времени того города. Делается все на одном сервере. Нужно перевести эти дата время в в дату время новосибирские. Если москва, то -3, и тд....
43 mdocs
 
15.02.15
14:44
омг. нужно или не нужно, брось монетку ясности меньше не станет.
44 LivingStar
 
15.02.15
14:46
(41) я описал задачу, прозрачная? Я думаю верно задумал, но вот все равно узнаю.... Так как эти переводами дат не занимался. Но разницу то в справочник вводить в любом случае нужно так же????

Например, есть дата время Бандунг (разница с новосибирском 1),  Банско (разница с новосибирском -4), Барабинск (разница с новосибирском 0)

(43) Я парализован отчаянием к жизни, страхами, какой ярости (((( Я просто пытаюсь понять. Вы хотите сказать что не нужно? Как тогда то что в примере я переведу в новосибирское время, не зная разницы? В 1с нет функции, куда передавать название городов и что бы она выдавала разницу во времени!!!

Так же для зарубежных городов следует учесть перевод с зимнего времени на летнее, это вообще не понятно мне ((((
45 mdocs
 
15.02.15
14:50
Тебе уже сто раз описали решение, когда ты читать начнешь. - все даты хранить в одном часовом поясе, при открытии формы или при выборе города показывать часовой пояс этого города и время в чп этого города.
46 ShoGUN
 
15.02.15
14:50
(42) Бери базу из (27) и делай справочник в 1С по ней. Города - это справочник? Вот в нём делай реквизит "смещение времени". Время приводи при записи(или при вводе в поле ввода). Дальше отображай, как нужно, добавляя к хранимому времени нужное смещение.
47 ShoGUN
 
15.02.15
14:51
Учёт перевода - это сложно, задачка нетривиальная, нужно описать все тонкости всех часовых поясов.
48 LivingStar
 
15.02.15
14:51
(45) мне просто не понятно
49 ShoGUN
 
15.02.15
14:53
(48) Что именно тебе непонятно?
50 LivingStar
 
15.02.15
14:55
(46) думаете мне понятно????  и то что в (27) думаете мне понятно, первый раз вижу, дело в том что.
51 LivingStar
 
15.02.15
14:55
(46) мне не нужно время в справочник вводить, там только названия городов и все, для выбора в документ
52 LivingStar
 
15.02.15
14:56
(46) я и сделал в справочнике реквизит разница с новосибирском
53 LivingStar
 
15.02.15
14:59
есть много вопросов что мне не понятно, не понятно например как время введенное во времени города Байкальска, пусть 06:23:47 привести во время UTC например?
54 LivingStar
 
15.02.15
15:00
(53) не понятно зачем его приводить в UTC, когда я имея время во времени Байкальска смогу перевести во время Новосибирска, зная разницу во времени 2 часа. Которую я ввел в реквизит справочника города.
55 ShoGUN
 
15.02.15
15:05
(52) Не надо так делать. Это справочная информация, город в пространстве не перемещается, часовые пояса меняются довольно редко. Оператор задолбается каждый раз разницу вводить.
(53) Мне пофиг, в UTC ты его будешь приводить, в MSK, или в Новосибирское. Я говорю только о том, что в базе его надо хранить в одном и том же поясе.
56 LivingStar
 
15.02.15
15:13
(55) Сейчас моя задача вводить разницу в часах в справочник, там 1991 элемент. Это делать буду я.

Почему каждый раз???? Я раз проставлю, и по этой разнеце будет пересчитываться время для новосибирска.

Операторы сами вводит время, и видимо в часовом поясе города на который заводится документ.

Я могу хранить. Но зачем???? Вы понимаете что я имею город и его разницу с новосибирском в часах + или -, и время в часовом поясе разных городов, которое буду переводить в новосибирское, изменяя его на установленную разницу в справочнике .

Честно не пойму о чем вы и как делать по вашему. Реально не понятно просто.
57 LivingStar
 
15.02.15
15:15
Я имею "время подачи транспорта" в часовом поясе какого либо города. Название города и разницу с часовым поясом новосибирска.

Этого мне достаточно что бы перевести "время подачи транспорта" в новосибирское время.

Это я так понимаю решение для этой задачи.

Согласен что "время подачи транспорта" можно хранить в едином формате, в каком нибудь невидимом реквизите документа. Но для чего? И как его туда переводить и зачем, не пойму.
58 ShoGUN
 
15.02.15
15:17
(56) Ни хрена не понял из твоего потока сознания. Как вот это:
>мне не нужно время в справочник вводить, там только названия городов и все, для выбора в документ
Соотносится вот с этим:
> Сейчас моя задача вводить разницу в часах в справочник, там 1991 элемент. Это делать буду я.

Если это троллинг, то очень тупой, и хочется послать тебя матом.
59 ShoGUN
 
15.02.15
15:21
Хотя нет, хочется послать на курсы риторики, чтобы мысли свои поучился выражать.
60 LivingStar
 
15.02.15
15:26
(58) я хотел сказать, на (46) что пока в справочнике только города. Их названия для выбора в документ. И сейчас я буду туда проставлять числа + или -, часовая разница с новосибирском. Для пересчета. Делать это буду я и один раз. Главное заполнить раз что бы потом пересчитывать все эти значения поля "время подачи транспорта" в новосибирское время.
Заполняю по time.yandex.ru, ног для некоторых городов не нахожу нат числовой разницы по времени + или -.
61 LivingStar
 
15.02.15
15:28
Добавлю возможно поле "время подачи транспорта в НСК" и буду там все хранить в одном формате, что и нужно. Но что бы мне пересчитать в этот формат, я сейчас заполняю поле справочника города разница с новосибирском. Как иначе то?
62 ShoGUN
 
15.02.15
15:29
(61) Это то, что я предлагал тебе сделать, только базу предлагал другую использовать.
63 LivingStar
 
15.02.15
15:31
(62) то есть не самому вводить разницу а где то брать? Каким образом? В 27 я прочитал что, что то там хранится на ftp и прочее. Как мне понять как использовать предлагаемую вами базу из (27)?
64 ShoGUN
 
15.02.15
15:38
(63) Если всё делать сначала, и правильно - то хранить надо не смещение, а часовой пояс(таймзону), из-за перевода часов.
К базе есть описания: http://www.iana.org/time-zones/repository/tz-link.html
Её посоветовали, потому что она самая полная(видимо) и открытая.

Ты волен использовать, что хочешь, понятное дело. И реализовывать как хочешь. Но и проблемы будут на твоей совести, понятное дело.
65 ShoGUN
 
15.02.15
15:39
Это не далеко не самая простая задача, поверь на слово.
66 LivingStar
 
15.02.15
15:53
(64) да я реально не понимаю как это использовать, как к этому подступиться вообще?

Я же не  php программист.
67 probably
 
15.02.15
15:54
Автор, ну жесть же в таком возрасте и с таким опытом так тупить!
У тебя задача - сложить два числа, ты её решаешь четвертый день.
Грех - зарабатывать на чужом тугодумии, но есть неуемное желание это сделать. Как тебя направить в нужное русло уже походу все отчаились.
Тебе дали четкий совет: заведи справочник Города с реквизитом время по гринвичу и галкой, есть ли в этом городе переход на зимнее время. Больше тебе ничего не нужно!
Дальше ты двумя арифметическими действиями получаешь нужное тебе время. Всё.
Если опять споры начнуться, что надо разницу с Новосибом хранить, а не гринвич, еще раз поясню: каждый город находится в своём поясе. Справочная информация - это часовой пояс. Спроси меня сейчас разницу между Екб и Омском и я буду долго соображать, и сведется всё к тому, что я загуглю разницу между екб и гринвичем, омска и гринвича.
И еще причина: завтра твой менеджер переезжает в Иркутск и всю твою систему надо переделывать
68 mdocs
 
15.02.15
16:13
кроме того - автор ты программист или хрен собачий? Заполнять справочники явно не твоя работа. а вот реализовать правильно алгоритм необходимо.
69 LivingStar
 
15.02.15
16:18
(68) директор заставила заполнять, я уже уволился буквально в субботу, но, единственный выход был это отменить своё увольнение, на неопределенный срок, так как иначе жизни бы не было вообще. И вот я сижу решаю эту задачу далее.
70 LivingStar
 
15.02.15
16:20
(67) мне не понятно как хранить время по гринвичу, что это значит???? И если будет галка перевод на зимнее время, то как её пересчитывать мне тоже не понятно.
71 LivingStar
 
15.02.15
16:21
(67) реально не понимаю
72 LivingStar
 
15.02.15
16:22
(67) вы правы конечно, ваша систему будет универсальной, но как её сделать я не пойму, как сохранять время по гринвичу не пойму, и если оно будет иметься как его пересчитывать во время того или иного города?
73 ShoGUN
 
15.02.15
16:31
(72) Ещё раз, совсем правильное решение(учитывая, что города могут быть по всему миру):
Справочник Города:
-Наименование
-Таймзона
Справочник Таймзоны:
-Наименование таймзоны.
-Смещение относительно Гринвича(оно же зимнее)
-Переход на летнее время(Именно так, а не на зимнее, у нас тут один президент допустил эту ошибку), флаг(булево).
-Смещение относительно Гринвича летнее
-Момент перехода на зимнее летнее время.
-Момент перехода на летнее время.

Это хранится для КАЖДОЙ таймзоны, а дальше уже пишется 2 функции:
ПеревестиВремяВМестное(Время, Таймзона), получает таймзону и время в гринвиче, возвращает время таймзоны.
ПеревестиВремяВUTC(Время, Таймзона), получает таймзону и местное время, возвращает время по гринвичу.

Готовых функций у меня нет, и они довольно сложные, особенно с учётом граничных условий. Но это самое правильное решение.
74 ShoGUN
 
15.02.15
16:32
на зимнее летнее время. => на зимнее время.
75 LivingStar
 
15.02.15
16:32
что бы сохранить время по гринвичу что нужно сделать с временем того или иного города? не зная ни разницы во времени ни часового пояса??? и что потом с ним делать?
76 LivingStar
 
15.02.15
16:36
Прикольно, тут реально голову сломать можно. И если они тем более довольно сложные, то куда мне до них???? тут нужно разбираться сидеть продолжительно, искать решение.

Пока для себу вижу решение обойтись тем чем я придумал. Это проще и не универсальное решение. Но зато видимое.

(73) так с ходу реально сложно, этим нужно заниматься, разбираться.

Если ну будущее оставить
77 ShoGUN
 
15.02.15
16:45
(76) На первых порах можно сделать так:
Справочник Города:
-Наименование
-Таймзона
Справочник Таймзоны:
-Наименование таймзоны.
-Смещение относительно Гринвича(оно же зимнее)

Функции те же, но в этом случае они будут сильно проще на первых порах, это будет расширяемо и можно будет дописать в будущем, добавляя поля в справочник и исправляя функции.
78 LivingStar
 
15.02.15
16:58
(77) знать еще к какой зоне тот или иной город относится, все равно проставлять

смещение относительно гринвича, там число будет?
79 ShoGUN
 
15.02.15
17:01
(78) Число, но со знаком. И точность - 1 знак после запятой, т.к. есть например GMT+5:30:
https://ru.wikipedia.org/wiki/Список_часовых_поясов_по_странам
80 ShoGUN
 
15.02.15
17:02
(78) Ну заполнение можно автоматизировать, но базу нужно нарыть с русскими названиями городов(что проблематично).
81 LivingStar
 
15.02.15
17:03
(80) Спасибо за советы. С базой проблематично конечно!!!
82 LivingStar
 
15.02.15
17:05
пока не охватил всего решения конечно, нужно заполнять его ещё как то искать, информацию корректную
83 ShoGUN
 
15.02.15
17:53
84 LivingStar
 
16.02.15
05:33
(83) решил пока проставлю время новосибирское, пусть будет

потом, буду делать ваше решение, у меня все же есть не понятные моменты относительно гринвича

Смещение относительно Гринвича(оно же зимнее) - это та же разница в часах???
85 LivingStar
 
16.02.15
07:13
(83) пока просто решил проставить разницу с новосибирском у городов что найду в time.yandex.ru, основная проблема конечно в том что все вводить это мне, как я понял в организации нет для этого людей просто, они все смотрят в другие стороны