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

Администрирование · 12 мин

Как внести изменения в регистр сведений 1С

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

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

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

Массовые изменения безопаснее выполнять не вручную, а через типовые обработки («Групповое изменение реквизитов», «Поиск и замена значений») или программно — через встроенный язык 1С. Каждый из подходов имеет свои условия применения, ограничения и риски, которые разобраны ниже.

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

Первый шаг — выяснить режим записи регистра. Откройте конфигуратор, найдите нужный регистр в ветке «Регистры сведений» и посмотрите свойство «Режим записи». Значение «Независимый» означает, что записи создаются и редактируются напрямую. Значение «Подчинение регистратору» говорит о том, что записи принадлежат документам и удаляются вместе с ними.

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

Если конфигуратор недоступен (нет прав или работа ведётся только в режиме предприятия), косвенный признак подчинённого регистра — наличие колонки «Регистратор» в списке записей и невозможность создать запись кнопкой «Создать» без указания документа.

Ручное редактирование независимого регистра

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

Для изменения существующей записи откройте её двойным щелчком, скорректируйте ресурсы (значения) и нажмите «Записать и закрыть». Для добавления — кнопка «Создать»: заполните измерения (ключевые поля) и ресурсы. Помните: комбинация измерений (и периода для периодического регистра) должна быть уникальной, иначе платформа выдаст ошибку о нарушении уникальности ключа.

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

Порядок ручного изменения записи
  1. 1
    Откройте регистр: Все функции → Регистры сведений → нужный регистр
  2. 2
    Найдите запись через отбор по измерениям
  3. 3
    Откройте запись и измените значения ресурсов
  4. 4
    Нажмите «Записать и закрыть»
  5. 5
    Проверьте, что изменения отобразились в связанных документах или отчётах

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

Записи подчинённого регистра нельзя править напрямую — платформа это запрещает, а обходные пути разрушают целостность данных. Корректный путь — изменить документ-регистратор. Откройте список записей регистра, найдите нужную строку и перейдите по ссылке в колонке «Регистратор» к документу.

Дальше два варианта. Если данные документа неверны — исправьте сам документ и перепроведите его: записи регистра обновятся автоматически. Если документ корректен, а записи нужны другие — создайте новый корректирующий документ (например, «Корректировка регистров» в типовых конфигурациях), который сформирует нужные движения.

Обработка «Корректировка регистров» (в некоторых конфигурациях — «Операция» или «Ручная операция») позволяет вручную сформировать набор записей по выбранным регистрам от имени этого документа. Это штатный способ «ручного» изменения подчинённых регистров без нарушения механизма регистрации.

Массовое изменение через типовые обработки

Для групповых правок в типовых конфигурациях на БСП (Библиотека стандартных подсистем) есть обработка «Групповое изменение реквизитов»: раздел «Администрирование» → «Обслуживание» → «Корректировка данных». Она позволяет выбрать регистр сведений, задать отбор по измерениям и установить новые значения ресурсов для всех отобранных записей.

Порядок работы: выберите объект «Регистры сведений» и конкретный регистр, настройте отбор (например, все записи по определённой организации или номенклатуре), на закладке изменения укажите ресурс и новое значение, затем нажмите «Изменить реквизиты». Обработка покажет количество изменённых записей.

Для замены ссылочных значений (например, заменить одного контрагента на другого во всех записях) используйте «Поиск и замена значений» из того же раздела. Эта обработка корректно обрабатывает ссылки и предотвращает появление битых ссылок, в отличие от прямой правки.

Программное изменение записей через встроенный язык

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

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

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

Критически важный нюанс: метод Записать(Истина) замещает весь набор по установленному отбору. Если забыть вызвать Прочитать() перед изменением, пустой набор с замещением удалит все записи, попадающие под отбор. Это одна из самых разрушительных ошибок при программной работе с регистрами сведений.

Для подчинённого регистра программно записи добавляют только через набор записей документа-регистратора в обработчике проведения или через свойство «Движения» объекта документа. Прямая запись в подчинённый регистр без регистратора платформой блокируется.

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

Резервная копия и проверка результата

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

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

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

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

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

Записи в регистре
Норма

Значения ресурсов соответствуют задуманным, нет дублей по ключу измерений

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

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

Связанные объекты
Норма

Документы и отчёты показывают обновлённые данные

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

Формы показывают старые значения — возможно, правился не тот регистр или не тот период

Количество записей
Норма

Число записей изменилось только на ожидаемую величину

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

Резкое уменьшение количества — признак ошибочного удаления набором с замещением

Выбор способа изменения под задачу

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

Сравнение способов изменения

Ручное редактирование

Подходит для 1–5 записей в независимом регистре; не требует прав администратора, но не масштабируется

Документ-регистратор / корректировка регистров

Единственный корректный способ для подчинённых регистров; сохраняет историю и связность данных

Групповое изменение реквизитов

Массовые правки по простому отбору; требует прав администратора и внимательной настройки отбора

Программный код

Сложная логика и регулярные операции; требует навыков разработки и обязательного тестирования на копии

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

Итог

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

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

Частые вопросы

Можно ли изменить регистр сведений без прав администратора?

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

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

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

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

Через набор записей без отбора: создать набор записей регистра и вызвать Записать() без чтения — пустой набор заместит все существующие записи. Это необратимая операция, поэтому выполняйте её только после резервного копирования. Для частичной очистки установите отбор по нужным измерениям.

Что делать, если записи регистра не сохраняются с ошибкой уникальности?

Ошибка означает, что запись с такой комбинацией измерений (и периода) уже существует. Найдите существующую запись отбором по ключевым полям и измените её вместо создания новой. Если дубль не виден в списке, проверьте, не скрыт ли он отбором формы.

Отразятся ли ручные правки регистра в других узлах распределённой базы?

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

Можно ли отменить ошибочное массовое изменение?

Штатной кнопки «отменить» нет. Варианты: восстановить базу из резервной копии, загрузить исправленные данные обратной обработкой (если старые значения где-то сохранены) или вручную скорректировать затронутые записи. Именно поэтому копия перед массовыми правками — обязательный шаг, а не рекомендация.