Как организовать учет по проектам и консолидацию ДДС в «1С:Бухгалтерия 3.0» с минимальными доработками?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Управленческий учет Промышленность, строительство и АПК
← На главную

Перед многими компаниями, особенно в сфере строительно-монтажных работ, рано или поздно встает задача ведения управленческого учета в разрезе проектов или строительных объектов. Ситуация усложняется, когда учет ведется по нескольким юридическим лицам в разных базах «1С:Бухгалтерия 3.0» (БП 3.0), а руководство хочет видеть сводную (консолидированную) картину по затратам и движениям денежных средств (ДДС).

При этом внедрение тяжелых ERP-систем или специализированных надстроек (например, «БИТ.ФИНАНС») часто оказывается нецелесообразным из-за высокой стоимости лицензий, сложности освоения и отсутствия выделенного штата финансовых аналитиков. Когда всю бухгалтерию ведет один специалист, требуется максимально простое, надежное и легко обновляемое решение. Рассмотрим, как реализовать такую систему, сохранив конфигурации типовыми.

Анализ возможных подходов к решению задачи

Для того чтобы выбрать оптимальный путь, проанализируем четыре основных варианта реализации проектного учета в «1С:Бухгалтерии 3.0», начиная от полностью стандартных механизмов и заканчивая разработкой собственной легкой подсистемы.

Вариант 1. Использование исключительно типового функционала (Номенклатурные группы и иерархия ДДС)

Самый простой путь, не требующий написания кода, — задействовать имеющиеся аналитические разрезы конфигурации:

  1. Учет затрат: Для разделения расходов по проектам (строительным объектам) идеально подходит справочник НоменклатурныеГруппы. На счетах учета производственных затрат (например, 20.01 «Основное производство») это субконто присутствует по умолчанию. Под каждый строительный объект создается своя номенклатурная группа. Это позволяет стандартными отчетами (оборотно-сальдовая ведомость по счету, анализ субконто) видеть себестоимость и выручку по каждому проекту.
  2. Учет ДДС: Некоторые специалисты предлагают создавать в справочнике СтатьиДвиженияДенежныхСредств группы (папки) с названиями проектов, а внутри них дублировать статьи («Оплата труда», «Закупка материалов» и т.д.). Однако этот путь быстро приводит к «разбуханию» и засорению справочника ДДС. Становится крайне сложно анализировать общую структуру затрат по компании (например, сколько всего было потрачено на зарплату по всем проектам вместе), так как элементы справочника будут дублироваться в разных папках.

Вариант 2. Механизм дополнительных сведений и расширений конфигурации

Это наиболее сбалансированный и красивый вариант, который позволяет избежать изменения структуры метаданных и сохраняет базу полностью типовой (на поддержке). Инструмент базируется на использовании механизма Дополнительных сведений, который входит в состав стандартной БСП (Библиотеки стандартных подсистем), интегрированной в БП 3.0.

Разберем, почему лучше использовать именно «Дополнительные сведения», а не «Дополнительные реквизиты»:

Для удобства работы пользователя (чтобы не заставлять бухгалтера нажимать кнопку «Еще» — «Дополнительные сведения» в каждом документе) создается небольшое расширение конфигурации. Оно выносит поле выбора проекта из дополнительных сведений непосредственно на форму платежных документов (таких как СписаниеСРасчетногоСчета, ПоступлениеНаРасчетныйСчет, РасходныйКассовыйОрдер).

Вариант 3. Создание консолидирующей базы данных

Если учет ведется в нескольких базах данных, то собирать консолидированную отчетность непосредственно в одной из рабочих баз неудобно. В этом случае целесообразно создать отдельную «пустую» базу (это может быть та же БП 3.0 или простая самописная конфигурация), которая будет служить приемником данных.

Для переноса информации настраивается обмен данными с помощью правил конвертации в программе «1С:Конвертация данных 2.0». При этом можно использовать файлы обмена формата XML. Важным преимуществом такого подхода является возможность переносить документы вместе с их движениями, отключая автоматическое проведение документов в базе-приемнике. Это гарантирует, что консолидированные данные будут в точности соответствовать первичным базам.

Вариант 4. Сложные специализированные ERP-системы (БИТ.ФИНАНС)

Покупка специализированных модулей уровня «БИТ.ФИНАНС» оправдана только в том случае, если на предприятии выстроена жесткая методология бюджетирования, есть финансовая служба и бюджетный комитет. Для небольших компаний с одним бухгалтером внедрение подобных систем превращается в бесконечный процесс доработок и костылей, поскольку система требует колоссальных трудозатрат на первоначальную настройку правил трансляции проводок и заполнение множества аналитик.

Проанализировав все плюсы и минусы, остановимся на самом жизнеспособном и бюджетном решении: **сочетание Номенклатурных групп (для затрат) и Дополнительных сведений с расширением (для ДДС)**.

