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

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С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    143939    674    352    

235

Обновление 1С Программист Платформа 1С v8.3 Платформа 1C v8.2 Конфигурации 1cv8 Бесплатно (free)

По нашему опыту, есть 2 ситуации, когда хочется отдать обновление нетиповой 1С кому-то другому. А) Если конфигурация и её доработки отлично знакомы, но не хочется заниматься рутиной. Б) Когда обновление длительно откладывалось, накопился «снежный ком» изменений, а команда, которая их делала, давно и неоднократно менялась.

26.06.2024    774    1c-izh    4    

4

Обновление 1С Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

02.05.2024    3989    9    chkurs    29    

27

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

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

22.01.2024    1862    ke.92@mail.ru    3    

27

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

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

1 стартмани

10.01.2024    3842    saver77    20    

27

Обновление 1С Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Столкнулся с проблемой. Нужно было поднять до текущего релиза Розницу 2.3. Обновлял по старинке, через конфигуратор (база клиент-серверная). Указывал логин и пароль, ждал скачивания обновления и обновлял. Но после накатывания 5 релизов следующий устанавливаться не хотел, а точнее конфигуратор гордо говорил, что обновлений больше нет. Решение нашел здесь на форуме и хочу зафиксировать. Чтобы самому не забыть и передать опыт начинающим.

29.11.2023    2193    shestopalovpro    5    

8

Обновление 1С Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

20.11.2023    1194    12    IvanTerentev    0    

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

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