Время на прочтение: 15 минут
Сложность: экспертная / продвинутая
Снятие с поддержки старых решений — процесс болезненный, но неизбежный. Переход с исторической системы 1С:УПП на современную платформу 1С:ERP или 1С:Управление холдингом (1С:УХ) всегда сопряжен с вопросом: как перетащить многолетнюю историю бюджетов, не потеряв данные и не сойдя с ума от рутины?
Многие думают: «Заведем остатки документом ввода остатков, как в бухгалтерии». Но подсистема бюджетирования в 1С:УХ — это не бухгалтерия. Это многомерная аналитическая модель. Вместо плана счетов — семейство специализированных регистров сведений, структура которых гибко настраивается через механизм «групп раскрытия» для каждой строки отчета.
Как выглядит это семейство регистров — показано на Рисунке 1. Именно сюда в конечном итоге должны попасть наши исторические данные.
Рисунок 1. Семейство регистров для хранения значений показателей бюджетирования.

Прямая аналогия с документами «Ввод остатков» из 1С:ERP (см. Рисунок 2) здесь не работает. Однако существуют альтернативные, архитектурно корректные решения, которые позволяют решить задачу.
Рисунок2. Типовые документы для ввода остатков из 1С:ERP.

В этой статье я поделюсь опытом переноса огромного массива данных (миллионы накопленных записей за 10-20 лет работы компании) и разберу три принципиально разных подхода. Каждый из них имеет право на жизнь в зависимости от сроков, бюджета и объема данных.
Зачем хранить всю «историю» в бюджетировании?
Прежде чем перейти к технике, ответим на вопрос заказчика: «Зачем нам тянуть историю всех оборотов, давайте заведем только начальные остатки на момент старта». Опыт показывает, что для бюджетирования этого мало. Исторические данные критически важны для:
-
Ретроспективного анализа и выявления сезонности.
-
Построения трендов для планирования (прогнозирование на основе факта прошлых лет).
-
Контрольной сверки оборотов с источниками данных в переходный период.
-
Формирования управленческой отчетности, требующей динамики за предыдущие годы.
Поэтому будем учиться загружать именно обороты, а не только остатки.
Вариант №1. Типовой: загрузка через Excel-бланки «Для импорта и отображения»
Этот способ реализован в типовом функционале 1С:УХ и не требует никаких доработок. Для каждого вида отчета можно сформировать специальный бланк в формате Excel.
Формирование бланка для импорта данных средствами EXCEL
Рисунок 3. Настройка бланка с назначением «Для импорта и отображения».

Суть проста: система генерирует Excel-файл строгой структуры, вы заполняете его данными (вручную или программно) и загружаете обратно. Механизм полностью типовой и интуитивно понятный.
Плюсы:
-
Не требует доработок конфигурации.
-
Интуитивно понятен пользователям — работает по принципу «взял бланк, заполнил, загрузил».
-
Подходит для разового ввода данных или эпизодических корректировок.
Минусы (критические для масштабной миграции):
-
Ограничение Excel: лимит на количество строк (чуть более 1 млн) делает невозможной загрузку больших массивов за один раз.
-
Ручная подготовка тысяч файлов: для каждого периода и вида отчета нужен отдельный бланк. При глубине 14 лет (160+ периодов) и 18 видах отчетов количество файлов измеряется тысячами.
-
Отсутствие повторного использования: любая ошибка в НСИ (например, не тот код контрагента) требует перезаполнения и перезагрузки всех файлов заново.
-
Сложность автоматизации: форматы бланков жестко зашиты в системе, и их нельзя гибко адаптировать под структуру источника.
Вывод:
Способ идеален для разового ввода данных за 1–2 года или для небольших корректировок. Для миграции многолетних архивов (10+ лет) это — «путь в никуда»: трудозатраты на подготовку и контроль тысяч файлов делают подход экономически нецелесообразным и технически рискованным.
Вариант №2. Документарный подход: загрузка через документы-регистраторы
В этом подходе мы создаем документы, которые выступают полноценными регистраторами для будущих записей в регистрах бюджетирования. Рассмотрим два подварианта.
2.1. Типовой документ «Отражение фактических данных»
В 1С:УХ есть мощный документ «Отражение фактических данных» (ОтражениеФактическихДанныхБюджетирования). Он содержит все необходимые реквизиты: организацию, проект, сценарий, период, а в табличных частях «Бюджет движения денежных средств» и «Бюджет доходов и расходов» — полный набор аналитик (Аналитика1...6).
Документ Отражение фактических данных
Рисунок 4. Типовой документ-регистратор для бюджетных данных.

