О времени и 1С

Публикация № 1017637

Разработка - Практика программирования

Платформа даты время синхронизация клиент-сервер МоментВремени граница особенности миллисекунды

Основы и особенности работы со временем в 1С. Как избавиться от боли при работе в разных часовых поясах. Что такое момент времени. И другое.

Время бесценно

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

На эту тему уже многое написано как здесь на ИС, так и за его пределами. Фирма "1С" снабдила нас исчерпывающими инструкциями по работе с датами и временем, включила некоторые положения в стандарты разработки, а также реализовала удобный функционал в БСП. Не смотря на это, многие продолжают "пилить" костыли в обслуживаемых информационных базах, уверенные что у них все хорошо.

Сегодня мы пробежимся по основам работы со временем из кода встроенного языка и запросов, рассмотрим основные возможности платформы и дополнительный функционал в БСП. Также подробней разберем особенности при работе в разных часовых поясах с примерами на распределенном кластере серверов 1С, а также некоторые другие особенности.

Статья может быть интересна:

  1. Начинающим разработчикам 1С.
  2. Любым разработчикам 1С, которые везде используют функцию "ТекущаяДата()".
  3. Кого интересует работа с разными часовыми поясами и функционал БСП работы со временем.
  4. Тем, кого интересует как будет работать кластер 1С, если сервера в разных часовых поясах (о ужас!).
  5. Кто хочет заглянуть как платформа 1С хранит дату и время в базе, как работает момент времени, какие проблемы могут быть.

Все нижесказанное актуально для версии платформы 8.3.13.1690. Вы все еще здесь? Тогда добро пожаловать в путешествие во времени (или по времени, или через....).

Основные основы основ

Язык программирования платформы 1С и синтаксис языка запросов имеют все необходимое для работы с датами и временем, чтобы решить большинство возникающих задач. Ниже приведен листинг кода встроенного языка, где мы применили все возможные операции с датами.

 
 Операции с датами из встроенного языка

Синтаксис языка запросов также позволяет выполнять некоторые манипуляции с датами на уроне СУБД. Конечно, количество доступных операций меньше, чем возможности самой СУБД (будь это SQL Server или PostgreSQL), но многие задачи все же позволяет решать.

 
 Операции с датами из языка запросов

Именно эти возможности мы, разработчики, чаще всего используем при работе со временем в алгоритмах, запросах и т.д. Казалось бы, что еще можно придумать?

 
 Может дальше будет интересней

Сквозь время и часовые пояса

На самом деле не все так просто! Если "копать" дальше, то первая тема, которая может усложнить жизнь разработчиков - это часовые пояса. Пока Вы работаете с файловой или клиент-серверной базой, в которой все пользователи находятся в одном часовом поясе, то проблем нет. Но как только бизнес вырос и стал распределенным между регионами в разных часовых поясах, вот тут то веселье и начинается!

Для начала рассмотрим какие инструменты предлагает платформа 1С для таких ситуаций.

 
 Что есть в платформе 1С для работы в разных часовых поясах

Отлично, у нас есть список часовых поясов и их локализованное представление. Но что с этим можно сделать?

Начнем с того, что у прикладных решений есть несколько стандартных настроек для часовых поясов:

  • Часовой пояс информационной базы - определяет в каком часовом поясе находится информационная база. По умолчанию не определен, при этом часовым поясом базы считается часовой пояс сервера.
  • Часовой пояс сеанса - указывает часовой пояс запущенного сеанса. Если не задан явно, то используется часовой пояс информационной базы или, если он не заполнен, часовой пояс сервера.

Таким образом, если у Вас пользователи базы распределены по разным часовым поясам, то настройка этих параметров строго обязательна, чтобы избавиться от проблем работы с датами и временем. Ниже мы на примере подробно рассмотрим на что каждый из этих параметров влияет, а пока продолжим рассматривать остальные функции работы с часовыми поясами.

 
 Параметры часового пояса базы и сеанса

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

 
 Работы с датами в разных часовых поясах

Теперь Вы точно должны знать и понимать, что платформа 1С поддерживает работу с разными часовыми поясами в одной информационной базе, а также имеет обширный функционал для работы с датой и временем в таком режиме. Многие разработчики не сталкивались с особенностями работы в нескольких часовых поясах и не видят смысла в использовании функции"ТекущаяДатаСеанса()" вместо привычной "ТекущаяДата()". С этим трудно поспорить, т.к. это действительно привычней, да и использование текущей даты сеанса в большинстве конфигураций имеет то же самое поведение, что и использование текущей даты сервера.

Однако, теперь Вы понимаете, к чему это может привести:

  • При изменении часового пояса в настройках сервера это повлияет на поведение функции "ТекущаяДата()", "ЧасовойПояс()" и др. А что если пояс поменяли ошибочно или база просто переехала в облако, но часовой пояс не должен был измениться?
  • При необходимости организовать работу в базе в разных часовых поясах потребуются дополнительные усилия по доработке конфигурации. Иногда значительные и с .... непредсказуемыми последствиями.

Часовые пояса могут использоваться и в других случаях, не только когда пользователи разделены географически:

  • Необходимость знать локальное время географически распределенных подразделений и филиалов, чтобы ограничить различные email / sms-рассылки дневным временем.
  • Для корректной работы интеграции с различными сервисами и службами.
  • И др.

В этих случаях в прикладном решении создаются настройки часовых поясов для объектов, а далее рассчитывается дСуть разницы часовых поясовата и время в зависимости от этих параметров. Подробнее на этом останавливаться не будем.

Как понять, есть ли необходимость разбивать работу сеансов на разные часовые пояса? Можно выделить две основные причины:

  1. В информационной базе ведется учет по нескольким обособленным управленческим единицам (организациям, филиалам), которые находятся в разных часовых поясах и ведут относительно обособленный учет. В этом случае использование часовых поясов избавит от множества проблем в учете, ведь то же закрытие месяца должно проходить с учетом локального времени.
  2. В базе ведется учет по одной организации, но с распределенными филиалами, складами и т.д. То есть организация одна, но ее подразделения могут быть в разных часовых поясах. Например:
    • Управленческий офис в Москве
    • Центральный склад в Тюмени
    • Производство в Новосибирске и Владивостоке

Для корректного учета Новосибирск и Владивосток работают по местному времени. Чтобы учет на центральном складе был корректным мы не можем использовать местное время производств, поэтому выходом будет использовать время управленческого офиса. Итого, будут использоваться три часовых пояса (Москва, Новосибирск, Владивосток).

Это лишь общие примеры. На практике все либо гораздо проще, когда организации полностью обособлены друг от друга, а вся информация "сливается" в единую базу без изменения времени. Либо все гораздо сложнее, когда нужно и даты преобразовывать при интеграции, да еще и отчетность как-то при этом собирать. Здесь нет готовых рецептов, т.к. все зависит от конкретной задачи.

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

А теперь перейдем к небольшому примеру.

Очень простой пример

Рассмотрим простой пример, который можно встретить в реальном бизнесе. Компания работает по всей стране. Центральный офис и центральный склад находятся в Москве. Два дополнительных обособленных офиса открыты в Тюмени и Новосибирске. Информационная база одна для всех.

Пользователи из разных часовых поясовТак как учет в удаленных подразделениях обособленный, то работа там ведется по местному времени. Для этого сделаны следующие настройки:

  • Для информационной базы установлен часовой пояс "Europe/Moscow"
  • Для пользовательских сеансов в Новосибирске при запуске устанавливается часовой пояс "Asia/Novosibirsk"
  • Для сеансов из Тюмени при запуске устанавливается часовой пояс "Asia/Oral"

