|
Часовой пояс
|
|||
---|---|---|---|
#18+
Есть две самописные конфигурации. Из Конф1 создаём COM-соединение с Конф2 и что-то там в Конф2 пишем. В Конф1 пользователей нет (ни одного). В Конф2 есть пользователи. В Конф1 примерно такой код: авторсообщить(ТекущаяДата()); Файл.ДатаСоздания = ТекущаяДата(); сообщить(Файл.ДатаСоздания); Вторая строка - это уже в Конф2 пишем. Первая строка действительно выдаёт мне текущую дату. Третья строка тоже показывает текущую дату. Но при этом когда я открываю сохранённый элемент справочника в Конф2, то вижу, что реально сохранилось значение текущей даты плюс три часа. Обе базы файловые, физически живут на одной машине. Откуда он эти +3 часа берёт? Платформа 8.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2017, 14:11 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Что за справочник в котором смещено время? Посмотрите еще подписки на события. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2017, 08:15 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
netfrog, Самописный справочник самописной конфигурации. Подписка на события, похоже, не срабатывает при записи по COM-соединению. У меня ПередЗаписью не сработала подписка. Либо это связано не с COM, а с тем, что прописано ОбменДанными.Загрузка = Истина. Может, так и подписки не работают? Проблема всё ещё актуальна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2017, 14:12 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Дайте больше информации, например код, который пишет в этот справочник. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2017, 14:29 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
netfrog, Пожалуйста, вот код: авторСпрПрисоединенныйФайл = Соединение.Справочники.ЗаявкаПрисоединенныеФайлы.СоздатьЭлемент(); СпрПрисоединенныйФайл.ВладелецФайла = СсылкаНаЗаявку; СпрПрисоединенныйФайл.ДатаСоздания = ТекущаяДата(); СпрПрисоединенныйФайл.ДатаМодификацииУниверсальная = СпрПрисоединенныйФайл.ДатаСоздания; СпрПрисоединенныйФайл.ИндексКартинки = 42; СпрПрисоединенныйФайл.Расширение = "jpg"; СпрПрисоединенныйФайл.Описание = "Загружено из мобильного приложения"; СпрПрисоединенныйФайл.ТипХраненияФайла = Соединение.Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; ИмяФайла = ПолучитьИмяВременногоФайла("jpg"); Файл = Новый Файл(ИмяФайла); ВыборкаФайлы.ДанныеФайла.Получить().Записать(ИмяФайла); двДанные = Соединение.NewObject("ДвоичныеДанные", ИмяФайла); СпрПрисоединенныйФайл.Размер = двДанные.Размер(); СпрПрисоединенныйФайл.Наименование = Файл.ИмяБезРасширения; СпрПрисоединенныйФайл.ОбменДанными.Загрузка = Истина; СпрПрисоединенныйФайл.Записать(); Всё нормально записывается, только ДатаСоздания получается +3 часа ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2017, 14:44 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Слоник_677netfrog, Пожалуйста, вот код: авторСпрПрисоединенныйФайл = Соединение.Справочники.ЗаявкаПрисоединенныеФайлы.СоздатьЭлемент(); СпрПрисоединенныйФайл.ВладелецФайла = СсылкаНаЗаявку; СпрПрисоединенныйФайл.ДатаСоздания = ТекущаяДата(); СпрПрисоединенныйФайл.ДатаМодификацииУниверсальная = СпрПрисоединенныйФайл.ДатаСоздания; СпрПрисоединенныйФайл.ИндексКартинки = 42; СпрПрисоединенныйФайл.Расширение = "jpg"; СпрПрисоединенныйФайл.Описание = "Загружено из мобильного приложения"; СпрПрисоединенныйФайл.ТипХраненияФайла = Соединение.Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; ИмяФайла = ПолучитьИмяВременногоФайла("jpg"); Файл = Новый Файл(ИмяФайла); ВыборкаФайлы.ДанныеФайла.Получить().Записать(ИмяФайла); двДанные = Соединение.NewObject("ДвоичныеДанные", ИмяФайла); СпрПрисоединенныйФайл.Размер = двДанные.Размер(); СпрПрисоединенныйФайл.Наименование = Файл.ИмяБезРасширения; СпрПрисоединенныйФайл.ОбменДанными.Загрузка = Истина; СпрПрисоединенныйФайл.Записать(); Всё нормально записывается, только ДатаСоздания получается +3 часаЯ бы проработал этот код в отладчике и посмотрел бы, какие данные здесь формируются и передаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 08:44 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Слоник_677netfrog, Самописный справочник самописной конфигурации. Подписка на события, похоже, не срабатывает при записи по COM-соединению. У меня ПередЗаписью не сработала подписка. Либо это связано не с COM, а с тем, что прописано ОбменДанными.Загрузка = Истина. Может, так и подписки не работают? Проблема всё ещё актуальна.Все подписки работают - соединение не играет роли. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2017, 11:48 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Всё, нашёл. Нужно писать так: авторСпрПрисоединенныйФайл.ДатаСоздания = УниверсальноеВремя(ТекущаяДата(), ЧасовойПояс()); И всё хорошо. У меня, по крайней мере, сработало. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2017, 13:13 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
Слоник_677, Только всё равно непонятно почему. ЧасовойПояс() в обоих базах возвращает "Europe/Moscow". Базы файловые, на одой машине. Часовой пояс машины тоже UTC +3. Глюк какой-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2017, 13:17 |
|
Часовой пояс
|
|||
---|---|---|---|
#18+
ТекущаяДата() - используйте ТекущаяДатаСеанса() ЧасовойПояс() - используйте ЧасовойПоясСеанса() Слоник_677Только всё равно непонятно почему. ЧасовойПояс() в обоих базах возвращает "Europe/Moscow". Базы файловые, на одой машине. Часовой пояс машины тоже UTC +3. Глюк какой-то. 5.9.3.5. Поясное времяПри работе системы в различных часовых поясах необходимо учитывать эту особенность при получении оперативной отметки времени. Например, когда в единой информационной базе, физически расположенной в одном городе (часовом поясе), ведется учет нескольких удаленных предприятий (например, филиалы холдинга), которые расположены в других городах (и других часовых поясах). В этом случае необходимо, чтобы для каждого филиала выдавалась своя отметка времени. Для учета часовых поясов существует понятие часового пояса информационной базы и часового пояса сеанса. Часовой пояс информационной базы определяет часовой пояс, который по умолчанию будет установлен для нового сеанса. При создании информационной базы часовой пояс информационной базы не определен. Однако может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясИнформационнойБазы(). Информация о часовом поясе информационной базы сохраняется в базе данных и не меняется при операциях загрузки/выгрузки информационной базы. При создании начального образа информационной базы (с помощью механизмов распределенной информационной базы, см. здесь) в создаваемый образ переносится часовой пояс информационной базы, из которой создается образ. Если часовой пояс информационной базы не задан, то используется часовой пояс компьютера, на котором установлен сервер «1С:Предприятия» (в клиент-серверном варианте), или часовой пояс локального компьютера (в файловом варианте). Часовой пояс сеанса описывает тот часовой пояс, в котором работает конкретный сеанс. По умолчанию часовой пояс сеанса равен часовому поясу информационной базы. Часовой пояс сеанса может быть установлен с помощью метода глобального контекста УстановитьЧасовойПоясСеанса(). Часовой пояс сеанса сохраняется до конца сеанса. Используется для определения текущей даты сеанса и получения оперативной отметки времени. 5.9.3.6. Получение оперативной отметки времениВ ходе оперативного проведения система изменяет время документа таким образом, чтобы очередной документ, проводимый в оперативном режиме, имел бы момент времени более поздний, чем у предыдущего оперативно проведенного документа. Для этого используется понятие оперативной отметки времени. Оперативная отметка получается системой автоматически при оперативном проведении, но может быть получена во встроенном языке в явном виде с помощью метода ПолучитьОперативнуюОтметкуВремени() на основании текущей даты сеанса. Текущая дата сеанса равна дате компьютера, приведенной к часовому поясу сеанса. Под приведением понимается пересчет местного времени компьютера в поясное время, заданное часовым поясом сеанса. Пересчет выполняется через универсальное координированное время (UTC). Все пользователи обращаются к единому механизму оперативной отметки времени, а механизм выдает каждому пользователю очередную отметку. Механизм получения оперативной отметки времени обеспечивает получение даты, большей, чем предыдущая отметка, полученная этим или другим пользователем в данном часовом поясе. В качестве оперативной отметки система, как правило, возвращает текущее время сеанса. Однако если текущее время больше или равно последней выданной какому-либо пользователю отметке, то возвращается значение на секунду большее, чем значение последней выданной отметки. Таким образом, обеспечивается получение при каждом обращении значения, по возможности соответствующего текущему времени, но в обязательном порядке большего, чем предыдущее полученное значение. Следует помнить, что различные сеансы с одинаковым часовым поясом будут использовать одно и то же время для получения оперативной отметки времени. Таким образом, будет существовать столько несвязанных оперативных отметок времени, сколько уникальных часовых поясов будет установлено в качестве часовых поясов сеансов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2017, 20:24 |
|
|
start [/forum/topic.php?fid=28&fpage=11&tid=1518482]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
95ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 227ms |
0 / 0 |