Сразу оговорюсь - это моя первая публикация на данном ресурсе, поэтому по возможности просьба снисходительно отнестись к возможным огрехам.
Итак, что требовалось решить:
1. Организовать хранение КБК.
2. Организовать связь КБК с аналитикой бухгалтерского учета.
3. Реализовать движения документов таким образом, чтобы помимо проводок по стандартным бухгалтерским счетам и аналитике, они делали движения и по аналитике управленческого учета.
И все это без доработки конфигурации.
Для создания КБК был использован ПВХ "Виды субконто хозрасчетные". Новый элемент "АналитикаУУ" с типом значения справочник "Субконто". Для связи с аналитикой УУ был создан еще один элемент ПВХ "АналитикаБУ", тип значения составной: прочие доходы/расходы, статьи затрат, номенклатура.
В план счетов бухгелтерского учета были добавлены два забалансовых счета "СF" и "PL" ("cash flow" и "profit and loss"). CF имеет виды субконто: Контрагенты, Статьи движения денежных средств, АналитикаУУ. PL - Контрагенты, АналитикаБУ, АналитикаУУ. Все виды субконто - оборотные.
Связь между аналитиками организована следующим образом. Соответсвие аналитик хранится в таблице значений, а сама таблица - в хранилище значений. Для хранения был использован регистр сведений "Шаблоны печати машиночитаемых форм". Его ресурс "Шаблон" как раз имеет тип - хранилище. Была написана форма для получения таблицы из регистра, заполнения и сохранения. В дальнейшем, для удобства работы пользователей, эта форма была встроена в отчет.
Теперь необходимо организовать движение документов по нашим забалансовым счетам. Для реализации этого пункта был применен механизм планов обмена. Был создан новый план обмена "по организации". Документы при проведении и записи регистрировались в плане обмена. Обработка добавления управленческих проводок считывает изменения регистра бухгалтерии и помещает их в табличную часть. Далее обработка запросом получает все активные движения по регистру бухгалтерии (в рамках cash-flow и profit-loss), к которым необходимо добавить управленческие проводки. К таблице, содержащей проводки к изменению, присоединяется таблица проводок из запроса и таблица мэппинга. Таким образом на выходе имеем результирующую таблицу проводок, содержащую в каждой строке забалансовый счет, по которому нужно сделать движения и управленческие субконто, соответсвующие бухгалтерской аналитике. Очевидно, что такой механизм желательно делать раз в сутки, поэтому запуск обработки осуществляется регламентным заданием. После добавления управленческих проводок регистрация в плане обмена с обработанных объектов - снимается. Пользователи в течении дня работают с базой как обычно, а вечером ко всем измененным документам будут добавлены управленческие проводки. Механизм хорош: во-первых скорость работы базы фактически не меняется, а во-вторых нет необходимости придумывать дополнительные способы отслеживания действий пользователей. Обработка также ведет лог, чтобы было удобно прочитать, какие проводки добавились, а какие - нет и по какой причине (например, не задано соответствие КБК и БУ).
Также был написан отчет на СКД, позволяющий пользователю помимо обычного анализа движений открывать эти движения и при необходимости изменять КБК непосредственно в управленческой проводке. Так как набор записей при этом изменяется, для того, чтобы регламентное задание не затерло в последующем эти изменения - выставляется флаг ручной корректировки движений и объект снимается с регистрации в нашем плане обмена.
Кроме того, в отчете реализован удобный механизм расшифровки. Суммарные движения по КБК можно расшифровать детально и результат будет выведен в табличный документ на той же форме. Такие расшифровки можно делать сколь угодно раз, для хранения расшифрованных данных используется формирование уникального адреса данных во временном хранилище и последующее получение данных расшифровки из него.