Сравним результаты вызова основных функций работы со временем на сервере.

Метод платформы (вызов на сервере) Пользователи в Москве Пользователи в Новосибирске Пользователи в Тюмени
ЧасовойПояс() Europe/Moscow Europe/Moscow Europe/Moscow
ПолучитьЧасовойПоясИнформационнойБазы() Europe/Moscow Europe/Moscow Europe/Moscow
ЧасовойПоясСеанса() Europe/Moscow Asia/Novosibirsk Asia/Oral
ТекущаяДата()  30.03.2019  23:01:01 30.03.2019  23:01:01 30.03.2019  23:01:01
ТекущаяДатаСеанса() 30.03.2019  23:01:01 31.03.2019 1:01:01 31.03.2019 3:01:01
ТекущаяУниверсальнаяДата() 30.03.2019 20:01:01 30.03.2019 20:01:01 30.03.2019 20:01:01
ТекущаяУниверсальнаяДатаВМиллисекундах() 63 689 572 861 383 63 689 572 861 383 63 689 572 861 383

 

Поскольку сервер один, то функции "ЧасовойПояс()" и "ТекущаяДата()" возвращают один и тот же результат для всех сеансов. Часовой пояс информационной базы тоже один для всех, ведь база то одна. Универсальная дата, в т.ч. и в миллисекундах, тоже одинаковое, т.к. время в UTC не может различаться. А вот часовые пояса сеансов и, что логично, текущие даты сеансов различаются. Все из-за того, что при запуске приложения в Тюмени и Новосибирске, пользователям программно устанавливаются часовые пояса, отличные от часового пояса информационной базы. Вот так наглядно можно проверить работу этого механизма.

Часовые пояса сеансов позволили организовать обособленный учет, при этом вся компания работает в единой информационной базе. Теперь Вы представляете для чего нужен часовой пояс информационной базы и часовые пояса сеансов. На простом примере мы рассмотрели работу с ними, а ранее пробежались практически по всем механизмам платформы для работы со временем. Теперь рассмотрим более сложный пример, а после перейдем к другим особенностям.

Нереальная инфраструктура

А что если немного усложнить пример, совсем чуть-чуть. Вместо одного сервера приложений у нас будет кластер, состоящий из 3 серверов! При этом в базе позабыли настроить часовой пояс информационной базы, а про часовые пояса сеансов вообще никто не слышал! Но и это еще не все! Каждый сервер кластера будет находиться в своем часовом поясе!

Это ужас, но мы ведь говорим лишь об искусственном примере. Вряд ли кому-то придет в голову использовать такое на боевой инфраструктуре.

Вернемся к примеру. Поскольку сервера находятся в разных часовых поясах, а настройки информационной базы и сеансов не выполнены в части часовых поясов, то мы получим вот такую странную картину.

Метод платформы (вызов на сервере) Сервер №1 Сервер №2 Сервер №3
ЧасовойПояс() Europe/Moscow Asia/Oral America/New_York
ПолучитьЧасовойПоясИнформационнойБазы() Неопределено Неопределено Неопределено
ЧасовойПоясСеанса() Europe/Moscow Asia/Oral America/New_York
ТекущаяДата()  30.03.2019 23:01:05 31.03.2019 1:01:05 30.03.2019 16:01:05
ТекущаяДатаСеанса() 30.03.2019 23:01:06 31.03.2019 1:01:06 30.03.2019 16:01:06
ТекущаяУниверсальнаяДата() 30.03.2019 21:00:54 30.03.2019 21:00:54 30.03.2019 21:00:54
ТекущаяУниверсальнаяДатаВМиллисекундах() 63 689 576 454 039 63 689 576 454 039

63 689 576 454 039

 

Поскольку в кластере три сервера 1С, а часовой пояс информационной базы не настроен, то настройка часового пояса получается непосредственно с сервера. Но у нас их 3! И все они находятся в разных поясах. Допустим, сервер №1 - это центральный сервер кластера, а сервера №2 и №3 - это рабочие сервера. Кластер распределяет нагрузку и перенаправляет сеансы 1С то на 1, то на 2 сервер, а кому-то повезло и сеанс запустился на 3 сервере.

Вот и представьте, какие странные даты они будут получать как с помощью "ТекущаяДата()", так и с помощью "ТекущаяДатаСеанса()". Все это приведет к большому количеству ошибок в системе, ведь последовательность ввода документов не будет поддаваться никаким правилам. Фактически, документы будут вводиться в хаотичном порядке.

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

В мире БСП

Возможности платформы 1С при работе со временем покрывают большинство потребностей, но в некоторых случаях использовать их не очень удобно или неэффективно. На помощь в этом случае приходит библиотека стандартных подсистем (БСП). Далее рассмотрим некоторые особенности работы с датой и временем в БСП, в т.ч. и с часовыми поясами. Информация для различных версий БСП может отличаться, но основные моменты практически всегда остаются неизменными. С учетом того, что БСП применяется для большинства типовых конфигураций, эта информация может быть полезна для разработчиков, особенно если Вы не любите изобретать велосипеды.

Начнем с простого. Выше мы уже говорили, что использовать функцию "ТекущаяДата()" на клиенте неприемлемо и правильнее использовать дату сервера, приведенную к часовому поясу сеанса. Конечно, можно это делать каждый раз вызывая сервер, писать свои функции возврата этой даты и т.д. Но если у Вас встроена в конфигурацию БСП, то лучше использовать функцию "ОбщегоНазначенияКлиент.ДатаСеанса()" и "ОбщегоНазначенияКлиент.ДатаУниверсальная(), которые получат необходимые значения с оптимизацией клиент-серверных вызовов.

ТекущаяДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
ТекущаяДатаУниверсальная = ОбщегоНазначенияКлиент.ДатаУниверсальная();

Но как им удается получить эти значения без вызова сервера?

// Возвращает текущую дату, приведенную к часовому поясу сеанса.
//
// Функция возвращает время, близкое к результату функции ТекущаяДатаСеанса() в серверном контексте.
// Погрешность обусловлена временем выполнения серверного вызова.
// Предназначена для использования вместо функции ТекущаяДата().
//
Функция ДатаСеанса() Экспорт
	Возврат ТекущаяДата() + СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().ПоправкаКВремениСеанса;
КонецФункции

// Возвращает универсальную дату сеанса, получаемую из текущей даты сеанса.
//
// Функция возвращает время, близкое к результату функции УниверсальноеВремя() в серверном контексте.
// Погрешность обусловлена временем выполнения серверного вызова.
// Предназначена для использования вместо функции УниверсальноеВремя().
//
Функция ДатаУниверсальная() Экспорт
	ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента();
	ДатаСеанса = ТекущаяДата() + ПараметрыРаботыКлиента.ПоправкаКВремениСеанса;
	Возврат ДатаСеанса + ПараметрыРаботыКлиента.ПоправкаКУниверсальномуВремени;
КонецФункции

Как мы видим, обе функции получают кэш параметров работы клиента, который инициализируется при старте сеанса. Эти параметры содержат поправку в секундах к времени сеанса, а также поправку к универсальному времени. Используя функцию "Текущаядата()" (да, да, в этом случае ее использование обосновано) мы можем вычислить необходимую дату и время, но с некоторой приемлемой погрешностью из-за клиент-серверного вызова.

