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

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

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

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

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

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

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

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

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

Регистры бывают независимыми (записи вводятся сами по себе) и подчинёнными регистратору (записи создаёт и редактирует документ). Это принципиальное различие: ручная правка подчинённого регистра будет перезаписана при следующем перепроведении документа-регистратора, и все ваши изменения пропадут.

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

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

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

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

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

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

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

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

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

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

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

Изменение одной записи через менеджер записи

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

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

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

МенеджерЗаписи.Номенклатура = НоменклатураСсылка;

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

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

МенеджерЗаписи.Цена = 1500;

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

КонецЕсли;

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

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

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

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

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

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

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

Запись.Курс = Запись.Курс * 1.05;

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

Совпадает с ожидаемым числом затронутых строк

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

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

Срез последних периодического регистра
Норма

Актуальные значения соответствуют внесённым правкам

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

Подтягиваются старые значения — изменена не та дата или запись

Уникальность ключей
Норма

Нет двух записей с одинаковыми измерениями на одну дату

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

Ошибки уникальности при записи или дубли в списке

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

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

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

Нет, измерение — часть уникального ключа записи. Чтобы «изменить» измерение, нужно удалить старую запись и создать новую с нужным значением ключа, скопировав ресурсы и реквизиты. Программно это делается через менеджер записи: прочитать, запомнить значения, удалить, создать новую запись с другим ключом.

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

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

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

Используйте обработку «Групповое изменение реквизитов» из раздела «Администрирование» — она работает в режиме предприятия и не требует изменения конфигурации. Если её нет, попросите администратора предоставить внешнюю обработку для групповой правки или выполнить изменение за вас.

Чем отличается метод Записать() с параметром Истина и Ложь у набора записей?

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

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

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

Безопасно ли править регистр сведений напрямую в SQL-базе?

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

Итог

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

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