Табличные части БДДС и БДиР
Рисунок 5. Табличные части для учета движений по статьям БДДС и БДР .

Как это работает:
Вы заполняете этот документ (например, программно, преобразуя данные из УПП, или вручную). Далее настраиваются правила расчета («ПР-...»), которые собирают данные из движений документа в целевые регистры сведений подсистемы бюджетирования.
Плюсы:
-
Используется стандартный, не требующий доработок механизм системы.
-
Документ можно проводить, создавая полноценные движения по регистрам.
-
Подходит для асинхронной загрузки из разных источников (данные можно загружать в любое время, не дожидаясь открытия периода).
Минусы:
-
Требует тонкой настройки правил расчета (источников данных) для корректного размещения загружаемых данных по разным видам отчетов в требуемые колонки.
-
Избыточен, если данные уже подготовлены во внешнем формате и требуют только «механической» загрузки без дополнительной логики.
-
Жесткая привязка к финансовой модели: документ ориентирован на загрузку данных в разрезе статей ДиР или ДДС. Для произвольных показателей (например, натуральных) или нефинансовых статей он не подходит.
2.2. Специализированный документ «Отчетность бюджетирования» (нетиповой подход)
Реализован на проекте с интенсивным асинхронным обменом между legacy-системами и смежными контурами (1С:ЗУП, 1С:ERP и др.). Создан отдельный документ, полностью повторяющий макет вида отчета. Данные записываются не в целевые регистры подсистемы бюджетирования, а в промежуточный регистр накопления, что позволяет разделить загрузку и расчет.
Интерфейсная форма нового документа Отчетность бюджетирования
Рисунок 6. Пример документа, повторяющего структуру бюджета (вида отчета в 1С:УХ).

