Переход бюджетных организаций на новые платформы учета часто сопровождается техническими сложностями, особенно когда речь идет об интеграции ведомственных систем, таких как «Исполнение бюджета» (разработки компании «Криста»), с учетными решениями на базе 1С:Бухгалтерия государственного учреждения (БГУ) 1.0. В этой статье мы подробно разберем, как решить проблему переноса данных, если привычные инструменты выгрузки из старой версии «АС Смета» или «УРМ» перестали работать или выдают неполные данные в WEB-интерфейсе.
Рассмотрим типичную ситуацию: ранее организация использовала локальный программный комплекс (УРМ), который позволял формировать текстовые файлы определенной структуры. Эти файлы загружались в 1С:БГУ 1.0 с помощью самописной обработки. После принудительного перехода на WEB-исполнение (платформа «АС Бюджет») формат выгрузки изменился, а в выходных файлах стали отсутствовать критически важные поля, такие как ЛицевойСчет и КВР (Код вида расходов).
Проанализируем причины этой проблемы. В WEB-интерфейсе системы «Криста» механизмы формирования файлов управляются на стороне сервера через так называемые «Профили обмена». Если в выбранном профиле не настроены соответствующие маппинги (сопоставления полей), данные просто не попадут в файл. Однако большинство этих данных в системе есть, и их можно либо извлечь программно, либо настроить корректную выдачу на стороне первоисточника.
Прежде чем приступать к доработке самописных модулей, выясним, поддерживает ли ваша версия «Исполнения бюджета» выгрузку в стандартах УФК (СЭФД). Это наиболее рациональный путь, так как 1С:БГУ 1.0 имеет встроенный механизм импорта таких файлов.
Казначейство/Банк — Импорт из казначейской системы.Объект импорта, указав путь к файлам и соответствующую версию альбома форматов. Если система «Криста» выдает актуальные файлы, 1С сможет распознать их без дополнительных программных манипуляций.Если организация вынуждена использовать специфический формат текстового файла, в котором отсутствует поле КВР, разберем, как получить это значение из структуры КБК. В бюджетном учете КВР (Код вида расходов) занимает 18-20 разряды (в 20-значном КБК) или 21-23 разряды (в полной структуре классификации).
Проанализируем алгоритм в коде 1С. Если у нас есть строка КБК, мы можем выделить КВР функцией Сред(). Рассмотрим пример кода:
// Предположим, СтрокаФайла содержит полную строку КБК
ПолныйКБК = "00000000000000000111"; // Пример КБК
// Извлекаем КВР (последние 3 символа для 20-значного КБК)
КодВР = Сред(ПолныйКБК, 18, 3);
// Поиск или создание КПС в 1С:БГУ 1.0
ЗапросКПС = Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(ПолныйКБК);
Если ЗапросКПС.Пустая() Тогда
// Логика создания нового КПС или оповещения пользователя
КонецЕсли;
Таким образом, даже если поле КВР не выделено в файле отдельным тегом, наличие полного кода классификации позволяет восстановить информацию при загрузке.
Выясним, почему ЛицевойСчет может отсутствовать в выгрузке. Часто в системах исполнения бюджета лицевой счет привязан к конкретному учреждению и типу средств (КФО). Если в файле его нет, мы можем реализовать таблицу соответствий непосредственно в обработке загрузки 1С.
Разберем, как это реализовать структурно:
КФО (например, из КБК или типа документа).ЛицевыеСчета.Пример программной реализации логики подстановки:
Функция ОпределитьЛицевойСчет(УчреждениеСсылка, ЗначениеКФО)
// Поиск лицевого счета в справочнике по владельцу и КФО
Выборка = Справочники.ЛицевыеСчета.Выбрать( , УчреждениеСсылка);
Пока Выборка.Следующая() Цикл
Если Выборка.ВидСредств.Код = ЗначениеКФО Тогда
ВозвращаемыйСчет = Выборка.Ссылка;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ВозвращаемыйСчет;
КонецФункции
Самый правильный с точки зрения методологии способ — это настройка самого источника данных. Система «WEB-Исполнение» является гибко настраиваемой. Пользователь (бухгалтер) аптеки или другого учреждения обычно не имеет прав администратора системы, но может инициировать запрос в финансовый орган.
Рассмотрим последовательность действий:
Если вы решили переписывать существующую «приблуду» (самописную обработку), обратите внимание на следующие моменты:
Во-первых, старайтесь уйти от чтения текстовых файлов по фиксированным позициям символов. WEB-версия «Кристы» может менять длину полей. Используйте разделители (например, точку с запятой или табуляцию).
Во-вторых, проанализируйте возможность выгрузки из «Кристы» в формате Excel. WEB-интерфейс часто позволяет просто выгрузить реестр документов в таблицу. Написать загрузку из Excel в 1С значительно проще, чем разбирать «кривой» текстовый файл без расширения. В Excel вы наглядно увидите, какие колонки заполнены, а какие — нет.
В-третьих, учитывайте, что 1С:БГУ 1.0 постепенно снимается с поддержки. При написании интеграции закладывайте возможность легкого переноса кода на БГУ 2.0, где используются управляемые формы и другие механизмы работы с файлами. Используйте функции ОбщегоНазначения для работы со строками и документами.
Выясним, какой вариант наиболее трудозатратный. Изменение профиля выгрузки в «Кристе» — идеальный вариант, не требующий кода в 1С. Доработка старой загрузки — быстрый «костыль», который поможет сдать отчетность «здесь и сейчас», но потребует поддержки в будущем. Переход на типовой обмен УФК — самый стабильный путь для долгосрочной эксплуатации системы.