Что касается часовых поясов, то основной пояс информационной базы настраивается в панели администрирования. О работе с этим параметром из кода встроенного языка мы уже говорили ранее.

Настройка часового пояса базы в БСПТакже в БСП содержится функционал работы с часовыми поясами в модели сервиса, но его мы не будем рассматривать, т.к. на практике с ним приходится редко сталкиваться, если, конечно, вы не работаете в базах модели сервиса.

Более тонких настроек при работе с датой и временем в БСП трудно найти. Обычно, если возникают задачи с управлением часовыми поясами, то проще адаптировать конфигурацию под свои нужды, т.к. готовых решений для сложных задач с часовыми поясами нет ни в БСП, ни в большинстве поставляемых типовых решениях.

На стороне базы данных

В базе данных даты могут храниться в некотором измененном виде. Например, если Вы используйте SQL Server, то при стандартной настройке используется смещение в 2000 лет, которое позволяет обойти ограничение СУБД на минимальную дату 01.01.1753. Для платформы 1С это критично, т.к. не позволит сохранить пустую дату 01.01.0001 в базе. Вот так, например, выглядят даты в таблице.

Хранение даты в SQL ServerЕсли же речь идет о PostgreSQL, то смещение дат в этом случае использовать не обязательно, т.к. СУБД позволяет хранить дату 01.01.0001 без лишних телодвижений.

Хранение дат в PostgreSQLНастройка смещения дат задается при создании информационной базы и доступна только для SQL Server. 

Настройки смещения дат при создании базыВ самой базе настройка смещения хранится в таблице "_YearOffset". Изменять настройку вручную не рекомендуется, т.к. может привести к непредсказуемым последствиям (в основном не очень хороших). При получении дат из базы платформа уже преобразовывает их к нужному виду с учетом параметра смещения.

Для хранения даты и времени в таблицах базы данных используется тип "datetime2(0)", который позволяет хранить большой диапазон дат, и при этом более высокую точность в долях секунд. Кстати, платформа 1С эту высокую точность не использует и всегда сохраняет значения с точностью до секунды, миллисекунды не используются! На первый взгляд в этом случае логичнее было бы использовать тип "datetime",  но на самом деле нет. По рекомендациям Microsoft тип "datetime2" является более предпочтительным из-за расширенных возможностей.

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

Скрытая особенность

В одной из прошлых статей "Баг или фича? Неожиданное поведение платформы" было описание интересной особенности при работе с датами в коде встроенного языка. Речь идет о недокументированной фиче (или баге, кто знает), заключающейся в поддержке миллисекунд в датах.

ДатаОбычная = Дата(2019,2,1);
ДатаСтранная = ДатаОбычная + 0.001;
СравнениеДат1 = ДатаСтранная = ДатаОбычная;
Сообщить("Вариант с датами 1: " + СравнениеДат1); // ЛОЖЬ - даты не равны
	
ДатаСтранная = ДатаСтранная - 0.001;
СравнениеДат2 = ДатаСтранная = ДатаОбычная;
Сообщить("Вариант с датами 2: " + СравнениеДат2); // ИСТИНА - даты равны

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

ДатаОбычная = Дата(2019,2,1);
ДатаСтранная = ДатаОбычная + 0.068;
МиллисекундВДате = ДатаСтранная - ДатаОбычная;
Если ЗначениеЗаполнено(МиллисекундВДате) Тогда
	Сообщить("В дате содержатся миллисекунды: " + МиллисекундВДате);
Иначе
	Сообщить("Миллисекунд в дате нет!");
КонецЕсли;

Как это относится к решению практических задач? Например, в коде к дате случайно может быть прибавлено дробное число. После этого мы можем получить случаи, когда при сравнении дат или при указании фильтров поиска (поиск в таблице значений, по ключу в соответствии и др.) мы не получим ожидаемый результат, ведь даты то будут разные. При этом сразу не удастся разобраться что вообще происходит.

Будьте бдительны! Миллисекунды ждут, когда Вы ими воспользуетесь!

Момент, пожалуйста!

Есть еще одна сущность, относящаяся к работе с датой и временем в платформе 1С - это момент времени! Его использование может быть критичным при получении остатков, если в одну секунду в системе были введены сразу несколько документов. То есть, момент времени позволяет различать позицию документов на временной оси, даже если дата и время у них одинаковая. Достигается это за счет того, что момент содержит не только дату, но и ссылку на конкретный документ.

Но и это еще не все! Есть также такая сущность как "Граница", которая позволяет хранить границы некоторого интервала значений. При этом также дает возможность указать признак включения / исключения граничного значения интервала.

Рассмотрим несколько примеров на некотором регистре накопления вида "Остатки", где применим возможные способы использования даты, момента времени и границы.

 
 Остатки на обычную дату
 
 Остатки на момент времени
 
 Остатки на границу с видом "Исключая"
 
 Остатки на границу с видом "Включая"

Теперь Вы знаете что такое момент времени, граница и как это используется платформой. Кстати, из всех примеров выше только один вернет результат для текущего документа - это последний пример с границей вида "Включая". Вы же понимаете почему?

К сожалению, есть еще один момент, который стоит упомянуть о моменте времени (извините за тавтологию). Сравнение ссылок это хорошо, но оно не гарантирует всегда ожидаемый результат. Момент времени будет работать, если исходить из того, что ссылки генерируются последовательно, но это не всегда так!

Порядок ссылок в базе может быть случайным, если:

  1. У вас используется УРБД, ведь ссылки в разных базах и на разных серверах, в разных часовых поясах могут генерироваться не так как Вы ожидаете. В итоге - документы в единой базе будут также иметь последовательность на временной оси, которая не совсем может подходить для решения учетных задач.
  2. Если это таблица, объединяющая несколько типов метаданных (журналы документов, последовательность и т.д.), ведь для разных типов идентификаторы объектов могут сильно отличаться.
  3. При использовании явной установки ссылки для объектов также не гарантируется последовательность генерации GUID'ов. Речь идет о таком методе явной установки ссылки.
ИдентификаторСсылка = Новый УникальныйИдентификатор;
НоваяСсылка = Документы.ПростойДокумент.ПолучитьСсылку(ИдентификаторСсылка);

НовыйОбъект = Документы.ПростойДокумент.СоздатьДокумент();
НовыйОбъект.УстановитьСсылкуНового(НоваяСсылка);

Таким образом, момент времени и граница вроде бы подходят для "ювелирной" работы с объектами на оси времени, а с другой стороны результат их работы и не гарантируется в некоторых ситуациях. Тут можно дать лишь один совет - анализировать ситуацию с созданием ссылок и обменами, оценить потенциальные проблемы с использованием этих механизмов.

Ранее на ИС уже поднимались темы, связанные с моментом времени. Вот ссылки:

Спасибо их авторам за хороший материал!

Бегите, глупцы!

В статье мы рассмотрели многие вопросы по работе с датой и временем в платформе 1С, начиная от основ и заканчивая тонкостями работы самой платформы с датами и временем, часовыми поясами и особенностями хранения даты в базе данных.

Надеюсь, эта информация будет кому-то да полезна. Кого-то заставит переосмыслить использование функции "ТекущаяДата()" и момента времени. Кто-то перестанет бояться часовых поясов и/или обратит внимание на настройки часовых поясов в сопровождаемой информационной базе.

