Ссылочная константа содержит недопустимый ссылочный номер таблицы

19.03.24

База данных - Обновление 1С

На связи Сергей Скирдин, технический директор ИТ-интегратора «Белый код». Сегодня расскажу, как решить одну из проблем, с которой можно столкнуться при обновлении конфигурации 1С.

Описание проблемы 

Проблема возникла при попытке обновления конфигурации «1С:Управление нашей фирмой», редакция 3.0.5.211 до 3.0.6.171. Сначала специалисты поддержки пробовали обновить базу обновлятором в автоматическом режиме, в результате получили ошибку без подробностей. Ручное обновление через конфигуратор при сохранении конфигурации выдало ошибку: 

«В процессе обновления информационной базы произошла критическая ошибка по причине: Ссылочная константа содержит недопустимый ссылочный номер таблицы 34332:9c17000c2997f9cd11edb81726667ea2»

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

Расследование по шагам

Шаг 1

Судя по ошибке, похоже, есть какая-то константа, которая ссылается на объект 9c17000c2997f9cd11edb81726667ea2 в таблице 34332. Начнём с поиска объекта. 

Берём номер таблицы 34332, идём в обработку просмотра структуры таблиц БД. Получаем структуру и фильтруем по номеру таблицы. Видим, что проблема в расширении (имя таблицы заканчивается на X1), а именно в справочнике Проектов Б24.

 

 

Шаг 2

Идём в конфигуратор, открываем расширение с этим справочником. Проверяем типы констант и видим, что ни в одной из них нет ссылки на справочник проектов. Возможно ошибка некорректно сообщает о константе, может, проблема где-то в другом месте? 

 

Шаг 3

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

e1cib/data/Справочник.bpca_ПроектыБитрикс24?ref=9c17000c2997f9cd11edb81726667ea2

Берём полученную ссылку, переходим по ней, открывается искомый элемент. 

 


 

Шаг 4 

Открываем встроенный в «1С:УНФ» поиск ссылок на объект, указываем наш объект и видим, что никакой константы нет. Есть только ссылки на РС «История по задаче» (он добавлен в том же расширении, что и справочник проектов) и типовой РС УНФ «Неудалённые объекты».

 

 

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

 

Шаг 5

Удаляем запись из РС «Неудалённые объекты» и пробуем сохранить обновлённую конфигурацию.

Ждём…. и снова ошибка, но ссылка уже другая:

В процессе обновления информационной базы произошла критическая ошибка по причине: Ссылочная константа содержит недопустимый ссылочный номер таблицы

30966:9c30000c2997f9cd11eeaed5a57a9f37

 

Шаг 6

 

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

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

 

Шаг 7

 

Поскольку данный РС «Неудалённые объекты» не является критичным для работы, принимаем решение полностью очистить его и не тратить время на написание обработки для поиска проблемных ссылок. Очищаем РС, снова пробуем выполнить реструктуризацию БД.

Ждем…. и вуаля, реструктуризация прошла!

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

Надеюсь, информация будет полезной и поможет решить подобную проблему. 

См. также

Обновление 1С Программист Платформа 1С v8.3 1С:ERP. Управление холдингом Абонемент ($m)

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    327    PetrovAnton    2    

2

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

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

10 стартмани

18.02.2025    402    1    kalyaka    0    

5

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

17.02.2025    188    0    slavik27    0    

3

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

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

2 стартмани

06.02.2025    1543    8    XilDen    24    

34

Групповая разработка (Git, хранилище) Обновление 1С Программист Платформа 1С v8.3 Россия Бесплатно (free)

Внедряем проверку новых версий прямо в расширение. Оповещайте о новых версиях и показывайте пользователям список изменений. Для разработчиков, которые хотят сэкономить время и повысить лояльность клиентов!

05.02.2025    1220    Nonik    10    

17

Обновление 1С Программист Бухгалтер Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Бухгалтерский учет НДС Абонемент ($m)

Обновление для конфигурации Управление торговлей 10.3.88.3 добавляет поддержку ставок НДС 5% и 7%, обеспечивает корректную печать этих ставок на актуальных моделях торгового оборудования (АТОЛ, ШТРИХ, ревизия 4004), содержит актуальные правила обмена с конфигурацией "Бухгалтерия предприятия 3.0" для передачи новых ставок. Новые ставки НДС поддерживается в печатных формах УПД, ТТН и т.д. В состав дистрибутива включены обработки для обслуживания торгового оборудования ККТ нового формата (Штрих-М и АТОЛ)

5 стартмани

31.01.2025    1877    30    karpik666    28    

22
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. katenok86 246 25.03.24 10:44 Сейчас в теме
Добавлять объекты и реквизиты в расширении это зло. А потом использовать их в основной конфигурации.... Уж проще перевести все реквизиты в основную конфу..
2. sergey.skirdin 56 25.03.24 17:08 Сейчас в теме
(1) Отчасти соглашусь, есть такой паттерн в разработке. Достаточно удобно иметь все объекты в основной конфе, но тут есть как минимум два но:
1) Мы же с заказчиками работаем, и зачастую приходим на поддержку или доработку существующего проекта, где объекты уже созданы в расширениях. В стандартах 1с ничего не сказано о том, что объекты нужно создавать в основной конфигурации, поэтому обосновать бюджет на перенос объектов в конфу сложно.
2) Существует огромное множество тиражируемых расширений, которые поддерживаются сторонними разработчиками и содержат объекты. Например всякие интеграционные расширения, например от Б24.

Раз не получается избежать объектов в расширениях, значит с ними нужно как-то жить. Статья в помощь :-)
3. JohnyDeath 302 26.03.24 14:00 Сейчас в теме
(1) это если вы делаете доработки только в одной конфигурации, а не "универсальное решение"
4. katenok86 246 29.03.24 13:15 Сейчас в теме
(3) если ставить его на типовую, то согласна. А если универсально но для доработанных баз, то лучше сделать сфку с инструкцией
Оставьте свое сообщение