Установить время в программе 1 с

В 1С есть специальная настройка, которая позволяет устанавливать фиксированное время для разных длокументов. Для настройки времени записи документов в программе используется флажок «Время документов устанавливать автоматически»: раздел Администрирование – Проведение документов (см. скрин) Как работает этат настройка:
1. Если флажок снят, то при записи документа текущей датой время его записи соответствует системному времени компьютера. Если пользователь отредактировал дату документа, то при записи время документа автоматически установится на 12:00:00.
2. Если флажок установлен, то документы каждого вида записываютсясо строго определенным временем, т.е. в строго определенной последовательности.

Ирина Шаврова Сотрудник БухЭксперт8 :

Приложение

Давайте проанализируем эти установки по программному коду, поскольку в открытом доступе этих данных нет. Итак, при установке флага «Время документов устанавливать автоматически» задействуется специальная функциональность 1С — Фиксированное время документов. При записи любого документа программа передает управление в специальный общий модуль с аналогичным названием, где определяется тип документа и вызывается функция определения фиксированного времени именно для этого типа документа.

Как сделать установку даты и времени в документе в 1С?

Ирина Шаврова Сотрудник БухЭксперт8 :

Приложение

Функция называется ВремяДокументаПоУмолчанию() и назходится в модуле менеджера документов (пишу так подробно, если вам не понравятся те данные, что указаны разработчиками, чтобы вы могли их при желании и необходимости поменять в Конфигураторе) Для документа Поступление (акт, накладная) — автоматическое время устанавливается 7:00:00 (см. скрин) Если вам важно уточнить автоматическое время для других документов, то я это посмотрела и могу вывести эту информацию здесь в порядке возрастания: — Поступление (акт, накладная) — 7:00:00
— Требование накладная — 12:00:00
— Выпуск продукции, Отчет производства за смену — 13:00:00
— Реализация (акт, накладная) — 14:00:00
— Поступление на расчетный счет — 17:00:00
— Списание с расчетного счета — 18:00:00 Это то, что «зашито» в коде разработчиками для указанной настройки. Возможно, эти данные вам подойдут: поступление и выпуск здесть всегда раньше списания и реализации. Но если нет, то менять часы вам придется в программном коде программы для каждого документа отдельно в модуле менеджера — функции ВремяДокументаПоУморлчанию() Сделать это вы сможете только сняв с запрета редактирования конфигурацию и это может привести к ошибкам обновления, если в штате нет программистьа, который сможет обновлять измененную конфигурацию.

Читайте также:
Оптимизировать работу программ или служб работающих в фоновом режиме win 10

Источник: buhexpert8.ru

Настройка программ 1С
с учетом всех ваших интересов

Главная / Статьи / Как синхронизировать время на компьютерах?

Урок экспресс обучения — 1С Предприятие 8.3 для начинающих

Как синхронизировать время на компьютерах?

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

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

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

Как это сделать?

Самый легкий и простой метод синхронизировать время на разных машинах — настроить синхронизацию времени Windows с сервером точного времени через интернет.

Как правильно настроить синхронизацию времени:

  • Панель управления — Дата и время — вкладка Время Интернета.
  • Установить галочку «Выполнять синхронизацию с сервером времени в Интернете».
  • Указать адрес сервера: ru.pool.ntp.org (это сервер синхронизации времени).
  • Или: 77.234.200.98 (это тоже сервер синхронизации времени)

Необходимо выполнить на каждом компьютере, если сеть без домена.

Если имеется домен, достаточно выполнить на контроллере домена.

Для настройки синхронизации времени на контроллере домена и серверах, если отсутствует вкладка «Время Интернета»:

  • Запустить командную строку: Windows+R.
  • Ввести команду w32tm /config /update /manualpeerlist:ru.pool.ntp.org /syncfromflags:manual

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

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

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

Читайте также:
Диагностическая программа это в психологии определение

Ваше мнение

Обычно клиенты обращаются, чтобы:

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

Источник: slvov.ru

Программирование 1С 8.х для начинающих

  • Вы здесь:
  • Главная
  • Статьи
  • Общие вопросы
  • Введение
  • Время в 1с

Поделитесь в соцсетях

Общие вопросы

Время в 1с

Подробности Категория: Введение

  • В программе 1с 8-ой версии Дата это объект, который состоит из самой календарной даты и времени.
  • Дата
  • Время

Время в 1с

В программе 1с 8-ой версии Дата это объект, который состоит из самой календарной даты и времени.

При программировании можно использовать следующие конструкции для оперирования временем:

Дата

Чтобы получить объект «Дата» существует несколько способов. Например, чтобы установить программно дату «30.12.2010 23:59:59»:

Док.Дата = ‘20101230235959’ ;
Док.Дата = Дата(«20101230235959»);
Док.Дата = Дата(2010,12,30,23,59,59);
Док.Дата = Дата(«2010-12-30 23:59:59»);

