К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как изменить регистр накопления в 1С

Как изменить регистр накопления в 1С: добавление измерений и ресурсов, перенос данных, движения документов, риски и проверка результата после изменения.

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

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

Любые работы выполняйте на копии базы или после создания резервной копии через выгрузку в dt. Это особенно критично для рабочих баз, где регистр содержит реальные учётные данные за длительный период.

Что нужно сделать перед изменением регистра

Первый шаг — создать резервную копию. В файловой базе достаточно скопировать файл 1Cv8.1CD или выполнить выгрузку через «Администрирование — Выгрузить информационную базу». В клиент-серверном варианте используйте средства СУБД или выгрузку в dt. Без копии откатить неудачное изменение структуры будет невозможно.

Второй шаг — проанализировать зависимости. Регистр накопления связан с документами-регистраторами, отчётами, запросами и процедурами проведения. Через «Правка — Найти ссылки на объект» в конфигураторе определите, какие объекты используют регистр. Если вы удаляете измерение, все запросы и модули, обращающиеся к нему, начнут выдавать ошибки.

Третий шаг — оценить объём данных. Откройте таблицу регистра через стандартный отчёт или консоль запросов и посмотрите количество записей. На больших таблицах реструктуризация при обновлении конфигурации базы данных может занять значительное время, и это нужно учитывать при планировании работ на рабочей базе.

Как добавить измерение или ресурс в регистр

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

Добавление нового измерения в существующий регистр безопасно: старые записи получат пустое значение нового измерения. Однако помните, что это влияет на уникальность записей и на итоги — остатки начнут дробиться по новой аналитике. Если новое измерение должно быть заполнено для старых данных, потребуется обработка, которая пройдёт по записям и проставит значения.

После добавления поля обновите модули проведения документов-регистраторов: в процедуре формирования движений добавьте заполнение нового измерения или ресурса. Иначе новые проведённые документы будут записывать пустые значения, и отчёты по новой аналитике окажутся неполными.

Порядок добавления нового измерения
  1. 1
    Сделайте резервную копию базы
  2. 2
    Откройте регистр в конфигураторе, закладка «Данные»
  3. 3
    Добавьте измерение, укажите имя и тип
  4. 4
    Скорректируйте процедуры проведения документов-регистраторов
  5. 5
    Обновите конфигурацию базы данных (F7)
  6. 6
    Проверьте отчёты и движения на тестовом документе

Как удалить или переименовать поле регистра

Удаление измерения или ресурса — деструктивная операция: значения, хранившиеся в этом поле, будут потеряны при реструктуризации. Если данные нужны, заранее перенесите их: создайте новое поле, напишите обработку для копирования значений через наборы записей и только после этого удаляйте старое.

Переименование поля в конфигураторе технически безопасно для данных — платформа сохраняет значения, так как ориентируется на внутренний идентификатор. Но все обращения к полю по старому имени в запросах, модулях и настройках отчётов перестанут работать. Используйте глобальный поиск по старому имени (Ctrl+Shift+F) и исправьте все найденные вхождения.

Особый случай — изменение типа данных поля, например расширение длины строки или смена составного типа. Платформа при реструктуризации попытается преобразовать значения, но несовместимые данные могут быть обрезаны или очищены. Перед таким изменением проверьте на копии, что произойдёт с реальными данными.

Типичные ошибки при изменении регистра
01
Удаление измерения без переноса данных — значения теряются без возможности восстановления
02
Забытые модули проведения — новые документы пишут пустые значения в добавленные поля
03
Изменение регистра без поиска ссылок — отчёты и запросы начинают падать с ошибками
04
Реструктуризация рабочей базы в разгар дня — пользователи не могут войти, процесс затягивается

Как изменить вид регистра и движения документов

Вид регистра — «Остатки» или «Обороты» — задаётся на закладке «Основные» и определяет механизм хранения итогов. Смена вида существующего регистра с данными — рискованная операция: структура таблиц итогов полностью меняется, и корректность старых данных не гарантируется. На практике надёжнее создать новый регистр нужного вида и перенести в него данные обработкой.

Изменение списка регистраторов выполняется на закладке «Регистраторы»: отметьте документы, которые должны формировать движения. После этого в каждом добавленном документе нужно настроить процедуру «ОбработкаПроведения» — сам по себе флаг в регистре движения не создаёт.

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

bsl
НаборЗаписей = РегистрыНакопления.ОстаткиТоваров.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НаборЗаписей.Прочитать();
Для Каждого Запись Из НаборЗаписей Цикл
    Запись.Склад = НовыйСклад;
КонецЦикла;
НаборЗаписей.Записать(Истина);

Как перенести данные при существенной перестройке

Когда изменения выходят за рамки простого добавления полей — например, регистр разделяется на два или меняется состав аналитики — стандартный подход такой: создаётся новый регистр с целевой структурой, данные переносятся обработкой, отчёты и документы переключаются на новый регистр, старый помечается на удаление.

Обработка переноса обычно читает записи старого регистра запросом с группировкой по нужным измерениям и записывает их в новый регистр наборами записей. Для остаточных регистров часто переносят не все движения, а только текущие остатки на дату свёртки — это резко сокращает объём работ и упрощает проверку.

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

Маршрут решения

Как выбрать способ изменения

Нужно добавить новую аналитику или ресурсДобавьте поле в конфигураторе и дополните модули проведения — данные не пострадают
Нужно удалить или сменить тип поляСначала перенесите значения обработкой, потом удаляйте поле
Меняется вид регистра или вся структураСоздайте новый регистр, перенесите остатки, переключите отчёты и документы
Нужно исправить движения конкретных документовИспользуйте перепроведение или набор записей с отбором по регистратору

Проверка результата после изменения

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

Проведите тестовый документ-регистратор и проверьте его движения: новые поля должны заполняться, старые — сохранять корректные значения. Затем отмените проведение и убедитесь, что движения очищаются.

Финальная проверка — работа зависимых объектов. Откройте основные отчёты по регистру, выполните типовые операции пользователей и проверьте журнал регистрации на наличие ошибок. Если база рабочая, первые дни после изменения стоит особенно внимательно следить за обращениями пользователей.

Контрольные точки

Как проверить результат

Итоги отчёта по регистру до и после изменения
Норма

Суммы по ключевым ресурсам совпадают

Тревожный признак

Итоги изменились без документальных оснований

Движения тестового документа
Норма

Все поля заполнены, отмена проведения очищает записи

Тревожный признак

Новые поля пустые или движения не создаются

Журнал регистрации
Норма

Нет ошибок обращения к регистру

Тревожный признак

Ошибки «Поле не найдено» в модулях и отчётах

Итог

Что важно запомнить

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

Частые вопросы об изменении регистров накопления

Можно ли изменить регистр накопления без конфигуратора?

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

Что произойдёт с данными при удалении измерения?

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

Почему после добавления измерения отчёт показывает неверные остатки?

Старые записи получили пустое значение нового измерения, а новые документы могут заполнять его по-другому. Проверьте модули проведения и, если нужно, заполните новое измерение в старых записях обработкой.

Как исправить движения документа без перепроведения?

Используйте набор записей регистра с отбором по регистратору: прочитайте записи, измените нужные поля и запишите набор с замещением. Это делается через внешнюю обработку или консоль кода.

Опасно ли менять регистр в типовой конфигурации?

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

Сколько времени занимает реструктуризация большого регистра?

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