Пошаговая реализация проектного учета через Дополнительные сведения

Рассмотрим подробно, как настроить систему проектного учета по денежным средствам без программирования в основной конфигурации.

Шаг 1. Настройка дополнительных сведений в режиме «1С:Предприятие»

Сначала активируем и настроим механизм свойств:

  1. Перейдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Установим флаг «Дополнительные реквизиты и сведения».
  3. Перейдем по ссылке «Дополнительные сведения».
  4. В списке найдем интересующие нас документы (например, Списание с расчетного счета и Расходный кассовый ордер).
  5. Добавим новое свойство. Назовем его «Проект». Тип значения укажем как «Дополнительное значение» (это создаст внутренний справочник для хранения списка ваших строительных объектов).

Шаг 2. Разработка расширения для удобства ввода данных

Чтобы бухгалтер оперативно заполнял аналитику по проектам, выведем созданное дополнительное сведение на форму документов. Для этого создадим расширение конфигурации:

  1. Откроем конфигуратор, выберем пункт меню Конфигурация — Управление расширениями конфигурации.
  2. Добавим новое расширение, снимем флажки «Безопасный режим» и «Защита от опасных действий».
  3. Заимствуем в расширение форму документа ФормаДокумента (для СписаниеСРасчетногоСчета).
  4. Добавим на форму поле ввода, связанное с регистром сведений ЗначенияСвойствОбъектов.

Проанализируем программный код, который можно использовать в расширении для автоматического считывания и записи значения проекта при открытии и сохранении формы документа:


&НаСервере
Процедура Расш1_ПриЧтенииНаСервереПосле(ТекущийОбъект)
    // Код считывает значение дополнительного сведения "Проект" для текущего документа
    СсылкаНаДокумент = ТекущийОбъект.Ссылка;
    СвойствоПроект = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Проект");
    
    Если ЗначениеЗаполнено(СвойствоПроект) Тогда
        Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |   ЗначенияСвойствОбъектов.Значение КАК Проект
            |ИЗ
            |   РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            |ГДЕ
            |   ЗначенияСвойствОбъектов.Объект = &Объект
            |   И ЗначенияСвойствОбъектов.Свойство = &Свойство";
        
        Запрос.УстановитьПараметр("Объект", СсылкаНаДокумент);
        Запрос.УстановитьПараметр("Свойство", СвойствоПроект);
        
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ЭтотОбъект.ПроектРеквизитФормы = Выборка.Проект;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура Расш1_ПередЗаписьюНаСервереПосле(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    // Записываем выбранный проект в регистр дополнительных сведений
    СвойствоПроект = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Проект");
    
    Если ЗначениеЗаполнено(СвойствоПроект) Тогда
        МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
        МенеджерЗаписи.Объект = ТекущийОбъект.Ссылка;
        МенеджерЗаписи.Свойство = СвойствоПроект;
        МенеджерЗаписи.Значение = ЭтотОбъект.ПроектРеквизитФормы;
        МенеджерЗаписи.Записать(Истина);
    КонецЕсли;
КонецПроцедуры

Использование этого кода позволяет полностью автоматизировать процесс работы пользователя с проектами: бухгалтер видит обычное поле ввода на форме платежного поручения или ордера и выбирает проект из выпадающего списка. Сама конфигурация при этом остается полностью типовой.

Шаг 3. Формирование отчетности по проектам

Для получения консолидированной информации по проектам и организациям нам не обязательно писать сложный внешний отчет с нуля. Посмотрим на возможности встроенного механизма Универсальный отчет (находится в разделе Отчеты — Стандартные отчеты):

  1. В поле «Тип объекта» выберем «Регистр накопления».
  2. В качестве регистра выберем КнигаУчетаДоходовИРасходовРазделI или специализированный регистр движений денежных средств (например, ДвиженияДенежныхСредств).
  3. В настройках отчета (кнопка «Настройки») перейдем во вкладку «Структура» и добавим группировку по полю Документ.ДополнительныеСведения.Значение (система автоматически свяжет регистратор с его дополнительными свойствами).
  4. На вкладке «Фильтры» вы можете установить отбор по конкретному проекту или группе проектов.

Если данные ведутся в разных базах, вы можете выгружать аналогичные отчеты в Excel и сводить их с помощью стандартных сводных таблиц (Pivot Tables), либо настроить автоматический сбор данных через простейшую обработку, которая подключается к базам по COM-соединению или считывает XML-выгрузки.

Таким образом, мы получили гибкую, легковесную и абсолютно бесплатную систему проектного учета, которая не препятствует автоматическому обновлению «1С:Бухгалтерии» и позволяет контролировать финансовые потоки по строительным объектам в разрезе нескольких организаций.

← На главную