Как выгрузить план ФХД из 1С:Бухгалтерии государственного учреждения в систему АСУ ПФХД?

Программист 1С v8.3 (Обычные формы) Управленческий учет Сфера услуг, туризм и социальный сектор
← На главную

При работе образовательных и научных учреждений часто возникает необходимость передавать данные плана финансово-хозяйственной деятельности (ПФХД) в автоматизированную систему управления Министерства науки и высшего образования (АСУ ПФХД). Разберем, как устроена эта интеграция, какие есть варианты решения задачи и как правильно реализовать программную выгрузку данных в формате XML из 1С:БГУ.

Анализ доступных подходов к передаче данных

В типовой конфигурации «1С:Бухгалтерия государственного учреждения 8» редакции 1.0 встроенного механизма прямой интеграции с порталом АСУ ПФХД не предусмотрено. Поэтому учреждения выбирают один из следующих путей:

  1. Ручной ввод данных в личном кабинете портала. Данный способ подходит для небольших учреждений с минимальным объемом изменений и плановых назначений. Однако при регулярных корректировках плана и наличии большого количества расчетов-обоснований этот путь становится крайне трудозатратным и приводит к ошибкам ручного ввода.
  2. Использование специализированных коммерческих модулей. На рынке представлены отраслевые решения (например, дополнения от сторонних интеграторов и подсистемы финансового планирования для БГУ), которые содержат преднастроенные правила сбора показателей и встроенную выгрузку. Минусом такого подхода является высокая стоимость внедрения и поддержки стороннего продукта.
  3. Разработка собственной внешней обработки выгрузки в XML. Это оптимальный вариант с точки зрения баланса стоимости и гибкости. Программист может настроить выборку плановых показателей непосредственно из учетных регистров конфигурации и сформировать файл строго по ведомственной XSD-схеме.

Источники данных в конфигурации «1С:БГУ»

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

  1. Регистр накопления ОборотыПоБюджетам (или документы плановых назначений). Данный регистр содержит аналитику по статьям, кодам бюджетной классификации (КВР, КОСГУ), источникам финансового обеспечения (КФО) и суммам.
  2. Справочники аналитики. Необходимо сопоставить внутренние справочники учреждения со справочниками системы АСУ ПФХД (коды целевых субсидий, классификаторы видов расходов).
  3. Регистр сведений для логирования обмена. Рекомендуется создать дополнительный регистр сведений, в котором будут фиксироваться дата отправки, статус выгрузки, имя сформированного файла и ответ сервера, если отправка выполняется через регламентное задание.

Технические требования к формированию XML

Спецификация обмена АСУ ПФХД накладывает строгие требования к структуре и валидности загружаемых XML-файлов. Проанализируем ключевые моменты, несоблюдение которых вызывает отказ загрузки на портале:

  1. Строгий порядок следования узлов. Ведомственные XSD-схемы используют конструкцию xs:sequence. Если узлы в XML сформированы не в том порядке, который задан схемой, валидатор отклонит документ целиком. Формировать XML конкатенацией строк («склеиванием текста») крайне не рекомендуется.
  2. Форматирование числовых полей. Портал не принимает числа с разделителями групп разрядов (пробелами) и запятыми. Число должно выводиться строго с точкой в качестве разделителя дробной части (например, 150000.00).
  3. Кодировка и служебные символы. Файл должен формироваться в кодировке UTF-8 без BOM. Все спецсимволы в наименованиях (амперсанды, кавычки, угловые скобки) должны быть экранированы.
  4. Идентификаторы строк (GUID). Для новых строк спецификация требует передавать уникальный идентификатор. В 1С для этого используется стандартный метод Новый УникальныйИдентификатор(). Однако при выгрузке изменений к ранее утвержденному плану крайне важно сохранять исходные идентификаторы строк, иначе система создаст дублирующие позиции вместо обновления.

Разработка выгрузки с использованием Фабрики XDTO

Наиболее надежный программный способ выгрузки — использование встроенного механизма ФабрикаXDTO или объекта ЗаписьXML. Использование XDTO позволяет гарантировать правильную типизацию данных и соблюдение последовательности тегов.

Рассмотрим пример программного формирования структуры XML через ЗаписьXML с контролем форматов данных:


ЗаписьXML = Новый ЗаписьXML;
ПараметрыЗаписи = Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
ЗаписьXML.ОткрытьФайл(ИмяФайлаВыгрузки, ПараметрыЗаписи);

ЗаписьXML.ЗаписатьОбъявлениеXML();
ЗаписьXML.ЗаписатьНачалоЭлемента("ПланФХД");
ЗаписьXML.ЗаписатьАтрибут("ВерсияФормата", "1.0");

// Выборка плановых назначений из регистра
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Обороты.КФО КАК КФО,
    |	Обороты.КВР КАК КВР,
    |	Обороты.КОСГУ КАК КОСГУ,
    |	Обороты.СуммаОборот КАК Сумма
    |ИЗ
    |	РегистрНакопления.ОборотыПоБюджетам.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Обороты";

Запрос.УстановитьПараметр("НачалоПериода", НачалоГода(ПериодПланирования));
Запрос.УстановитьПараметр("КонецПериода", КонецГода(ПериодПланирования));

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    ЗаписьXML.ЗаписатьНачалоЭлемента("СтрокаПлана");
    
    // Генерация идентификатора строки
    ИдентификаторСтроки = Строка(Новый УникальныйИдентификатор());
    ЗаписьXML.ЗаписатьЭлемент("ИД", ИдентификаторСтроки);
    
    ЗаписьXML.ЗаписатьЭлемент("КФО", СокрЛП(Выборка.КФО));
    ЗаписьXML.ЗаписатьЭлемент("КВР", СокрЛП(Выборка.КВР));
    ЗаписьXML.ЗаписатьЭлемент("КОСГУ", СокрЛП(Выборка.КОСГУ));
    
    // Форматирование числа: 2 знака после запятой, без разделителя групп
    СтрокаСуммы = Формат(Выборка.Сумма, "ЧДЦ=2; ЧРД=.; ЧГ=0");
    ЗаписьXML.ЗаписатьЭлемент("Сумма", СтрокаСуммы);
    
    ЗаписьXML.ЗаписатьКонецЭлемента(); // СтрокаПлана
КонецЦикла;

ЗаписьXML.ЗаписатьКонецЭлемента(); // ПланФХД
ЗаписьXML.Закрыть();

Автоматизация регулярной отправки

Разберем по шагам, как выстроить удобный процесс регулярного взаимодействия с системой:

  1. Валидация файла перед загрузкой. Перед передачей файла на портал проверяем его локально. Если портал предоставил схему XSD, выполняем проверку через методы XDTO-пакета в 1С. Это сразу покажет незаполненные обязательные поля или несоответствие типов данных.
  2. Интерактивная загрузка. На начальном этапе бухгалтер сохраняет полученный XML-файл на диск и загружает его через форму ручной загрузки в личном кабинете АСУ ПФХД. Это позволяет визуально проконтролировать корректность протокола загрузки на стороне портала.
  3. Автоматизация через регламентное задание. После стабилизации структуры данных процедуру сбора остатков и формирования файла можно вынести в общесистемный модуль. С помощью объекта РегламентныеЗадания выгрузка и отправка данных будут запускаться по расписанию в нерабочее время, фиксируя результат в регистре сведений.
← На главную