Как организовать параллельный учет и работу с несколькими планами счетов в 1С?

Программист 1С v7.7 Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При реализации параллельного учета (например, одновременного ведения РСБУ, МСФО или управленческого учета) разработчики сталкиваются с необходимостью использования нескольких планов счетов. Разберем технические нюансы работы с ними в коде, типовые ошибки при формировании проводок и архитектурные ограничения платформы.

Особенности программного получения счетов в 1С:Предприятии 7.7

Типичная ошибка при работе с дополнительными планами счетов в 1С 7.7 заключается в попытке переключить глобальный контекст через отдельный объект счета. Метод ИспользоватьПланСчетов() применяется к конкретному объекту метаданных, но не переключает контекст для глобальных функций поиска.

Проанализируем ошибочный вариант кода:


// Ошибка: метод ИспользоватьПланСчетов применен к объекту Сч,
// а функции СчетПоКоду ищут счет в основном плане счетов по умолчанию
Сч.ИспользоватьПланСчетов(ПланыСчетов.ЕПС);
Сч1 = СчетПоКоду("20.10"); 
Сч2 = СчетПоКоду("37.11.1");
глПроводка(Контекст, Сч1, Сч2, СуммаСНДС, "Прих:Себестоимость", Кво, МестоХранения, ТМЦ,, Контрагент,,, ,,"ПХ",,"Взаиморасчеты");

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

Посмотрим на корректный вариант вызова:


// Корректно: явное указание плана счетов вторым параметром
Сч1 = СчетПоКоду("20.10", ПланыСчетов.ЕПС);
Сч2 = СчетПоКоду("37.11.1", ПланыСчетов.ЕПС);

// Формирование проводки через глобальную процедуру
глПроводка(Контекст, Сч1, Сч2, СуммаСНДС, "Прих:Себестоимость", Кво, МестоХранения, ТМЦ,, Контрагент,,, ,,"ПХ",,"Взаиморасчеты");

Если используется объект БухгалтерскиеИтоги для получения сальдо и оборотов, перед выполнением расчета обязательно вызывается метод привязки к плану счетов:


БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьПланСчетов(ПланыСчетов.ЕПС);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаКон, "20.10");

Архитектурные правила и ограничения платформы

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

  1. Невозможность межплановых проводок: счет дебета и счет кредита в одной проводке обязаны принадлежать одному и тому же плану счетов. Платформа не поддерживает проводку, в которой дебет берется из плана счетов РСБУ, а кредит — из плана счетов МСФО или управленческого учета.
  2. Связь с регистром бухгалтерии (в 1С 8): один регистр бухгалтерии может быть привязан только к одному плану счетов. Если создается отдельный план счетов, для него обязательно создается собственный регистр бухгалтерии.
  3. План видов характеристик (субконто): каждый план счетов связывается со своим планом видов характеристик, определяющим набор видов субконто.

Работа с несколькими планами счетов в 1С:Предприятии 8

Рассмотрим, как строится работа с объектами метаданных в 1С 8. В коде и текстах запросов всегда требуется точная типизация счета.

  1. Обращение к предопределенным счетам: обращение выполняется через менеджер конкретного плана счетов, например: ПланыСчетов.Хозрасчетный.ОсновноеПроизводство или ПланыСчетов.Международный.Счет26.
  2. Программный поиск: поиск счета по коду также вызывается от конкретного менеджера: СчетУпр = ПланыСчетов.Управленческий.НайтиПоКоду("26");
  3. Запросы к виртуальным таблицам: обращение к оборотам и остаткам выполняется через виртуальные таблицы регистра, связанного с требуемым планом счетов:
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	РегОбороты.Счет КАК Счет,
        |	РегОбороты.СуммаОборот КАК СуммаОборот
        |ИЗ
        |	РегистрБухгалтерии.Международный.Обороты(&НачПериода, &КонПериода, , Счет = &Счет26, , , , ) КАК РегОбороты";
    Запрос.УстановитьПараметр("НачПериода", НачалоМесяца(ТекущаяДата()));
    Запрос.УстановитьПараметр("КонПериода", КонецМесяца(ТекущаяДата()));
    Запрос.УстановитьПараметр("Счет26", ПланыСчетов.Международный.НайтиПоКоду("26"));
    

Различие между несколькими планами счетов и разделителями учета

Выясним причину частой путаницы: иногда под параллельным учетом понимают использование разделителей учета или дополнительных измерений.

Несколько планов счетов создаются только в конфигураторе на этапе разработки. Это отдельные структуры со своей иерархией, кодировкой и назначением.

Разделители учета / измерения регистра (например, справочник Организации или Подразделения) позволяют вести раздельный учет внутри одного и того же плана счетов без создания дублирующих планов счетов и регистров.

← На главную