Регистр без ресурсов: почему Конфигуратор не сохраняет изменения и как это исправить

· 9 мин

Содержание

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

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

Почему регистру обязательно нужен ресурс

Регистр в 1С состоит из трёх групп полей. Измерения отвечают на вопрос «в разрезе чего» (склад, номенклатура, контрагент). Ресурсы — «сколько» (количество, сумма). Реквизиты — дополнительная справка к записи.

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

Как ведут себя разные виды регистров:

Вид регистраРесурс обязателенТип ресурса
Регистр накопления (остатки и обороты)датолько Число
Регистр бухгалтериидаЧисло
Регистр сведенийнет, пустой список допустимлюбой

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

Откуда в конфигурации берётся регистр без ресурсов

  • 🛠️ Новый регистр не доделан. Разработчик создал объект, заполнил измерения и попытался сохранить конфигурацию , не дойдя до ресурсов.
  • ✂️ Ресурс удалили вручную. Например, переименовывали или меняли тип и вместо правки удалили старое поле.
  • 🔀 Неудачное объединение. При сравнении и объединении с другой конфигурацией или при обновлении доработанной типовой у ресурсов сняли флажки, и в основную конфигурацию регистр попал «пустым».
  • 📂 Загрузка из файлов. Конфигурацию собирали из XML (выгрузка в файлы, Git, EDT), и описание ресурсов потерялось при слиянии веток.
  • 🧩 Повреждение конфигурации. Редкий случай: сбой при сохранении, после которого часть метаданных не читается.

Как найти проблемный регистр в Конфигураторе

Текст ошибки почти всегда содержит полное имя объекта, например РегистрНакопления.ТоварыНаСкладах. Этого достаточно, чтобы перейти к регистру.

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

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

Конфигурация или конфигурация базы данных

В Конфигураторе две конфигурации. Основная — та, которую вы правите. Конфигурация базы данных — та, по которой сейчас реально работают пользователи.

Ошибка возникает в основной конфигурации. Чтобы понять, был ли ресурс раньше, откройте Конфигурация → Конфигурация базы данных → Открыть конфигурацию БД и найдите тот же регистр. Если там ресурс есть, значит, его потеряли при последних изменениях, и исправление займёт минуту.

Если регистр новый и в конфигурации БД его нет — ресурс просто не успели добавить.

Где искать следы ошибки: окно сообщений, лог пакетного запуска, журнал регистрации

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

Обновление в пакетном режиме

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /CheckConfig -ConfigLogIntegrity /Out"D:\Logs\check.txt"

Путь к платформе и номер версии подставьте свои. Для серверной базы вместо /F используется /S"сервер\имя_базы".

Откройте check.txt и найдите строки с именем регистра. Если скрипт сразу выполнял /UpdateDBCfg, ошибка будет там же, а обновление базы не состоится.

Журнал регистрации

В журнале регистрации (Администрирование → Обслуживание → Журнал регистрации в типовых конфигурациях или Администрирование → Журнал регистрации в Конфигураторе) ищите события, связанные с изменением и обновлением конфигурации. Поставьте отбор по периоду, когда последний раз меняли конфигурацию, и по пользователю, который это делал.

Журнал не покажет, какой ресурс удалили. Зато он ответит на два вопроса: кто и когда сохранял конфигурацию и прошло ли после этого успешное обновление базы.

Способы исправить регистр без ресурсов

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

СпособКогда подходитРиск
Вернуться к конфигурации БДизменения ещё не применены к базе, ресурс былтеряются все несохранённые в БД правки, не только регистр
Перенести ресурс из конфигурации БД или поставкиресурс был, остальные правки нужно сохранитьминимальный
Добавить ресурс вручнуюрегистр новый, ресурса не былонужно поправить код движений
Загрузить конфигурацию из файла .cfесть свежая копия до сбоятеряются правки после копии
Удалить регистррегистр не нужен и на него нет ссылокломает код, который к нему обращается

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

Способ 1. Вернуться к конфигурации базы данных

Если кроме злополучного регистра вы ничего ценного не меняли, выполните Конфигурация → Конфигурация базы данных → Вернуться к конфигурации БД. Основная конфигурация станет такой же, как рабочая, ресурс вернётся.

Команда откатывает ВСЕ изменения основной конфигурации, которые ещё не попали в базу. Если там лежат доработки за неделю, выберите способ 2.

Способ 2. Вернуть ресурс сравнением конфигураций

  1. Откройте Конфигурация → Сравнить конфигурации....
  2. Сравните основную конфигурацию с конфигурацией базы данных (или с конфигурацией поставщика, если регистр типовой).
  3. Включите режим показа только различий и найдите регистр.
  4. Разверните его до ресурсов, отметьте отсутствующий ресурс и выполните объединение только по нему.

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

Способ 3. Добавить ресурс вручную

Подходит для нового регистра собственной разработки.

  1. Откройте регистр, вкладка «Данные».
  2. В группе «Ресурсы» нажмите «Добавить».
  3. Задайте имя (например, Количество или Сумма) и тип Число с нужной длиной и точностью: для количества часто берут 15 знаков и 3 после запятой, для суммы — 15 и 2.
  4. Проверьте, что документы, которые делают движения по регистру, заполняют новый ресурс.