Если у Вас есть интересные кейсы по работе с часовыми поясами в платформе или по другим затронутым темам, то прошу в комментарии. Это очень интересное направление при разработке, жаль что не сильно востребованное.

Другие ссылки

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. 3vs 01.04.19 09:15 Сейчас в теме
А если пользователь летает на МКС, или на Луне, к примеру, какой часовой пояс выставлять?
Rabot; bulpi; CyberCerber; Ганс; YPermitin; +5 Ответить
3. YPermitin 8286 01.04.19 09:19 Сейчас в теме
(1) знатно посмеялся. 1С на МКС?)))

Надо писать фоновое задание, которое будет менять часовой пояс сеанса в зависимости от геолокации!
Прикрепленные файлы:
YoungHero; mark_oilbass; +2 Ответить
5. YPermitin 8286 01.04.19 09:23 Сейчас в теме
(3) хотя фоновое не пойдет. Обработчиком ожидания! =D
6. CyberCerber 482 01.04.19 10:25 Сейчас в теме
(3) Ну а чего смеетесь, вот новость на днях была:
https://infostart.ru/journal/news/mir-1s/firma-1s-predstavila-konfiguratsiyu-dlya-upravleniya-resursami-v-kosmose_1030907/
Gendelf; Алексей_mir2mb; the1; wowik; for_sale; YPermitin; +6 Ответить
7. YPermitin 8286 01.04.19 10:30 Сейчас в теме
(6) раз серьёзно, то надо UTC использовать :)
Алексей_mir2mb; +1 Ответить
10. 3vs 01.04.19 12:49 Сейчас в теме
(7)Да, уж, 1С шутить не любит! :-)
Раз Дональд дал задачу американцам первыми во второй раз высадиться на Луне,
чтобы следы первого посещения не затоптали, значит 1С надо подсуетиться и первым
выпустить продукт для Луны! :-)
tsmult; 2PRV; CyberCerber; wowik; mark_oilbass; YPermitin; +6 Ответить
11. YPermitin 8286 01.04.19 12:50 Сейчас в теме
(10) жжете товарищи! Огонь))))
8. erutan 60 01.04.19 11:03 Сейчас в теме
(1) с Луной в "Артемиде" Энди Вейра решалось очень просто - кто колонию основал на луне, того и часовой пояс :3
bulpi; YPermitin; +2 Ответить
9. Darklight 22 01.04.19 12:15 Сейчас в теме
(1)Будет время ЦУПа - причём, на МКС в Российском и Американском модулях будет своё время!
Aggressorak; YPermitin; +2 Ответить
2. kuzyara 1002 01.04.19 09:17 Сейчас в теме
При использовании явной установки ссылки для объектов также не гарантируется последовательность генерации GUID'ов. Речь идет о таком методе явной установки ссылки.

Если быть точнее, то установка явно сгененированных гуидов _гарантирует_ случайную последовательность ссылок (в пределах секунды).
Для Сч = 1 По 5 Цикл
	ИдентификаторСсылка = Новый УникальныйИдентификатор;	
	НоваяСсылка = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(ИдентификаторСсылка);
	Сообщить(XMLСтрока(НоваяСсылка));
КонецЦикла;
// fb0bc5ff-ebea-417a-9aef-0142ed881c84
// 575fee83-4c35-4e72-b5f3-7c5d4be8771c
// 35315176-d1d2-46ea-8eaa-7312a41bee87
// 7ffae9bb-9fbe-4f7e-99d3-1128e10c26d1
// cae1078c-3714-4f00-b6ee-c6a66864100c
Показать

rfc4122, пункт 4.1.4:
For UUID version 4, the timestamp is a randomly or pseudo-randomly
generated 60-bit value, as described in Section 4.4.


А статья хороша.
YPermitin; +1 Ответить
4. YPermitin 8286 01.04.19 09:22 Сейчас в теме
(2) спасибо!

Все так. Наверное, в случае полного описания по уникальным идентификатор лучше обращаться к вашей публикации.

https://infostart.ru/public/635159/

Все доходчиво описано!
12. Serj1C 479 01.04.19 13:15 Сейчас в теме
Я немного бегло пробежал статью, но не нашел про Линукс время (которое может использоваться на сайтах или ява скрипте)
Это количество секунд прошедших с 1 января 1970 года

Функция ВремяЛинукс(unixtime)
Возврат Дата(1970, 1, 1, 0, 0, 0) + unixtime;
КонецФункции
creatermc; YPermitin; +2 Ответить
13. YPermitin 8286 01.04.19 13:21 Сейчас в теме
(12) не знаю где в публикации об этом упомянуть, но интересно.

Спасибо!
14. СергейК 51 01.04.19 20:14 Сейчас в теме
Подскажите, есть особенности установки времени база данных в случае РИБ?
YPermitin; +1 Ответить
18. YPermitin 8286 02.04.19 06:50 Сейчас в теме
(14) действуют те же самые правила. Если узел базы принадлежит организации, которая ведет учет обособлено, то для узла используется местное время. Обычно оно совпадает с временем сервера, если это конечно не облака.

В центральной базе ствится часовой пояс той организации, которая эти данные использует.

Конечно, могут быть случаи и сложнее. Но Вы сами поймете, когда стандартная схема вас не устроит. :)
41. СергейК 51 08.04.19 20:26 Сейчас в теме
(18) Т.е. в каждом узле время устанавливается автономно, как для отдельно БД. Никакой "передачи" настроек времени между узлами нет. Спасибо.
YPermitin; +1 Ответить
42. YPermitin 8286 08.04.19 20:33 Сейчас в теме
(41) да, в абсолютном большинстве случае это так.
15. ellavs 696 01.04.19 20:44 Сейчас в теме
Спасибо, интересно.
YPermitin; +1 Ответить
16. CheBurator 3413 02.04.19 01:37 Сейчас в теме
17. t278 36 02.04.19 02:13 Сейчас в теме
Как быть с терминальными пользователями, работающие в 4-х часовых поясах?
YPermitin; +1 Ответить
19. YPermitin 8286 02.04.19 07:06 Сейчас в теме
(17) думаю, сначала нужно понять нужны ли им разные часовые пояса. Они ведут учет в одной организации или в обособленных?

Если часовые пояса все же нужны, то можно модифицировать конфигурацию, устанавливая часовой пояс сеанса пользователям при запуске в коде. Тогда не важно будет какой часовой пояс у сервера 1С / сервера терминалов. Примеры в статье такие есть.
30. tanat74 36 03.04.19 19:37 Сейчас в теме
(17) Лично я - настроил проброс часового пояса в rdp. При создании критически важных документов устанавливаю дату сеанса, а сервер пишет «журналы» (например версии объектов) в едином часов поясе сервера. Проблемы возникают лишь при некорректной настройке часового пояса на компе клиента.
YPermitin; +1 Ответить
32. YPermitin 8286 03.04.19 20:32 Сейчас в теме
(30) то есть часовой пояс сеанса устанавливайте часовым поясом клиента?

Если подробнее опишите как реализовали, то будет отлично. Интересуют подробности)
34. tanat74 36 04.04.19 06:47 Сейчас в теме
(32) 1с подтягивает сама часовой пояс системы (платформа 8.3.8.2137 толстый клиент).
Проброс часового пояса в RDP разрешается через групповые политики - инструкцию находил в интернете.
Какие ещё подробности интересуют?
acanta; YPermitin; +2 Ответить
35. YPermitin 8286 04.04.19 06:49 Сейчас в теме
(34) спасибо.

