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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как разбить период по месяцам в 1С 8.3 для табличной части?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36897
      Фото аватараOdineski
      Участник

        1с83 обычные формы Документ КоммунальныеУслуги. Реквизиты ДатаНач, ДатаКон. Табличная часть Услуги. Создаю запись ТЧ. Контрагент, ДоговорКА, Услуга эти колонки заполняю. Колонки Д_нач, Д_кон пусты. На форме документа задаю реквизиты ДатаНач, ДатаКон. По нажатию кнопки на форме необходимо : 1. Разбить период с ДатаНач (02.02.26) по ДатаКон (19.04.26) на периоды 02.02.26 — 29.02.26, 01.03.26-31.03.26, 01.04.26-19.04.26.

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

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

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

          Объяснение:

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С