Таблица 1. Структура документа «Отчетность бюджетирования»
| Имя поля | Пользовательское наименование | Тип данных | Описание |
|---|---|---|---|
| Проведен | Булево | ||
| ПометкаУдаления | Булево | ||
| Дата | Дата | ||
| Номер | Строка (11) | ||
| ОрганизационнаяЕдиница | Организационная единица | СправочникСсылка.Организации | Ключевой разрез ЦФО |
| Сценарий | Сценарий | СправочникСсылка.Сценарии | Ключевой разрез Сценарий |
| Период | Период | СправочникСсылка.Периоды | Ключевой разрез Период |
| Валюта | Валюта | СправочникСсылка.Валюты | Ключевой разрез Валюта |
| Ответственный | Ответственный | СправочникСсылка.Пользователи | |
| Комментарий | Комментарий | Строка (0) | |
| Подразделение | Подразделение | СправочникСсылка.ПодразделенияОрганизаций | |
| ВидыОтчетовПредставление | Виды отчетов | Строка (0) | |
| ВидыОтчетов | Виды отчетов | Табличная часть | |
| ВидОтчета | Вид отчета | СправочникСсылка.ВидыОтчетов | Вид отчета |
| ЗначенияПоказателей | Значения показателей | Табличная часть | |
| ВидОтчета | Вид отчета | СправочникСсылка.ВидыОтчетов | См. табличную часть «Виды отчетов» |
| СтрокаОтчета | Строка отчета | СправочникСсылка.СтрокиОтчетов | Автоматический подгружаемые строки отчета. |
| КолонкаОтчета | Колонка отчета | СправочникСсылка.КолонкиОтчетов | Автоматический подгружаемые колонки отчета. |
| Аналитика1 | Аналитика1 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 1 |
| Аналитика2 | Аналитика2 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 2 |
| Аналитика3 | Аналитика3 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 3 |
| Аналитика4 | Аналитика4 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 4 |
| Аналитика5 | Аналитика5 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 5 |
| Аналитика6 | Аналитика6 | Характеристика.ВидыСубконтоКорпоративные | Дополнительный аналитический разрез аналитика 6 |
| Валюта | Валюта | СправочникСсылка.Валюты | |
| КурсЗаданВОперации | Курс задан в операции | Булево | |
| Курс | Курс | Число (10,4), Неотр. | |
| Кратность | Кратность | Число (10,0), Неотр. | |
| Значение | Значение | Булево; Строка (10); Дата; Число (31,2), Неотр. | Значение, которое должно быть сохранено в подсистеме бюджетирования. |
| ИдентификаторСтроки | Идентификатор строки | Число (10,0), Неотр. | |
| ИдентификаторСтрокиРодителя | Идентификатор строки родителя | Число (10,0), Неотр. |
Движения документа отражаются в регистре накопления «Отчетность бюджетирования», структура которого зеркально отражает бюджетную модель (виды отчетов, строки, колонки, группы раскрытия).
Таблица 2. Структура нового регистра накоплений «Отчетность бюджетирования»
| Имя поля | Пользовательское наименование | Тип данных | Описание |
|---|---|---|---|
| Активность | Булево | Стандартные реквизиты | |
| НомерСтроки | Число (9,0), Неотр. | Стандартные реквизиты | |
| Регистратор | ДокументСсылка.ОперацияБух; ДокументСсылка.ОтчетностьБюджетирования; ДокументСсылка.ОтражениеФактическихДанныхБюджетирования | Стандартные реквизиты | |
| Период | Дата | Стандартные реквизиты | |
| ОрганизационнаяЕдиница | Организационная единица | СправочникСсылка.Организации | Измерение |
| Сценарий | Сценарий | СправочникСсылка.Сценарии | Измерение |
| Периодичность | Периодичность | ПеречислениеСсылка.Периодичность | Измерение |
| ВидОтчета | Вид отчета | СправочникСсылка.ВидыОтчетов | Измерение |
| КолонкаОтчета | Колонка отчета | СправочникСсылка.КолонкиОтчетов | Измерение |
| СтрокаОтчета | Строка отчета | СправочникСсылка.СтрокиОтчетов | Измерение |
| АналитикаВалюта | Аналитика валюта | СправочникСсылка.Валюты | Измерение |
| Подразделение | Подразделение | СправочникСсылка.ПодразделенияОрганизаций | Измерение |
| Аналитика1 | Аналитика1 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Аналитика2 | Аналитика2 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Аналитика3 | Аналитика3 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Аналитика4 | Аналитика4 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Аналитика5 | Аналитика5 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Аналитика6 | Аналитика6 | Характеристика.ВидыСубконтоКорпоративные | Измерение |
| Валюта | Валюта | СправочникСсылка.Валюты | Измерение |
| Значение | Значение | Число (31,2), Неотр. | Ресурс |
Преимущества подхода:
-
Асинхронность: Вы можете загружать данные в этот документ из любых внешних систем (УПП, ВРМ, Excel) в любое время, не дожидаясь открытия отчетного периода в 1С:УХ.
-
Контроль: Данные проходят через отдельный документ, их легко перезаполнить и перепровести.
-
Гибкость: Источники данных в правилах расчета настраиваются на этот регистр, что отделяет "физическую" загрузку от "логики" расчета показателей.
Минусы:
-
Требует однократной доработки конфигурации (добавление документа и регистра), что, однако, окупается гибкостью обмена.
-
Усложняет сопровождение: появляются новые объекты, для которых необходимо настраивать права доступа, контролировать процессы создания/удаления и другие регламентные процедуры.
Вариант №3. Промышленный ETL: загружаем миллионы записей в считанные часы
Когда задача звучит как «Надо перенести 10-20 лет истории за считанные недели, доработки — только критические, а после перехода забыть о старой системе как о страшном сне», на сцену выходит классический ETL (Extract, Transform, Load). Это не просто загрузка, это создание временного «конвейера» данных, который после выполнения задачи демонтируется, не оставляя следов.
Область применения: Подход ориентирован на компании, которым необходимо перенести многолетние архивы (10+ лет) с минимальными трудозатратами в день перехода. Характеристики типового массива данных для такого подхода:
-
Объем: от 1 млн. записей об оборотах.
-
Глубина: 10–15 лет (120–180+ месяцев).
-
Количество статей: 1000–2000.
Процесс разбит на 4 этапа, строго следующих логике ETL, где первые два — извлечение и трансформация, а вторые два — загрузка и постобработка штатными средствами.
Этап 1. Извлечение (Extract) и первичное размещение (Staging)
-
Extract: Данные выгружаются из системы-источника (УПП, старая ERP и пр.) в нейтральном формате. Например, у форматов *.mxl (табличный документ 1С) или *.csv в отличии от Excel нет ограничений по строкам, и они не «съедают» ведущие нули в кодах статей и не «автоисправляют» форматы дат. Это критически важно для сохранности первичной аналитики.
-
Staging: Файл загружается в специально созданный служебный регистр «Хранилище остатков по бюджетированию» — нашу «песочницу» (staging area). Здесь данные хранятся в первозданном, текстовом виде.
-
Маппинг: Параллельно аналитики заполняют служебный регистр соответствия (например, «Соответствие статей УПП и УХ»). В нем каждому коду исторической системы сопоставляется ссылка на конкретную статью ДиР (Статьи доходов и расходов) или ДДС (Статьи движения денежных средств) в целевой бюджетной модели. Этот регистр — ключевой артефакт проекта. От его полноты зависит успех всей трансформации.
Этап 2. Трансформация (Transform) — самое сердце процесса
-
Запускается обработка, которая читает текстовые поля из регистра-«песочницы».
-
Происходит поиск и замена текстовых кодов на ссылки (организации, статьи ДиР/ДДС, контрагенты, номенклатура и т.д.).
-
Очищенные и структурированные данные со ссылками помещаются во второй служебный регистр - «Хранилище остатков по бюджетированию (распознанные данные)».
Этап 3. Загрузка оборотов (Load)
-
На этом этапе обработка выполняет пакетную запись (наборы записей по несколько тысяч строк) из регистра с распознанными данными в штатные регистры сведений подсистемы бюджетирования — «Значения показателей отчетов 1...6».
-
Запись идет строго в те показатели, которые соответствуют колонке «Обороты за период». Это финальное размещение исторических оборотов в целевой системе.
Этап 4. Расчет итоговых остатков (Post-processing)
-
Элегантная заключительная часть процесса загрузки: мы не пишем остатки вручную, а заставляем систему саму их рассчитать. Для этого используется штатный механизм правил обработки.
-
Выбирается и настраивается правило «ПР-01. Загрузка начальных остатков». Критически важно: в настройках этого правила для колонки «Обороты за период» не должно быть источников данных, иначе система перезапишет наши загруженные обороты при пересчете данных. Источники должны быть настроены только для колонок «Остатки на начало» и «Остатки на конец».
-
Далее для каждого периода (месяца) и вида отчета запускается команда «Дополнительно / Пересчитать с выбором способа расчета» в сводной таблице. Система сама, на основе внесенных оборотов, рассчитывает остатки на начало и конец каждого периода и раскладывает их по нужным регистрам. В итоге записывая данные напрямую в регистры подсистемы бюджетирования без создания каких-либо документов-регистраторов.
-
Важное замечание: Прямая запись в регистры на этапе Load допустима именно для исторических данных, не требующих дальнейшего согласования. Система воспринимает их как окончательные, консолидированные значения. Для оперативной же работы и ввода новых данных, безусловно, используются стандартные документы и экземпляры отчетов.
Результаты и преимущества подхода
-
Скорость: Время загрузки 1,2 млн. строк с последующим расчетом остатков составляет от 2 до 3 часов. В «День X» переключения систем — это критически важно.
-
Отсутствие «технического долга»: Все вспомогательные регистры и обработки после завершения миграции и закрытия периодов штатно удаляются. Система возвращается к абсолютно типовому состоянию, не требуя дополнительных расходов на сопровождение.
-
Гибкость трансформации: На этапе Extract можно гибко управлять данными. Например, если в новой бюджетной модели несколько статей старой системы консолидируются в одну — это легко настроить в правилах выгрузки или маппинга.
Минусы и ограничения (о них нужно знать)
-
Высокий порог входа: Разработка механизма требует от команды глубокого понимания архитектуры хранения данных в подсистеме бюджетирования 1С:УХ. Ошибка на этапе маппинга может стоить миллионов неверно загруженных строк (см. Рисунок 7).
Рисунок 7. Структура взаимосвязей справочников (НСИ) подсистемы бюджетирования 1С:УХ.