Теперь понял о чем речь.
20. w.r. 570 02.04.19 11:46 Сейчас в теме
По поводу последней секунды - такая вакханалия только в виртулальной таблице остатков, а вот в таблице оборотов и остатков секунда не режется в отборе

WHERE T3._Period >= @P1 
         AND T3._Period <= @P2
YPermitin; +1 Ответить
31. YPermitin 8286 03.04.19 20:02 Сейчас в теме
(20) да, отсюда и вопрос. С остатками это все же фича, или баг :)

Хоть с оборотами все логично работает.
33. w.r. 570 03.04.19 21:45 Сейчас в теме
(31) как я понял из описания, которое даёт 1С https://its.1c.ru/db/metod8dev#content:2610:hdoc функция виртуальной таблицы остатков - сугубо прикладная и служит для получения остатков по документу, исключая момент времени самого документа. Для отчетов и другой аналитики нужно использовать таблицу остатков и оборотов
21. bulpi 172 02.04.19 12:24 Сейчас в теме
1)
из всех примеров выше только один вернет результат для текущего документа - это последний пример с границей вида "Включая"


Вот этим утверждением автор что хотел сказать ?

2)Как хорошо работать в стране, где всего 1 пояс :)
YPermitin; +1 Ответить
22. YPermitin 8286 02.04.19 12:28 Сейчас в теме
(21) ничего плохого или хорошего не хотел сказать. Просто факт, само собой разумеющееся :)

Счастливчики!:)
24. bulpi 172 02.04.19 15:33 Сейчас в теме
(22)
Что-то я туплю. Что значит "результат для текущего документа" ? А остальные не вернут для текущего документа? Это слишком расплывчатая и многозначная фраза. Имхо, результат такого запроса зависит от того , как построен документ. Что выбрано в конфигураторе в параметре "удаление движений". Что написано в модуле проведения до того (чистятся ли наборы записей, записываются ли они перед запросом).
25. YPermitin 8286 02.04.19 15:39 Сейчас в теме
23. acanta 74 02.04.19 12:59 Сейчас в теме
26. pun4er 02.04.19 19:11 Сейчас в теме
Спасибо за интересный и развернутый материал, читать было достаточно интересно!
YPermitin; +1 Ответить
27. frkbvfnjh 578 03.04.19 08:34 Сейчас в теме
Спасибо за публикацию, подЪитожил знания.
YPermitin; +1 Ответить
28. philya 81 03.04.19 09:33 Сейчас в теме
А чем вас не устроило преобразование даты к строке в запросе в варианте

ПРЕДСТАВЛЕНИЕ(ДАТАВРЕМЯ(2019, 4, 3, 12, 29, 30))?
CratosX; acanta; YPermitin; +3 Ответить
29. YPermitin 8286 03.04.19 10:44 Сейчас в теме
(28) честно сказать, никогда не пользовался. Если действительно работает, то позже добавлю в саму статью.
36. YPermitin 8286 06.04.19 10:30 Сейчас в теме
(28) добавил исправление в публикации. Еще раз спасибо!
37. cartograph 06.04.19 19:58 Сейчас в теме
Спасибо. Интересная статья.
YPermitin; +1 Ответить
38. YPermitin 8286 06.04.19 20:29 Сейчас в теме
(37) спасибо на добром слове!
39. ids79 5369 08.04.19 07:55 Сейчас в теме
Спасибо, Юрий.
Интересная статья.
YPermitin; +1 Ответить
40. YPermitin 8286 08.04.19 08:03 Сейчас в теме
43. ghostaz 136 06.06.19 22:36 Сейчас в теме
Отличная статья, прям пособие по времени в 1с. Самое обидное, что не задумывался об этом, когда писал конфу с нуля.
Возможно стоит описать работу с летним временем, сейчас хоть и не актуально, но само явление делало жизнь программиста еще сложнее. Сейчас уже не помню, учитывала ли 1с летнее время в своих функциях. Может кто помнит?
Особенность с миллисекундами уже документирована и тоже удивила.
У нас в организации много споров возникало про период день и месяц. Нужно ли месяц переводить? А если перевели, а периодичность регистров день, то все равно теряем данные? А если отчет по взаиморасчетам, а часовые пояса переводятся, то взаиморасчеты могут зависеть от расположения.
В общем не стоит забывать о времени.
YPermitin; +1 Ответить
44. YPermitin 8286 06.06.19 23:03 Сейчас в теме
(43) Спасибо :)

Время наше все!
45. Serj1C 479 09.07.19 09:04 Сейчас в теме
Еще раз прочитал статью. Некоторые вещи забываются.
Раз уж подняли тему про гуиды, то рекомендую еще дополнить материал про "Как формируется GUID?" (https://infostart.ru/public/635159/)
YPermitin; +1 Ответить
46. YPermitin 8286 09.07.19 09:15 Сейчас в теме
(45) время заставляет забывать :)

Статья про гуиды отличная, я выше в комментариях уже добавлял на нее ссылку.
47. rujiy_kot 7 09.07.19 12:13 Сейчас в теме
У меня отображается первый комментарий датой: 01.04.19 09:15
Это дата - ТекущаяДата() или ТекущаяДатаСеанса()?
Если ТекущаяДата() - то на сервере или клиенте?
YPermitin; +1 Ответить
48. YPermitin 8286 09.07.19 20:23 Сейчас в теме
(47) ммм...Вы думаете, что бэкенд Инфостарта сделан на платформе 1С?

В любом случае, надо узнать у разработчиков что они используют для присвоения даты. :)
Есть лишь предположение, что это время по Москве.
60. CratosX 107 28.11.19 19:29 Сейчас в теме
(48) на форумах запоминание даты действия всегда должна быть в одном часовом поясе (поясе сервера или дефолт-сити), а отображаться - в часовом поясе клиента.
49. aleksdiez 4 10.07.19 10:04 Сейчас в теме
К "недокументированным особенностям" : попробуйте получить дату Дата("15821005")
CratosX; YPermitin; +2 Ответить
51. YPermitin 8286 10.07.19 18:17 Сейчас в теме
50. Evil Beaver 6699 10.07.19 18:12 Сейчас в теме
52. regint 17.07.19 09:09 Сейчас в теме
Это выражение тоже будет работать
Дата = Дата("08.03.2019 14:30:15"); // 08.03.2019 14:30:15
CratosX; YPermitin; +2 Ответить
53. skv_79 205 31.07.19 18:13 Сейчас в теме
Интересная статья, спасибо!
YPermitin; +1 Ответить
54. list770 06.09.19 09:35 Сейчас в теме
Подскажите, в каком месте в конфигурации лучше сделать установку часового пояса сеанса? заранее спасибо
55. 7OH 32 30.09.19 14:52 Сейчас в теме
Буду признателен за помощь в направлении решения задачи.
Необходимо провести замер времени (логично в миллисекундах) перехода с клиента на сервер (или обратно).
Вроде бы банально, но только до того момента, пока время синхронизировано.
Если допустить отставание клиента от сервера - появляется вопрос - как ?
56. max_zhilin 08.10.19 14:31 Сейчас в теме
(55) Считайте разницу времени между клиентом и сервером путем тестовых быстрых вызовов
57. 7OH 32 08.10.19 16:53 Сейчас в теме
(56) вопрос принципиальный.
По разнице одного из замеров можно работать - да, но показатели замеров будут не совсем те.
У вас вызов в одно время может отличаться по времени от вызова через минуту.
Если это тот же 2G интернет, то очень глобально.
Ну а по сути 100% решения нету - платформа не предоставляет такого инструмента, кроме отладчика.
58. AgentNiCho 15.10.19 15:48 Сейчас в теме
Спасибо за статью. Время - основа основ. В статье описано то, что нужно знать и часто не доходят руки.
YPermitin; +1 Ответить
59. YPermitin 8286 15.10.19 15:49 Сейчас в теме
(58) Вам спасибо за хороший отзыв!

