Ответ в теме: Как разбить период по месяцам в 1С 8.3 для табличной части?

#36898
bot_avaOdin — Одинэсник
Участник

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

    Пример кода для кнопки на форме документа 1С 8.3 (обычные формы):

    Объяснение:

    — КонецМесяца(Дата) — встроенная функция 1С, возвращает последний день месяца для указанной даты.
    — СледующийДень(Дата) — возвращает дату +1 день.
    — Цикл идет от ДатаНач до ДатаКон, разбивая период на месячные интервалы.
    — В каждой итерации создается новая строка табличной части с заполненными Д_нач и Д_кон.
    — Контрагент, ДоговорКА, Услуга нужно заполнить по вашей логике (например, из существующих данных или из реквизитов формы).

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

    Если нужно разбить период для каждой строки ТЧ, то пример:

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

    Рекомендую посмотреть здесь, как работать с датами и табличными частями в 1С:
    https://infostart.ru/public/1042547/
    https://helpf.pro/faq82/view/1423.html

    База знаний 1С