- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 13 часов назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как ограничить время документа в 1С до 23:00?
Мне необходимо править автоматически время документа. Не позднее 23:00 Где правильно это запрограммировать время документа ?
Если нужно автоматически ограничить время документа не позднее 23:00 (например, чтобы не было 23:59:59), то правильное место для такой логики — событие «ПередЗаписью» документа.
Вот как это сделать:
1. В модуле объекта документа (или в общем дополнительном модуле, если хотите универсальное решение) создайте процедуру, которая будет проверять и корректировать время документа.
Пример кода в модуле объекта документа:
|
1 2 3 4 5 6 7 8 9 |
Процедура ПередЗаписью(Отказ) // Проверяем, если время документа позже 23:00:00, то ставим 23:00:00 Если Время(ДатаВремяДокумента()) > Время(23,0,0) Тогда ДатаДокумента = Дата(ДатаВремяДокумента()); // Устанавливаем время 23:00:00 ДатаВремяДокумента = ДатаДокумента + Время(23,0,0); ЭтотОбъект.Дата = ДатаВремяДокумента; КонецЕсли; КонецПроцедуры |
2. Если у вас много типов документов и хотите универсальное решение, то лучше сделать процедуру в дополнительном модуле, например:
|
1 2 3 4 5 |
Процедура ОграничитьВремяДокумента(Источник) Если Время(Источник.Дата) > Время(23,0,0) Тогда Источник.Дата = Дата(Источник.Дата) + Время(23,0,0); КонецЕсли; КонецПроцедуры |
И в событии «ПередЗаписью» документа вызвать:
|
1 |
ДополнительныйМодуль.ОграничитьВремяДокумента(ЭтотОбъект); |
3. Если документы могут проводиться неоперативно (с разным временем), то можно дополнительно проверять режим проведения и дату, чтобы не менять время в других случаях.
4. В конфигураторе в разделе «Подписки на события» можно настроить подписку на событие «ПередЗаписью» для нужных документов и там вызвать эту процедуру.
Так вы гарантируете, что при записи документа время не будет позже 23:00.
Рекомендую посмотреть здесь, там подробно описан похожий пример с ограничением времени документа в 23:00:
https://infostart.ru/1c/articles/2118760/