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

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

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

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

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

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

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

Как устроен регистр сведений и почему это важно перед правкой

Регистр сведений состоит из измерений (ключевые поля, по которым идентифицируется запись), ресурсов (хранимые значения) и реквизитов (дополнительные атрибуты). Например, в регистре «Цены номенклатуры» измерениями обычно выступают номенклатура и тип цен, а ресурсом — само значение цены. Изменить ресурс можно, только точно указав измерения нужной строки.

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

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

Изменение записей через форму списка регистра

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

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

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

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

Правка регистра, подчинённого регистратору

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

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

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

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

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

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

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

Программное изменение записей

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

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

Набор.Отбор.Номенклатура.Установить(ТекНоменклатура);

Набор.Отбор.ТипЦен.Установить(ТекТипЦен);

Набор.Прочитать();

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

Запись.Цена = НоваяЦена;

КонецЦикла;

Набор.Записать(Истина);

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

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

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

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

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

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

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

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

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

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

Совпадает с ожидаемым после правки

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

Уменьшилось (замещение лишнего) или выросло (дубли)

Значения ресурсов
Норма

Новые значения видны в форме списка и отчётах

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

Старые значения — запись не сохранилась или правили не тот ключ

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

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

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

Ручные правки затёрты перепроведением

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

Подтягиваются новые значения

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

Используются устаревшие данные из кэша или неперепроведённых документов

Часто задаваемые вопросы

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

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

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

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

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

Программно — создать набор записей без отбора и вызвать Записать(Истина): пустой набор с замещением очистит регистр. В пользовательском режиме — выделить все строки в форме списка и удалить. Перед очисткой обязательно сделайте резервную копию: операция необратима.

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

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

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

Технически — да, через набор записей с отбором по регистратору или ручное редактирование движений. Но при перепроведении документа правки будут перезаписаны. Корректный способ — исправить сам документ-регистратор и перепровести его.

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

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

Итог

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

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