В запросах для получения даты используется метод «ДатаВремя»:

ДатаВремя(2010,12,30,23,59,59)

Пустая дата это нулевая секунда нулевого года, а т.к. отсчет идет от Рождества Христова, то и получается следующая запись:

ПустаяДата = Дата(0001,01,01,00,00,00);

//Причем секунды записывать не обязательно.

ПустаяДата = Дата(0001,01,01);

В запросе это будет выглядеть проще:

ДатаВремя(1,1,1)

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

РазностьВСекундах = Дата(«20101230235959») — Дата(«20081115035529»);//67 032 270

Поэтому надо исходить из того какой тип результата нас интересует. Например, если нас интересует только разница в днях, то можно написать так:

РазностьВСекундах = Дата(«20101230235959») — Дата(«20081115035529»);

РазностьВДнях = РазностьВСекундах/86400;

В случае если нужна полная разница(Лет, месяцев, дней) между датами то есть следующие варианты:
1. Алгоритм который первый приходит в голову, НЕ точный :

РазностьВСекундах = Дата(«20101230235959») — Дата(«20081115035529»);
РазностьВДнях = РазностьВСекундах/86400;
ПолнаяРазница = «Лет: » + Цел(РазностьВДнях/365) + « Месяцев: » + Цел((РазностьВДнях%365)/30) + « Дней: » + (РазностьВДнях%365)%30;

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

Читайте также:
Как пользоваться программой ttl master на смартфоне

2. Более точен следующий алгоритм описанный в типовой конфигурации, например, в ЗУП:

Процедура РазобратьРазностьДат(Дата1, Дата2, Лет = 0, Месяцев = 0, Дней = 0) Экспорт

Лет = 0;
Месяцев = 0;
Дней = 0;
Если Дата1 > Дата2 Тогда

ВременнаяДата = Дата1;
Если День(ВременнаяДата) < День(Дата2) Тогда
Дней = (ВременнаяДата — ДобавитьМесяц(ВременнаяДата,-1))/86400;
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
КонецЕсли;
Если Месяц(ВременнаяДата) < Месяц(Дата2) Тогда
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
Месяцев = 12;
КонецЕсли;
Лет = Макс( Год(ВременнаяДата) — Год(Дата2), 0);
Месяцев = Макс(Месяцев + Месяц(ВременнаяДата) — Месяц(Дата2), 0);
Дней = Макс(Дней + День(ВременнаяДата) — День(Дата2), 0);

// скорректируем отображаемое значение, если «вмешалось» разное количество дней в месяцах
Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней*86400) Тогда
Дней = Дней + (День(КонецМесяца(Дата2)) — День(НачалоМесяца(Дата2))) — (День(КонецМесяца(ДобавитьМесяц(Дата1,-1))) — День(НачалоМесяца(ДобавитьМесяц(Дата1,-1))));
КонецЕсли;

КонецЕсли;

КонецПроцедуры // РазобратьРазностьДат

Для запросов же можно использовать способ предложенный здесь: http://kb.mista.ru/article.php?id=664

Автор взял за основу предыдущую процедуру и перевел её на язык запросов так для вычисления года нужно записать следующее(я немного изменил запрос для наглядности):

|ВЫБОР
| КОГДА ГОД(ВЫБОР
| КОГДА МЕСЯЦ(ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала) > 0
| ТОГДА ГОД(ВЫБОР
| КОГДА МЕСЯЦ(ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала)
| ИНАЧЕ 0
|КОНЕЦ
|ВЫБОР
| КОГДА ВЫБОР
| КОГДА МЕСЯЦ(ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала) > 0
| ТОГДА ВЫБОР
| КОГДА МЕСЯЦ(ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала)
| ИНАЧЕ 0
|КОНЕЦ
|ВЫБОР
| КОГДА ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1), ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала) > 0
| ТОГДА ВЫБОР
| КОГДА ДЕНЬ( ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1), ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ МЕСЯЦ(ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаОкончания) < ДЕНЬ(ДатаОкончания, МЕСЯЦ, -1)
| ИНАЧЕ ДатаНачала)
| ИНАЧЕ 0
|КОНЕЦ

Время

Для получения значений времени используются следующие методы:

СекундаДаты = Секунда(Дата(«20081115035529»)); // 29
МинутаДаты = Минута(Дата(«20081115035529»)); // 55
ЧасДаты = Час(Дата(«20081115035529»)); // 3

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

Секунда(ДатаВремя(2008,11,15,03,55,29))
Минута(ДатаВремя(2008,11,15,03,55,29))
Час(ДатаВремя(2008,11,15,03,55,29))

Недостаточно прав для комментирования

Источник: 1s-portal.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru