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

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

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

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

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

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

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

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

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

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

Загрузка вручную через форму списка

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

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

Загрузка из Excel обработкой «Загрузка данных из табличного документа»

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

Порядок загрузки из табличного документа
  1. 1
    Откройте обработку «Загрузка данных из табличного документа» (раздел «Администрирование» или через «Все функции»)
  2. 2
    На первой закладке выберите тип объекта «Регистр сведений» и нужный регистр
  3. 3
    Скопируйте данные из Excel и вставьте в табличный документ обработки
  4. 4
    Укажите для каждой колонки соответствующее поле регистра (измерение или ресурс)
  5. 5
    Включите режим контроля дублей по измерениям
  6. 6
    Нажмите «Загрузить» и проверьте протокол: сколько записей создано, сколько пропущено
  7. 7
    Откройте регистр и выборочно сверьте несколько записей с источником

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

Программная загрузка через менеджер записи и набор записей

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

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

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

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

МенеджерЗаписи.ТипЦен = ТипЦенСсылка;

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

// Если записи нет — менеджер будет пустым, заполняем ключи заново

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

МенеджерЗаписи.ТипЦен = ТипЦенСсылка;

МенеджерЗаписи.Цена = НоваяЦена;

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

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

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

Набор.Отбор.Период.Установить(ДатаКурса);

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

НоваяЗапись = Набор.Добавить();

НоваяЗапись.Период = ДатаКурса;

НоваяЗапись.Валюта = ВалютаСсылка;

НоваяЗапись.Курс = Курс;

НоваяЗапись.Кратность = 1;

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

Загрузка через конвертацию данных и обмен

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

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

Сравнение способов загрузки

Вручную через форму списка

Подходит для единичных записей. Прозрачно, но медленно и риск опечаток при большом объёме.

Обработка загрузки из табличного документа

Оптимально для разовой загрузки из Excel. Требует аккуратной настройки соответствия колонок и режима дублей.

Программная запись (менеджер записи / набор записей)

Для регулярной или сложной загрузки с логикой. Нужны навыки разработки и тестирование на копии.

Обмен / конвертация данных

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

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

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

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

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

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

Совпадает с числом строк источника (с учётом осознанных дублей)

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

Записей меньше — часть строк отклонена; больше — созданы дубли

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

Выборочно совпадают с источником по нескольким ключам

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

Значения сдвинуты или из другой колонки — неверное сопоставление полей

Период (для периодического регистра)
Норма

Даты корректны, срез последних даёт ожидаемые значения

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

Все записи на одну дату или дата пустая — ошибка в колонке периода

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

Отчёты, использующие регистр, показывают новые данные

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

Отчёты пустые — возможно, данные загружены не в тот регистр

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

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

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

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

Почему запись в регистр сведений не сохраняется?

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

Как обновить существующие записи, а не создавать дубли?

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

Чем отличается менеджер записи от набора записей?

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

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

Создайте набор записей без отбора (или с отбором по нужным измерениям) и вызовите «Записать(Истина)» без добавления строк — записи в области отбора будут удалены. Обязательно выполняйте это на копии базы или после резервного копирования: операция необратима.

Можно ли загружать данные в регистр сведений через COM-соединение или веб-сервис?

Да. Внешняя система может подключиться к базе 1С через COM-коннектор, OData или HTTP-сервис и создавать записи теми же объектами (менеджер записи, набор записей). Стандартный OData-интерфейс позволяет читать и изменять независимые регистры сведений без дополнительной разработки, если он включён в публикации базы.

Итог

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

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