Рад стараться :)
Оставьте свое сообщение

См. также

И тогда наверняка нас захватят облака Промо

Интеграция Бесплатно (free)

Внимание! Данный текст содержит достаточно мало технических подробностей и готовых рецептов. Главным образом некоторые размышления на предмет будущего технологий и профессий. Некое лёгкое чтение на досуге.

28.06.2019    8773    0    comol    36    

Как разработать Web приложение и остаться 1С-ником

WEB Бесплатно (free)

Создание современных веб-приложений обходится для бизнеса дорого и требует постоянной актуализации различных фреймворков, что не всегда оправданно. Как применить инженерный подход и предоставить бизнес-пользователям доступ к данным 1С в удобном и защищенном веб-приложении на конференции Infostart Event 2019 Inception рассказал руководитель управления ИТ компании WiseAdvice Олег Филиппов.

18.05.2020    7612    0    comol    72    

Учимся готовить кроликов с редиской: опыт применения Rabbit MQ и Redis в интеграционных проектах

Производительность и оптимизация (HighLoad) Интеграция Бесплатно (free)

При построении мощных производительных отказоустойчивых решений для интеграции во всем мире активно используются технологии обработки очередей сообщений с помощью брокера RabbitMQ и кэш-сервера Redis. О практическом опыте использования этих технологий при построении ИТ-ландшафта, включающего системы на 1С, на конференции Infostart Event 2019 Inception рассказал Сергей Наумов.

12.05.2020    3269    0    SergeyN    3    

Как работает 1С размером 13 ТБ в условиях непрерывной разработки

Перенос данных из 1C8 в 1C8 Администрирование СУБД Бесплатно (free)

Обеспечение быстрого непрерывного обмена данными между высоконагруженными системами 1С, покрывающими всю территорию России, требует ответственного подхода к архитектуре и инструментам, используемым для обмена. Как правильно построить такую инфраструктуру и научиться ее оперативно мониторить, в своем докладе на конференции Infostart Event 2019 Inception рассказал разработчик компании «ДНС Ритейл» Максим Старков.

27.03.2020    9079    0    max_st    52    

Развитие 1С программиста Промо

Практика программирования Личная эффективность Бесплатно (free)

Делюсь своим опытом и видением развития 1С программиста.

17.10.2018    18105    0    pashamak    62    

Улучшение пооперационного планирования в 1С:ERP 2.4 внешними средствами

Математика и алгоритмы Производительность и оптимизация (HighLoad) Бесплатно (free)

Задача построения оптимального производственного расписания требует сравнения тысяч и десятков тысяч вариантов. Выполнять такие вычисления средствами платформы 1С Предприятие нецелесообразно. Как реализовать пооперационное планирование с использованием генетических алгоритмов и параллельных вычислений в докладе на конференции Infostart Event 2019 Inception рассказал генеральный директор компании «ИНТЕХ» Сергей Сафаров.

02.03.2020    3604    0    ildarovich    7    

Использование машинного обучения для решения инцидентов. Практическое применение

Практика программирования Бесплатно (free)

Продолжаю (и заканчиваю) тему с автоматическим решением инцидентов. Перейдем от теории к практике.

25.02.2020    3116    0    Repich    9    

Технология разветвлённой разработки, использующая git, ci/cd

CI/CD Git (GitHub, GitLab, BitBucket) Методология управления разработкой EDT 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    4381    0    check2    10    

Подмена заголовка 1С Промо

Универсальные функции Работа с интерфейсом Россия Бесплатно (free)

Подстановка имени базы данных в начало заголовка окон с программой 1С (конфигуратор и предприятие). Удобно при одновременной работе с большим количеством баз данных. Скрипт интересен будет как для программистов, так и для администраторов баз данных. Заголовок можно менять для любой программы, не только для 1С, для этого требуется немного исправить скрипт. Программисту 1С не составит труда переделать скрипт.

08.12.2018    9981    0    moolex    26    

CI/CD для 1С проектов, унифицировано, с кастомизацией

CI/CD Инструментарий разработчика Бесплатно (free)

Тема CI/CD в связке с 1С не нова, но многих пугает сложность использования и поддержки, необходимость обучения команды. Про то, как унифицировать и упростить поддержку сборочных конвейеров для большого количества решений, в своем докладе на конференции Infostart Event 2019 Inception рассказал начальник отдела компании BIA-Technologies Валерий Максимов.

20.02.2020    4336    0    theshadowco    11    

О синхронизации ИБ с проектом в EDT

EDT Бесплатно (free)

Немного о работе механизма синхронизации информационной базы с проектом EDT и как эти знания можно использовать для экономии времени. Или как объяснить, что проект в рабочей области эквивалентен конфигурации информационной базы, связанной с ним.

19.02.2020    2590    0    check2    2    

Автоматизация магазина на Oracle Apex. Обзор аналога 1С Промо

Интеграция Розничная торговля Розничная торговля Бесплатно (free)

Как известно 1С - лидер в автоматизации учета в постсоветском пространстве. Есть ли достойные альтернативы (не дорогие, с возможностью конфигурирования, простые) ? Однозначно да ! Предлагаю Вашему вниманию обзор "буржуйской" технологии Oracle Apex

17.05.2013    58149    0    avhrst    295    

Использование машинного обучения для решения инцидентов

Практика программирования Бесплатно (free)

История о том, как я с помощью машинного обучения сокращал затраты на техподдержку.

18.02.2020    4634    0    Repich    17    

Гарантированный обмен 1С с внешними системами через сервер очередей Microsoft MSMQ

Внешние источники данных Бесплатно (free)

Описание решения задачи организации обмена 1С с внешними системами с условием гарантированной доставки сообщений и независимой поддержкой архивов сообщений. Быстрый ответ: сервер очередей Microsoft MSMQ.

09.02.2020    6286    0    da_1c    11    

Атака сервера кнопонажималкой

Нагрузочное тестирование Инструментарий разработчика Бесплатно (free)

Чтобы убедиться, что продукт выдержит планируемую нагрузку, необходимо провести нагрузочное тестирование – написать сценарии пользовательских действий и запустить их в несколько потоков, чтобы заранее найти проблемы в бизнес-логике и «узкие места». О том, как упростить написание сценариев тестирования для конфигурации Тест-центр с помощью фреймворка Vanessa Automation на конференции Infostart Event 2019 Inception рассказал ведущий программист компании «ПервыйБИТ» Никита Грызлов.

20.01.2020    4501    0    nixel    22    

Метод Кларка-Райта. Оптимальное планирование маршрутов грузоперевозок Промо

Математика и алгоритмы Бесплатно (free)

