Дата. Расширение методов на языке 1С:8

27.04.15

Разработка - Универсальные функции

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

Скачать файлы

Наименование Файл Версия Размер
ДатаРасширениеМетодов_Демо
.epf 16,21Kb
8
.epf 16,21Kb 8 Скачать

"Демо" сделано на УФ, в модуле формы все 9 функций. Показана работа четырех функций (из 9 предложенных).


Описание функций.

 

1. Дата_Реквизиты(ДатаВх)

     Возвращает Структуру с реквизитами даты:

     Год, Месяц, Полугодие, Квартал, Месяц, Декада, Неделя, Сутки, Час, Минута, Секунда.

 

2. Дата_ЗначениеРеквизита(ДатВх="",КодИлиТипРеквизита="")

ВХОД

  ДатВх      - Входная дата

  КодИлиТипРеквизита - КодР (цифра) или ТипР (символьный) реквизита Даты

     КодР,  ТипР, Знач:

     0  - произвольный     ".";           Знач - (не определено)

     1  - Год (Год);       "Г(од)";       Знач - номер года      (от Рожд.Христова)

     2  - Полугодие (Плг); "П(олугодие)"; Знач - номер полугодия (в Годе)

     3  - Квартал (Квт);   "К(вартал)";   Знач - номер квартала  (в Годе)

     4  - Месяц (Мес);     "М(есяц)";     Знач - номер месяца    (в Годе)

     5  - Декада (Дек);    "Д(екада)";    Знач - номер декады    (в Месяце)

     6  - Неделя (Нед);    "Н(еделя)";    Знач - номер недели    (в Месяце)

     7  - Сутки (Сут);     "С(утки)";     Знач - день месяца     (в Месяце)

     8  - Час (Час);       "Час";         Знач - номер часа      (в Сутках)

     9  - Минута (Мин);    "Мин(ута)";    Знач - номер минуты    (в Часе)

     10 - Секунда (Сек);   "Сек(унда)";   Знач - номер секунды   (в Минуте)

ВОЗВРАЩАЕТ

  ЗначениеРеквизита   - относительный Номер

               (относительно реквизита верхнего уровня. см "КодИлиТипРеквизита")

 

3.Дата_Изменить(ДатВх="",Год="",Мес="",Сут="",Час="",Мин="",Сек="")

   Изменяет ДатВх на основе нескольких значений входных параметров

  (Проверка корректности параметров не производится)

ВХОД

  ДатВх - Входная дата

  Год - устанавливаемый Год

  Мес - устанавливаемый Месяц

  Сут - устанавливаемый День

 Час - устанавливаемый Час

  Мин - устанавливаемая Минута

  Сек - устанавливаемая Секунда

ВОЗВРАЩАЕТ полученную Дату

 

 

4. Дата_УстановитьРеквизит(ДатВх="",КодИлиТипРеквизита="",ЗначениеРеквизита="")

изменяет ДатВх на основе указанных Типа и Значения Реквизита

С проверкой: при превышении Мин. или Макс. допустимого значения Реквизита устанавливается соответственно его Мин. или Макс. допустимое значение.

