Справочники и Данные · 9 мин
Как изменить запись в регистре сведений 1С
Как изменить запись в регистре сведений 1С: через форму списка, обработку и программно. Права, риски, проверка результата и типичные ошибки.
Регистр сведений в 1С хранит данные, привязанные к измерениям: цены номенклатуры, курсы валют, адреса контрагентов, штрихкоды. Изменить запись в нём можно тремя способами: вручную через форму списка, групповой обработкой или программно через встроенный язык. Выбор зависит от количества записей, типа регистра (независимый или подчинённый регистратору) и ваших прав доступа.
Главное отличие регистра сведений от справочника — отсутствие ссылки на объект. Запись идентифицируется набором значений измерений (и периодом, если регистр периодический). Поэтому «изменить запись» фактически означает найти строку с нужным ключом и перезаписать её ресурсы. Если изменить само значение измерения, старая запись останется, а рядом появится новая — это частая причина дублей.
Перед любыми изменениями убедитесь, что понимаете, какие документы и отчёты читают данные этого регистра. Например, правка регистра «Цены номенклатуры» сразу отразится на новых документах продажи, а изменение регистра с учётными настройками может повлиять на проведение документов.
Определите тип регистра перед изменением
Откройте регистр в режиме «Конфигуратор» или через «Функции для технического специалиста» и посмотрите его свойства. Ключевой параметр — режим записи: независимый или подчинённый регистратору. Независимый регистр можно править напрямую. Подчинённый заполняется только движениями документов, и ручная правка таких записей либо невозможна, либо будет перезаписана при перепроведении документа.
Второй параметр — периодичность. В периодическом регистре каждая запись привязана к дате, и одна и та же комбинация измерений может существовать на разные даты. Изменяя «текущее» значение, убедитесь, что правите запись с нужным периодом, а не создаёте новую.
Как выбрать способ изменения
Изменение записи через форму списка
Самый простой путь — найти регистр через стандартный интерфейс. В типовых конфигурациях регистры сведений доступны из разделов «НСИ и администрирование», «Настройки» или через полнотекстовый поиск по названию. Если регистр не виден в меню, откройте его через «Все функции» (в файловом режиме) или «Функции для технического специалиста» → «Регистры сведений».
В форме списка найдите нужную строку отбором по измерениям, дважды щёлкните по ней, измените значения ресурсов и нажмите «Записать и закрыть». Помните: поля измерений в существующей записи часто недоступны для редактирования — это нормально, потому что измерения образуют ключ записи. Чтобы «переустановить» измерение, удалите старую запись и создайте новую.
- 1Откройте регистр сведений через меню конфигурации или «Функции для технического специалиста»
- 2Найдите запись отбором по измерениям (например, по номенклатуре и типу цен)
- 3Откройте запись двойным щелчком и измените значения ресурсов
- 4Нажмите «Записать и закрыть»
- 5Проверьте результат: обновите список и убедитесь, что дублей не появилось
Массовое изменение записей
Когда записей много, ручная правка не подходит. В типовых конфигурациях на управляемых формах есть обработка «Групповое изменение реквизитов», но она работает с объектами со ссылкой и напрямую к регистрам сведений обычно не применима. Для регистров используют либо специализированные обработки конфигурации (например, загрузку цен из Excel), либо универсальные инструменты разработчика, либо собственный код.
Безопасный подход для массовой правки: сначала выгрузить текущие записи (через «Вывести список» в табличный документ или запрос), подготовить новые значения, выполнить изменение в тестовой копии базы и только потом повторить в рабочей. Это особенно важно для регистров, влияющих на проведение документов и расчёт себестоимости.
Программное изменение записи
Для независимого регистра сведений запись меняется через объект «МенеджерЗаписи» (одна запись) или «НаборЗаписей» с отбором (несколько записей). Менеджер записи удобен, когда известен точный ключ: задаёте значения измерений и периода, читаете запись, меняете ресурсы, записываете.
Менеджер = РегистрыСведений.ЦеныНоменклатуры.СоздатьМенеджерЗаписи();
Менеджер.Номенклатура = НоменклатураСсылка;
Менеджер.ТипЦен = ТипЦенСсылка;
Менеджер.Период = ДатаИзменения;
Менеджер.Прочитать();
Если Менеджер.Выбран() Тогда
Менеджер.Цена = НоваяЦена;
Менеджер.Записать();
КонецЕсли;
Для массовых операций используйте набор записей с отбором по измерениям: установите отбор, прочитайте набор, измените строки в цикле и вызовите метод «Записать». При больших объёмах оборачивайте операцию в транзакцию (НачатьТранзакцию / ЗафиксироватьТранзакцию), чтобы при ошибке не осталось частично изменённых данных.
Особенности периодических и подчинённых регистров
В периодическом регистре изменение «значения на дату» — это создание или правка записи с конкретным периодом. Если нужно исправить историю (например, ошибочный курс валюты за прошлую дату), найдите запись именно с этим периодом и скорректируйте её, а не создавайте новую строку с сегодняшней датой — иначе исторические отчёты останутся неверными.
Регистры, подчинённые регистратору, правятся только через документ, который сформировал движения. Откройте документ-регистратор, исправьте данные в нём и перепроведите. Прямая правка такого регистра обработками приведёт к рассинхронизации: при следующем перепроведении документа ваши изменения затрутся.
Проверка результата и права доступа
После изменения обновите список регистра и проверьте три вещи: изменилась ли целевая запись, не появились ли дубли с похожими измерениями, корректно ли отображаются новые значения в связанных формах и отчётах. Для периодических регистров дополнительно проверьте срез последних — именно его читают большинство механизмов конфигурации.
Если кнопка записи недоступна или регистр не открывается, причина почти всегда в правах: роли пользователя могут не включать «Изменение» для этого регистра. Обратитесь к администратору за назначением нужной роли — обходить ограничения через внешние обработки без согласования нельзя, это нарушает модель безопасности.
Как проверить результат
Ресурсы содержат новые значения, запись одна
Значения старые или появилась вторая строка с теми же измерениями
На актуальную дату возвращается новое значение
Срез показывает старое значение — запись создана не с тем периодом
Новые документы подхватывают изменённые данные
Формы показывают прежние значения — возможно, данные кэшируются или читаются из другого регистра
Частые вопросы
Как изменить запись, если поле измерения недоступно для редактирования?
Измерения образуют уникальный ключ записи и не редактируются. Удалите существующую запись и создайте новую с нужными значениями измерений, перенеся ресурсы. Либо выполните программную замену через набор записей с отбором.
Почему после моего изменения данные снова стали старыми?
Скорее всего, регистр подчинён регистратору и документ был перепроведён — движения перезаписались. Проверьте свойство «Режим записи» регистра и исправляйте данные через документ-регистратор.
Можно ли изменить записи регистра сведений через «Групповое изменение реквизитов»?
Стандартная обработка группового изменения работает со ссылочными объектами (справочники, документы) и не применяется к регистрам сведений. Используйте специализированные обработки конфигурации или программный код.
Что делать, если записей тысячи и править вручную нереально?
Напишите обработку с набором записей и отбором, выполните её сначала на копии базы. При больших объёмах используйте транзакцию и проверяйте количество изменённых записей до и после выполнения.
Как отменить ошибочное изменение записи?
Если резервной копии или выгрузки старых значений нет, восстановить данные можно только из архивной копии базы или журнала регистрации (если включено логирование изменений данных). Поэтому перед массовой правкой всегда сохраняйте исходные значения.
Влияет ли изменение регистра сведений на обмен данными?
Да, если регистр входит в план обмена, изменённые записи будут зарегистрированы к выгрузке и уйдут в другие узлы. Убедитесь, что правки корректны до момента синхронизации.
Что важно запомнить
Сначала определите тип регистра: независимый правьте напрямую через форму или код, подчинённый — только через документ-регистратор. Измерения записи не редактируются, а заменяются удалением и созданием записи. Перед массовыми изменениями делайте копию базы, используйте транзакцию и проверяйте результат по списку регистра и срезу последних.