Пример кода движений в модуле документа после добавления ресурса:

Процедура ОбработкаПроведения(Отказ, Режим)
    Движения.ТоварыНаСкладах.Записывать = Истина;
    Для Каждого СтрокаТЧ Из Товары Цикл
        Движение = Движения.ТоварыНаСкладах.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Склад = Склад;
        Движение.Номенклатура = СтрокаТЧ.Номенклатура;
        Движение.Количество = СтрокаТЧ.Количество;
    КонецЦикла;
КонецПроцедуры

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

Способ 4. Загрузить конфигурацию из файла

Когда ресурс потерялся вместе с другими объектами или конфигурация повреждена, загрузите последнюю рабочую копию: Конфигурация → Загрузить конфигурацию из файла... и выберите .cf. Если базу собирали из XML, откатите ветку в системе контроля версий и загрузите файлы заново.

Способ 5. Удалить ненужный регистр

Иногда регистр завели «на будущее» и бросили. Перед удалением щёлкните по нему правой кнопкой и выберите «Поиск ссылок на объект». Если ссылок нет — удаляйте. Если есть — сначала уберите обращения в коде и формах.

Обновление конфигурации базы данных после исправления

Когда ресурс на месте, повторите Конфигурация → Проверка конфигурации.... Ошибок по регистру быть не должно. Затем нажмите F7 или выполните Конфигурация → Обновить конфигурацию базы данных.

Что происходит на этом шаге:

  • 🔄 Платформа покажет окно «Реорганизация информации» со списком изменённых объектов. Прочитайте его: там должен быть ваш регистр и ничего неожиданного.
  • 🔒 Для реструктуризации нужен монопольный доступ к базе. Пользователей придётся попросить выйти — сеансы, которые не закрыть, оборвутся при принудительном завершении. Делайте это в нерабочее время.
  • 📊 У добавленного ресурса в уже существующих записях будет 0. Если регистр содержал данные, перепроведите документы, которые по нему двигались, за нужный период.

Пересчёт итогов

Для регистра остатков после восстановления ресурса и перепроведения документов пересчитайте итоги. В Конфигураторе: Администрирование → Тестирование и исправление, флажок «Пересчёт итогов». В типовых конфигурациях на БСП то же доступно из режима Предприятия через управление итогами в разделе Администрирование → Обслуживание.

Сверьте остатки до и после: сформируйте отчёт по регистру на текущую дату. Если цифры совпадают с ожидаемыми, исправление прошло чисто.

Как не допустить повторения

  • 💾 Сохраняйте конфигурацию в .cf перед каждым объединением и обновлением доработанной типовой.
  • ✅ Запускайте проверку логической целостности до F7, а не после ошибки. В пакетных скриптах ставьте /CheckConfig перед /UpdateDBCfg и прерывайте сценарий, если в логе есть ошибки.
  • 🔍 При сравнении и объединении разворачивайте регистры до уровня ресурсов. Снятый флажок на одном ресурсе и есть типичная причина «пустого» регистра.
  • 👥 В групповой разработке работайте через хранилище конфигурации: захват объекта и история версий покажут, кто и когда менял регистр.
  • 🧾 Для собственных регистров заводите ресурс сразу при создании, ещё до измерений, — тогда сохранить «пустой» объект не получится.
Диагностика: выберите симптом

Частые ошибки при исправлении

  • ❌ Ресурс другого типа. У регистра накопления ресурс может быть только числом. Строку или ссылку платформа не примет — для этого есть измерения и реквизиты.
  • ❌ Новое имя вместо старого. Если в коде документов стоит Движение.Количество, а вы назвали ресурс Кол, проверка пройдёт, но проведение упадёт с ошибкой обращения к полю.
  • ❌ Обновление в рабочее время. Реструктуризация регистра с миллионами записей идёт долго. Пользователи видят зависшую базу и перезапускают клиент.
  • ❌ Забыли про итоги. Ресурс вернули, документы не перепровели — отчёты показывают нули.

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

Можно ли обойти ошибку, не трогая Конфигуратор?
Нет. Это ошибка структуры метаданных, её исправляют только в Конфигураторе или в среде разработки. Из режима Предприятия ресурс не добавить.
Пропадут ли данные регистра при добавлении ресурса?
Нет. Существующие записи сохранятся, у нового ресурса в них будет 0. Чтобы заполнить его, перепроведите документы.
Почему у регистра сведений нет такой ошибки?
Регистру сведений ресурсы не обязательны: он хранит значения, а не накапливает их. Пустой список ресурсов у него допустим.
Нужно ли снимать конфигурацию с поддержки, чтобы вернуть ресурс?
Не обязательно. Если ресурс типовой, его возвращают сравнением с конфигурацией поставщика. Правка вручную потребует включить изменения в настройке поддержки.
Помогут ли «Тестирование и исправление» или очистка кэша?
Нет. Тестирование исправляет данные и индексы, кэш хранит копию конфигурации на клиенте. Пустой список ресурсов — ошибка самой конфигурации.