-
Не коробочное решение: Механизм требует адаптации под конкретную бюджетную модель и качество данных в источнике. Нельзя просто скачать обработку и нажать «Старт» — нужен анализ и настройка.
-
Трудоемкость тестирования: Проверка корректности загрузки требует не только сверки «общий итог сошелся», но и выборочного контроля аналитик по потенциально проблемным участкам (например, там, где были дубли контрагентов).
Схема технологического процесса (часть 1 и часть 2) наглядно демонстрирует описанные выше шаги и точки контроля (см. Рисунки 8 и 9).
Рисунок 8. Пример пошаговой схемы ETL-процесса, реализованной на проекте. Часть 1: этап 1 (извлечение и загрузка).

Рисунок 9. Пример пошаговой схемы ETL-процесса, реализованной на проекте. Часть 2: этапы 2–4 (трансформация, загрузка оборотов, расчет остатков).

Итог: ETL-подход — это не просто способ переноса данных, а стратегия «стерильной» миграции. Вы создаете временный конвейер, который после выполнения задачи бесследно демонтируется, оставляя заказчику чистую, типовую систему с многолетней историей внутри. Для задач масштабирования и надежности это — технически наиболее правильное решение.
Таблица 3. Сравнительный анализ подходов к загрузке исторических данных
| Критерий | Вариант 1 (Типовой Excel-бланки) | Вариант 2.1 (Типовой документ «Отражение фактических данных») | Вариант 2.2 (Специализированный документ «Отчетность бюджетирования») | Вариант 3 (ETL через служебные регистры) |
|---|---|---|---|---|
| Объем ручного труда | Экстремально высокий (тысячи файлов) | Средний (написание загрузчика) | Низкий (после разработки документа) | Низкий (запуск обработки и контроль) |
| Необходимость доработок | Не требуется | Требуется настройка правил расчета и привязка к фин. модели (ДиР/ДДС) | Требуется добавление документа и регистра | Требуется добавление временных регистров и создание/адаптация обработки |
| Настройка правил расчета | Не требуется | Сложная — требуется настройка механизмов сбора данных | Средняя — доступна стажеру, проверяется запросом | Минимальная — только для расчета остатков |
| Скорость загрузки (на большом объеме) | Низкая | Высокая | Высокая | Максимальная (пакетная запись) |
| Интеграция с типовым механизмом | Прямая загрузка из Excel в регистры сведений | Движения в регистрах накопления ? сбор правилами расчета в регистры сведений | Загрузка в промежуточный регистр ? сбор правилами расчета | Штатный расчет правил (ПР-9) завершает интеграцию |
| Послепроектный технический долг | Отсутствует | Отсутствует | Остаются новые объекты в системе | Отсутствует (временные объекты удаляются) |
Заключение
Выбор метода загрузки исторических данных в 1С:УХ зависит от контекста:
-
Если у вас разовая загрузка за 1-2 года — берите Вариант 1. Он прост и не требует доработок.
-
Если данные уже живут в другой системе и нужен регулярный обмен — присмотритесь к Варианту 2.2 с асинхронным документом.
-
Если стоит задача миграции многолетней истории (10+ лет) с миллионными массивами данных — лучший выбор Вариант 3. Не бойтесь создавать временные регистры: это инженерный подход, который после завершения проекта бесследно демонтируется, оставляя систему в типовом состоянии.
Жду ваших комментариев и вопросов. Делитесь опытом, как боролись с историей бюджетов вы!
Обработка «ЗагрузкаОстатковБюджетирования»
Реализует этапы 2–3 ETL-процесса (загрузка в «песочницу», трансформация, пакетная запись в регистры). Подробная логика работы отражена на схеме ниже (см. Рисунок 10). Требует адаптации под конкретную бюджетную модель.
Обработка успешно работает на конфигурации "1С:ERP Управление Холдингом (3.2.8.6)" на платформе 1С:Предприятие 8.3(8.3.27.1859).
Рисунок 10. ETL-процесс загрузки данных с использованием обработки «Загрузка остатков бюджетирования»

Вступайте в нашу телеграмм-группу Инфостарт