Входом функций являются Дата и Время как в стандартном, так и форматированном представлении.
На закладке "Функции" дана возможность проверить работу функций. Представлен альтернативный выбор Даты с помощью Календаря (кн. "Выбор").;
На закладке "Календарь" показано, как просто можно создать и распечатать календарь на любой(!) год.
Краткое описание.
- функция глДВ_Дата(ВхДата,ДобавитьДни,…)
В ней реализованы все самые важные функции Даты в 1с7 (ДатаМесяц(), ДатаДень() и т.п). Что необходимо — можно добавить. Входом может быть как переменная типа «Дата» так и ее строковое выражение в русском стандарте ((день)…(месяц)…(год)) разделенные любыми символами). Год может быть любым, от 1 до 9999999…. (до Наше эры не рассматривались, если нужно — можно сделать). Типы форматов взяты из в 1с7 (ДДД..ММ..ГГ..), но дни месяцы и год могут располагаться в произвольном порядке.
Добавлен специальный формат «Д#k8SjZc9Dxk» — выводиться полное количество дней от Рождества Христова.
- функция глДВ_Время(ВхВрем,ДобавитьВремя,…)
В ней реализованы все необходимые функции Времени (в 1с7 отсутствуют).
Входом (ВхВремя,ДобавитьВремя) может быть как переменная типа ТекущееВремя(), так и любая строка, включающая в себя 4 или 3 группы цифр, разделенных любыми символами ((сутки)…(часы)…(минуты)…(секунды) или (часы)…(минуты)…(секунды))
Форматы сделаны по аналогии с Датой — ВД…Ч…М…С…, но порядок следования должен быть именно таким.
Есть специальный формат «Д#k8SjZc9Dxk» — выводиться количество секунд
Пример: время=»42/23:52:12″, формат=»ВДДДЧЧЧЧММСС», выход=»42 дня 23 часа 52 мин. 12 сек.».
- функция глДВ_ДатаВремя(ВхДата,ВхВрем,…)
В ней реализованы объединенные функцииДаты- Времени (в 1с7 отсутствуют).
Входом (ВхДата,ДобавитьВремя) может быть любые (стандартные или форматированные Дата и Время — см.выше)
Выход — Дата-Время форматированное согласно объединенному формату. Строка объединенного формата состоит из строк форматов Даты и Времени в любой последовательности и разделенных любыми символами (не задействованными в форматах)
Добавлен специальный формат «#k8SjZc9Dxk#k8SjZc9Dxk» — выдает количество секунд от Рождества Христова.
- функция глДВ_РазницаДатаВремя(Дата1,Время1,Дата2,Время2…)
Выдает форматированную разницу между начальным и конечным Датой_Временем (в 1с7 отсутствует).
Входом могут быть Дата и Время в любом «полном» формате (3 или 2 группы цифр для Даты, 4 или 3 группы цифр для Времени)
Применение для отчетов: задаем Дату-Время начала и конца Отчета — получаем форматированное время работы.
Возможные форматы:
«ВЛ…Р…Д…Ч…М…С…» — разница Даты-Времени в календарных годах, календарных месяца, днях, часах, минутах, секундах ;
«ВР…Д…Ч…М…С…» — разница в календарных месяцах (годы пересчитываются в месяцы), днях, часах, минутах, секундах;
«ВД…Ч…М…С…» — разница в днях (годы и месяцы пересчитываются в дни), часах, минутах, секундах;
«ВЧ…М…С…» — разница в часах (годы, месяцы и дни пересчитываются в часы), минутах, секундах;
«ВМ…С…» — разница в минутах (годы, месяцы, дни и часы пересчитываются в минуты), секундах;
«ВС…».- разница в секундах
Для данной функции добавлены форматы календарных лет (Л…) и календарных («Реальных») месяцев (Р…).
Пример:
Дат1=»22 июня 1941 г.»; Врем1=»4 часа 0:0″; Дат2=»9 мая 1945″; Врем2=»0:0:0″;
Формат=»ВЛЛЛЛРРРРДДДДЧЧЧЧММММСССС»; Вых=»3 года 10 месяцев 17 дней 20 часов 0 минут 1 секунда «;
Формат=»ВРРРДДДДЧЧЧЧ»; Вых=»46 мес. 17 дней 20 часов «;
Формат=»ВДДД»; Вых=»1416 дн. «.
Примечание:
На любых входах функций реализовано распознавания обобщенного формат Даты-Времени, а именно:
(День месяца)…(Номер или наименование месяца — 3 первых символа)…(Год)… (Час)…(Минута)…(Секунда)
Троеточием обозначены любые нецифровые символы.
(0) Автор, как-то отформатируйте описание, а то читать тяжело — все сливается. Попробуйте абзацы сделать, текст раскрасить.
Да и текст на скриншотах какой-то неразборчивый.
мда, совет не помог
(2) Altair777, (2) Altair777,
М…нет, слегка помог.
Поправил описание функций, добавил пример «календарных» форматов.
Извиняюсь, надо было использовать раздел «Программирование».
Формы, да и сама обработка используются здесь только для проверки работы функций.
Скриншоты даны только для представления о внешнем виде обработки-проверке.
Конечно, право на отрицательное мнение есть у каждого, но хотелось-бы
чтобы при этом глубже рассматривалась суть.
Кстати, выбор даты из Календаря и печать Календаря сделаны мимоходом,
именно для данной «демонстрашки», чтобы показать возможности функций.
(3) скажите Алексей. Вот Вам самому приятно смотреть на свое «творение»?
Я имею в виду оформление публикации, а не саму обработку.
(4) Altair777,я не смотрю. А по теме? Например, распознавание форматированных Даты-Времени на входе функций,
«календарные» форматы для разницы Даты-Времени. Скажите, Вы еще не сделали этого для восьмерки? Берите,
алгоритмы простые. Форматы Даты можно расширить до всяких применяемых (по моему их всего 4 из 6 возможных
перестановок. Естественно придется указывать тип международного формата). В некотором роде «интеллектуализация» 1с.
да конечно все размазано но почитав хорошая разработка вроде,ранее не встречал
(5) своих собственных 7-ых функций с датой у меня хватает.
Альтернативный способ выбора интервала дат .
Небольшой примерчик есть тут
А для 8-ки не вижу смысла писать собственные. Есть задачи намного более важные 🙂
Выкладываю последнее исправление. Устранены некоторые ошибки. Введено распознование на любых входах
функций Даты_Времени в обобщенном формате. Улучшены алгоритмы.
(8) плохо смотрели 🙂
Функций (процедур) работой с датой там много. Они ориентированы на визуализацию формы.
Например, Процедура ВывСтр() — замена стандартного ПериодСтр()
(10) Altair777, нашел в гл.модуле.Извиняюсь. Построены на основе стандартных функций Даты 1с7, с их главным недостатком-половина столетия. Мои как раз стандартные и заменяют. Не говоря уже о распознавании форматов, дополнительных форматах,функций и форматах Времени, объединенном формате, «календарном» формате и т.д.
для тренировки мозгов отлично пойдет