При внедрении блока бюджетирования на одном проекте была поставлена задача. В табличную часть документа (бюджетная операция и еще 2 похожих по смыслу документа) необходимо было вводить следующие данные по периодам: Статья бюджета - Проект - Контрагент - Договор - Номенклатура - Сумма операции.
Хотелось, чтобы суммы можно было вводить по колонкам, как в экселе. Причем количество периодов в документе могло быть неограниченным (7 дней недели, 30 дней месяца или все 365 дней года).
Выложить реализацию этой задачи в виде отдельной базы данных подтолкнула вот эта публикация: //infostart.ru/public/549297/ , все-таки СКД или поле табличного документа не очень удобны для ввода данных по сравнению с привычными табличными частями.
В проекте решение реализовано было на базе УПП, понятно что его выкладывать сюда целиком не буду. Моя база состоит из нескольких справочников (одноименные с УПП, но созданы заново в упрощенном виде) : сценарии, номенклатура, контрагенты... , и одного документа - Наш документ, в котором и вводятся данные (меню Операции - Документы).
Код открыт, можно переносить функционал в свои разработки.
Последовательность работы предполагается такая.
Создаем документ, выбираем сценарий с нужной периодичностью, выбираем планируемый период.
В табличном поле появится нужное количество колонок с заголовками в соответствии с периодами.
Добавляем строки с данными. Показатели "Сумма" и "Количество" можно вводить двумя способами:
1. В колонку Итого, тогда данные по периодам заполнятся автоматически. Например, выбрано 12 месяцев, в итого введено 1200 руб., в каждой колнке появится по 100 руб. В случае, если введенная сумма не делится нацело на количество периодов (7000 / 12 = 583,33333), дельта от округления суммируется в колонку первого периода.
2. В колонку каждого периода. При этом в колонке "Итого" будет видна общая сумма введенных данных по строке.
Реализована возможность копирования, удаления, сортировки строк (для обычной табличной части это сама платформа делает, тут же понадобилось несколько строк кода).
При изменении периода планирования или сценария - табличная часть очищается.
Поскольку код выдернут из другой конфигурации и толком в новой базе не оттестирован, возможны баги.
Учту и исправлю.