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

Справочники и Данные · 11 мин

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

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

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

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

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

Определите тип регистра: независимый или подчинённый регистратору

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

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

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

Ручное изменение записей в независимом регистре

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

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

Для точечной правки нескольких десятков записей ручной способ вполне рабочий. Если записей сотни и тысячи, ручное редактирование непрактично и чревато пропусками — переходите к массовым методам.

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

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

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

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

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

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

В типовых конфигурациях на управляемых формах есть штатный инструмент «Групповое изменение реквизитов» (в разделе «Администрирование»). Он работает со ссылочными объектами и документами, но для регистров сведений чаще применяют типовые обработки «Загрузка данных из табличного документа» или специализированные обработки с диска ИТС.

Общий принцип массовой загрузки: выгрузите текущие записи в табличный документ (Excel или mxl), отредактируйте значения в таблице, затем загрузите обратно с сопоставлением колонок измерениям и ресурсам. Ключевой момент — колонки измерений должны точно идентифицировать существующую запись, иначе вместо обновления получите дубли или новые записи.

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

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

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

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

МенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();

МенеджерЗаписи.Период = Дата(2026, 1, 15);

МенеджерЗаписи.Валюта = ВалютаСсылка;

МенеджерЗаписи.Прочитать();

Если МенеджерЗаписи.Выбран() Тогда

МенеджерЗаписи.Курс = 90.5;

МенеджерЗаписи.Записать();

КонецЕсли;

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

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.ВидЦены.Установить(ВидЦеныСсылка);

НаборЗаписей.Прочитать();

Для Каждого Запись Из НаборЗаписей Цикл

Запись.Цена = Запись.Цена * 1.1;

КонецЦикла;

НаборЗаписей.Записать();

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

Изменение через запрос и особенности периодических регистров

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

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

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

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

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

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

Изменилось ровно на ожидаемое число

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

Записей стало заметно больше (дубли) или меньше (затёрты лишние)

Отчёт по регистру на актуальную дату
Норма

Новые значения видны в срезе последних

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

Показывается старое значение — запись внесена не в тот период

Связанные документы и отчёты
Норма

Данные сходятся с регистром

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

Расхождения — регистр подчинённый и правился в обход регистратора

Ограничения прав, блокировки и безопасность

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

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

Отдельный риск — обмены данными. Если база участвует в синхронизации (РИБ, обмен с другими системами), изменённые записи регистрируются в планах обмена и уйдут в другие узлы. Убедитесь, что массовая правка не создаст лавину изменений в синхронизируемых базах, или временно отключите регистрацию изменений осознанно.

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

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

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

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

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

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

Почему моя запись в регистре не отображается в отчёте?

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

Что произойдёт, если удалить запись из подчинённого регистра напрямую?

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

Как изменить значение измерения в существующей записи?

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

Опасно ли запускать массовую обработку регистра в рабочее время?

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

Как отменить ошибочное массовое изменение регистра?

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

Итог

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

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