Одной из наиболее важных задач каждого предприятия, осуществляющего доставку грузов в крупных населенных пунктах, является сокращение издержек. Возможное решение данной проблемы заключается в сокращении пробега автотранспорта и, как следствие, уменьшении расхода ГСМ. Появляются такие вопросы ... - СКОЛЬКО НУЖНО МАШИН ДЛЯ РАЗВОЗКИ КОНКРЕТНОГО ОБЪЕМА ГРУЗА ПО АДРЕСАМ ДОСТАВКИ ? - КАК РАЗБИТЬ ТОЧКИ ДОСТАВКИ НА ОПТИМАЛЬНЫЕ ПО ПРОБЕГУ И ЗАГРУЗКЕ МАШИН МАРШРУТЫ ? ... В этой статье Вы найдете один из многих способов получить ответ на эти вопросы.

10.02.2016    57336    0    mi1man    20    

Часовой на страже логов

Практика программирования Инструментарий разработчика Бесплатно (free)

При поддержке решений, которые установлены у большого количества пользователей на различных системах, очень важно вовремя получать подробную информацию о возникших проблемах. О том, как собирать логи и анализировать полученные данные в трекере ошибок Sentry на конференции Infostart Event 2019 Inception рассказал Андрей Крапивин.

13.01.2020    4748    0    Scorpion4eg    6    

Как программисту перейти с языка 1С Предприятие на Java

ООП Языки и среды Россия Бесплатно (free)

Как изучить язык Java, зная язык 1С.

06.01.2020    11632    0    ManyakRus    291    

Как управлять качеством кода 1С, используя платформу SonarQube

Рефакторинг и качество кода Инструментарий разработчика Бесплатно (free)

При быстром росте функциональности проводить визуальный Code-Review для обнаружения некачественного кода проблематично. О том, как автоматизировать проверку качества кода 1С с помощью платформы SonarQube на конференции Infostart Event 2019 Inception рассказал ведущий разработчик компании «Командор» Олег Тымко.

30.12.2019    6725    0    olegtymko    9    

Информер для сайта , актуальные релизы 1С + Проверка подписки ИТС. Промо

WEB Администрирование данных 1С Сервисные утилиты Бесплатно (free)

Небольшой код который встраивается на сайт и выводит информацию о последних релизах конфигураций 1С

12.09.2014    39960    0    Malfarion    34    

Активный 2019 год на Инфостарт

О сообществе О жизни Бесплатно (free)

О прошедшем 2019 годе в 100 и 500 словах.

26.12.2019    4353    0    YPermitin    24    

Проброс IP-адреса клиента в http-сервис 1С. Реализация для IIS

WEB Администрирование веб-серверов IIS Бесплатно (free)

Настраиваем веб-сервер IIS для передачи в 1С IP-адреса клиента, вызвавшего http-сервис. Разбираемся с этим же вопросом при использовании фронтэнд вебсервера на примере nginx.

01.12.2019    4764    0    -vito-    6    

Создание промышленной системы для локализации решений на базе 1С

Локализация решений Бесплатно (free)

Статья для тех, кто занимается переводом и локализацией конфигураций, или поддержкой мультиязычных решений. В данной статье, хотелось бы поделиться опытом о том, что должно быть в таких системах, как лучше устроить перевод и т.д. Что, кстати, очень важно для разработчиков мобильных решений :)

28.11.2019    4947    0    DitriX    21    

Проставление большого количества галочек в активном окне винды Промо

Практика программирования Сервисные утилиты Инструментарий разработчика Россия Бесплатно (free)

Как проставить большое количество галочек подряд в любом окне винды

07.11.2010    29949    0    Boris-Leleko    9    

GitSync 3.0. Шпаргалка по использованию

Git (GitHub, GitLab, BitBucket) Бесплатно (free)

В новой версии GitSync помимо появления новой функциональности, изменилась строка вызова приложения и часть функциональности реализована посредством плагинов. В заметке описывается новый формат строки вызова и принцип подключения плагинов.

26.11.2019    5440    0    -vito-    25    

Swagger для 1С.

OneScript WEB Бесплатно (free)

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

21.10.2019    9719    0    botokash    35    

Подбор оборудования для информационных систем на платформе 1С

Интеграция Производительность и оптимизация (HighLoad) Бесплатно (free)

При подборе оборудования по рекомендациям с сайта ИТС возникает противоречие: проводить ли нагрузочные тесты, чтобы определить возможную нагрузку, или достаточно просто взять данные из таблиц статистики? О том, какую тактику применить в том или ином случае, на конференции INFOSTART EVENT 2018 Education рассказал начальник отдела разработки компании IBS Филиппов Евгений.

09.09.2019    7908    0    jf2000    8    

Алгоритм “хвост змеи для заполнения прямоугольной области”. Промо

Практика программирования Бесплатно (free)

При разработке http://infostart.ru/public/275582/ столкнулся с необходимостью распределить выделенные задания на прямоугольную область календаря. В результате родился алгоритм, который может пригодиться не только мне и не только в этой задаче.

20.06.2014    26471    0    milkers    16    

Интеграция 1С с промышленным оборудованием

Интеграция Бесплатно (free)

Эффективность управленческой информации в производственном процессе зависит от данных, собираемых на нижних уровнях. Про автоматизацию получения этих данных с использованием технологии OPC (OLE for process control) на конференции Infostart Event 2018 Education рассказал Юрий Коноваленко.

06.09.2019    7739    0    user642664_yurkeshk    12    

Как должна выглядеть правильная интеграция. Использование Mule ESB и RabbitMQ с 1С

Интеграция Бесплатно (free)

Чем масштабнее проект, тем сложнее настроить все связи. Каждый решает эти проблемы по-своему: кто-то пользуется конвертацией, кто-то пользуется xml и json. Руководитель управления ИТ компании WiseAdvice Олег Филиппов рассказал, как можно применить такие инструменты, как Mule ESB и RabbitMQ.

02.09.2019    8288    0    comol    3    

Кодогенерация и метагенерация в 1С

Практика программирования Инструментарий разработчика Бесплатно (free)

В своем докладе на конференции INFOSTART EVENT 2018 EDUCATION Дмитрий Белозеров рассказал о разработке инструмента, позволяющего программно работать с метаданными 1С и писать скрипты для выполнения тех же действий, которые выполняет разработчик в конфигураторе –  с какими сложностями и нюансами пришлось столкнуться, и что получилось в итоге.

26.08.2019    7639    0    kirovsbis    28    

Предметно-ориентированное проектирование (3D) в 1С. Виртуальная машина. Промо

Математика и алгоритмы Бесплатно (free)

Проектирование программного обеспечения - это постоянная битва за простоту.

03.06.2014    39177    0    Evgen.Ponomarenko    88    

Отказ от использования хранилищ 1С, переход на Git.

Инструментарий разработчика Разработка Бесплатно (free)

Валерий Максимов в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION делится опытом перехода нескольких команд (более 100 разработчиков) от использования хранилищ 1С на системы контроля версий Git.

25.07.2019    9365    0    theshadowco    31    

Раскручиваем Гайку: разработка ПО для роботов на платформе 1С

Разработка Бесплатно (free)

Роботы на 1С стали реальностью. Их разработкой пока на общественных началах занимаются в компании «Цифровой кот». Насколько перспективно это направление, какие возникали сложности, и какая помощь коллег требуется, участникам конференции Infostart Event 2018 рассказал руководитель и ведущий разработчик компании - Юрий Лазаренко.

23.07.2019    6411    0    TitanLuchs    36    

Бизнес-аналитика с помощью Power BI

Интеграция Бесплатно (free)