ВХОД

  ДатВх             - Входная дата

  КодИлиТипРекв     - Код или Тип Реквизита

                      (См функцию "Дата_ЗначениеРеквизита(...)"

  ЗначениеРеквизита - относительный номер реквизита

                      (относительно реквизита верхного уровня)

ВОЗВРАЩАЕТ полученную Дату

 

5.  Дата_Разность(Дата1="",Дата2="",РеквизитРасчета=1)

Получаем разность любых дат: Дата2-Дата1 (в т.ч. и отрицательную разность)

ВХОД

    Дата1            - первая дата

    Дата2            - вторая дата

    РеквизитРасчета - Код или Тип реквизита, с которого начнется расчет разности

                            (см. ф-ю  "Дата_ЗначениеРеквизита(...)")

ВОЗВРАЩАЕТ Структуру с ключами:

    Год - количество календарных лет    

    Мес - количество календарных месяцев

    Сут - количество дней      

    Час - количество часов     

    Мин - количество минут     

    Сек - количество секунд    

 

6. Дата_Период(ДатВх="",КодИлиТипПериода=0,НомерПериода="",КоличествоПериодов=1)

Возвращает даты начала и конца указанной серии периодов.

/ВХОД

  ДатВх      - Входная дата

  КодИлиТипПериода - КодП (цифра) или ТипП (символьный) "стандартного" периода

     КодП, ТипП, Номер:

     0  - произвольный     ".";           Номер - (не используется)

     1  - Год (Год);       "Г(од)";       Номер - номер года      (от Рожд.Христова)

     2  - Полугодие (Плг); "П(олугодие)"; Номер - номер полугодия (в Годе)

     3  - Квартал (Квт);   "К(вартал)";   Номер - номер квартала  (в Годе)

     4  - Месяц (Мес);     "М(есяц)";     Номер - номер месяца    (в Годе)

     5  - Декада (Дек);    "Д(екада)";    Номер - номер декады    (в Месяце)

     6  - Неделя (Нед);    "Н(еделя)";    Номер - номер недели    (в Месяце)

     7  - Сутки (Сут);     "С(утки)";     Номер - день месяца     (в Месяце)

     8  - Час (Час);       "Час";         Номер - номер часа      (в Сутках)

     9  - Минута (Мин);    "Мин(ута)";    Номер - номер минуты    (в Часе)

     10 - Секунда (Сек);   "Сек(унда)";   Номер - номер секунды   (в Минуте)

  НомерПериода      - если не указан  - вычисляется (см. КодИлиТипПериода)

  КоличествоПериодов - количество в серии "стандартных" периодов

                       с кодом КодИлиТипПериода

ВОЗВРАЩАЕТ Структуру:

  ДатаНач    - Дата начала серии периодов

  ДатаКон    - Дата конца серии периодов

  ДатаНачОтн - Дата начала серии периодов Относительная ("внутри" периода вышестоящего уровня),

               например, для первой недели - начало месяца  (см. КодИлиТипПериода)

  ДатаКонОтн - Дата конца серии периодов Относительная ("внутри" периода вышестоящего                       уровня)

  Номер      - номер начального периода в серии ("внутри" периода вышестоящего уровня)

  Количество - Количество периодов ("внутри" периода вышестоящего уровня)

  КодПериода - (см. КодИлиТипПериода)

  ТипПериода - (см. КодИлиТипПериода)

 

7. Дата_Добавить(ДатВх="",КодИлиТипПериода="",Количество=0,Годы=0, Месяцы=0,Сутки=0,Часы=0,Минуты=0,Секунды=0)

 

ВХОД

  ДатВх            - Входная дата

  КодИлиТипПериода - Код или Тип "стандартного" периода:

                     (См. функцию "Дата_Период(...)"

  Количество       - количество добавляемых периодов с кодом КодИлиТипПериода

  Годы             - количество (дополнительно) добавляемых лет

  Месяцы           - количество (дополнительно) добавляемых месяцев

  Сутки            - количество (дополнительно) добавляемых суток

  Часы             - количество (дополнительно) добавляемых часов

  Минуты           - количество (дополнительно) добавляемых минут

  Секунды          - количество (дополнительно) добавляемых секунд

ВОЗВРАЩАЕТ полученную Дату

 

8.  Дата_НайтиПериод(ДатВх1="",ДатВх2="")

     Возвращает найденный Код Периода, Тип Периода,

     Номер периода начала серии (периодов),

     Количество периодов в серии.

 

9. Дата_СерияПериодов(ДатаНач="",Шаг="",Период="",КолШагов=0,ДатаКон="")

ВХОД

     ДатНач     - Дата начала серии

     Шаг           -  Структура с ключами: параметры для  ф-ции "Дата_Добавить(...).

     Период     - Структура с ключами: параметры для ф-ции "Дата_Добавить(...).

     КолШагов - количество шагов в серии (начиная с нулевого)

     ДатаКон    - Конечная Дата (граница) для серии

ВОЗВРАЩАЕТ Соответствие с датами начал и концов периодов:

        ДатаНач - Дата начала периода (Ключ)

        ДатаКон - Дата конца периода  (Значение)

 

См. также

Печать любых непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать любые печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

3480 руб.

22.08.2023    786    1    0    

1

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

28.08.2023    3022    YA_418728146    3    

84

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    13185    100    sapervodichka    106    

118

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

18.07.2022    6311    quazare    8    

103

Хитрости СКД. Часть 3

СКД Универсальные функции Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

28.05.2022    7649    milkers    11    

87

Базовые принципы работы с регламентными заданиями подсистем БСП

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В очередной публикации рассмотрим некоторые базовые приемы работы с регламентными заданиями в рамках библиотеки стандартных подсистем

22.05.2022    12344    quazare    25    

57
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. newold2 124 30.04.15 12:38 Сейчас в теме
Добавил девятую функцию: Дата_СерияПериодов(...), описание к ней. Подчистил некоторые неточности, которые
могли приводить к ошибкам.
Оставьте свое сообщение