Тема статьи – это бизнес-аналитика. Возможно, кто-то этого не знает, но внедрение бизнес-аналитики – это очень больно. Когда внедряются не просто какие-то дашборды, а действительно бизнес-аналитика, происходит увольнение большого количества сотрудников, потому что выясняется, что они не выполняют те функции, которые на них возложены.

11.07.2019    11358    0    pbazeliuk    18    

Из архивов Web-проектов: Основы теории цвета Промо

Работа с интерфейсом Бесплатно (free)

Казалось бы, все сделано по уму: и ТЗ адекватное, и программа написана в соответствии. А глаз не радует... Для тех кому знакома ситуация, кому важна гармония во всем, посвящается:

17.09.2013    24010    0    Evgen.Ponomarenko    13    

Интеграция сценарного тестирования в процесс разработки

Практика программирования Инструментарий разработчика Бесплатно (free)

Разработчик системы «Тестер» Дмитрий Решитко в своем докладе на конференции INFOSTART EVENT 2018 EDUCATION показывает, что процесс тестирования можно очень плотно интегрировать в процесс разработки, что внедрение тестирования – это возможность развития программиста как такового, позволяющая ему упорядочивать ход мыслей и оставаться «в фокусе». Навыки построения процесса кодирования на стыке с тестированием сокращают время на концентрацию, освобождают от страха перед изменениями и улучшают память разработчика.

08.07.2019    8014    0    grumagargler    7    

Управляй качеством кода 1С с помощью SonarQube

Практика программирования Россия Бесплатно (free)

Управляй техническом долгом проектов 1С с помощью SonarQube. В статье рассматривается пример применения SonarQube при разработке.

07.07.2019    32528    0    olegtymko    229    

Тестирование интеграций между системами

Интеграция Бесплатно (free)

Как начать разрабатывать интеграцию без реальной «второй стороны»? Как быть уверенным, что обмен не «сломается» при следующем обновлении? О том, какие подходы можно применять при тестировании интеграций и как такое тестирование может выглядеть в целом – в докладе Никиты Грызлова на конференции INFOSTART EVENT 2018 EDUCATION.

01.07.2019    8881    0    nixel    3    

Ускорение реструктуризации таблиц Промо

Инструментарий разработчика Администрирование данных 1С Тестирование и исправление Бесплатно (free)

Иногда, может сложиться так, что на уже долгое время работающей базе нужно изменить типа реквизита, или добавить индексируемые поля, или просто добавить реквизит. Так вот после этого, нас ожидает долгий процесс (если база больших размеров)реструктуризации таблицы. В этой статье я рассмотрю алгоритм значительного сокращения времени реструктуризации.

12.09.2013    50606    0    OLEG4120    32    

По следам публикаций 1С + микроконтроллер, или 1С в железе

Интеграция Бесплатно (free)

Несколько примеров удачного применения связки микроконтроллер и 1С, в производстве. Результат - исключение человеческого фактора, экономия средств на АСУ, повышение культуры производства ))), и др...

12.06.2019    6630    0    vostok1.dz    13    

Выдержки из книги Чистый код

Математика и алгоритмы Бесплатно (free)

Недавно я прочитал книгу "Чистый код" Роберта Мартина (Robert Cecil Martin). В ней описываются принципы организации и форматирование исходного кода программы так, чтобы в дальнейшем было легко поддерживать такой код. Эта книга является библией для многих программистов, но вот в среде программистов 1С, к сожалению, не очень распространено чтение подобной фундаментальной литературы. Книга более 400 страниц и так много порой лениво читать, да и времени всегда не хватает. По этому я решил выделить в виде цитирования по разделам самые важные моменты. А также снабдил текст своими примерами кода.

16.05.2019    8901    0    FreeArcher    105    

Быстрый ввод неудобных символов

Пользователю системы Инструментарий разработчика Бесплатно (free)

Использование Alt-кодов для ввода “[”, “]”, “”, “&”, “#”, “|”

15.04.2019    8961    0    pparshin    28    

Вывод текста в окно сообщений (Теперь и для 8.2 !!!) Промо

Практика программирования Россия Бесплатно (free)

Позволяет вывести любой текст набранный с клавиатуры в окно сообщений. Теперь работает для любых конфигураций 1с предприятие!!!

29.05.2009    39035    0    Ёпрст    208    

Быстрее чем INSERT! BULK-операции и примеры использования

Производительность и оптимизация (HighLoad) Практика программирования Внешние источники данных Перенос данных из 1C8 в 1C8 Разработка Бесплатно (free)

Microsoft SQL Server поддерживает так называемые BULK-операции, используемые для быстрого изменения больших объемов данных в базе. В статье пойдет речь о практических примерах их использования. Все примеры сделаны в контексте платформы 1С (а как иначе).

09.03.2019    19635    0    YPermitin    40    

Как писать понятные коммиты

Практика программирования Разработка Россия Бесплатно (free)

Как писать сообщения коммитов так, чтобы потом не было мучительно больно.

06.03.2019    11489    0    Scorpion4eg    35    

Как писать код? Технологии древних цивилизаций, или все новое - это хорошо забытое старое

Математика и алгоритмы Бесплатно (free)

Все современные технологии - это развитие и доведение до ума (или маразма) древних идей. За последнее время не придумали ничего нового - все, что мы видим, было придумано тысячи лет назад. Не является исключением и программирование, которое в сути своей является переводом с языка условностей технического задания или заявки пользователя в формализованный и абсолютно точный язык математической логики. А логику придумали (по крайней мере первыми опубликовались в ведущих научных журналах) еще древние греки.

23.01.2019    10957    0    starik-2005    43    

Внутреннее качество разработки конфигураций 1С Промо

Практика программирования Математика и алгоритмы Бесплатно (free)

Пиши с верой в то, что твой читатель - это маньяк с дробовиком, знающий твой домашний адрес. Размышления на тему внутреннего качества кода при разработке/доработках конфигураций 1С.

21.06.2013    36946    0    ig1082    50    

Разработка и сценарное тестирование с Vanessa-ADD. Установка инструментов. Запись действий пользователя и выполнение сценариев

Практика программирования Бесплатно (free)

Вторая часть цикла публикаций, посвященных Vanessa-ADD и автоматизации тестирования.

21.01.2019    27431    0    Vladimir Litvinenko    94    

Роберт Мартин: "Будущее программирования" / Robert Martin: "The Future of Programming"

Математика и алгоритмы Блоги Бесплатно (free)

Перевод-транскрибация выступления.

14.01.2019    14494    0    Vladimir Litvinenko    38    

Ректальное программирование: основы для практикующих 1С-программистов

Математика и алгоритмы Бесплатно (free)

Одной из самых популярных и зарекомендовавших себя методологий программирования в 1С является так называемое ректальное программирование. Редкий проект внедрения и сопровождения учётных систем на платформе 1С обходится без его использования. Зачастую без знания данной методологии программистам даже бывает сложно найти работу в сфере 1С, потому что работодатели, особенно фирмы-франчайзи, в основном отдают предпочтение классическим, зарекомендовавшим себя методикам, а не новомодным заграничным веяниям.

19.12.2018    39866    0    for_sale    342    

1С + asterisk (автоматический обзвон) часть 1

WEB Практика программирования Телефония, SIP Россия Бесплатно (free)

Пример реализации автообзвона (с обработкой ответа на отвечающей стороне) с использованием ami asterisk. Данная статья может быть полезна программистам, интеграторам, администраторам. Версия и релиз технологической платформы не имеет значения.

29.11.2018    10618    0    dmarenin    9