Битрикс: «Ошибка удаления. Возможно есть ссылающиеся объекты.» при попытке удалить инфоблок

Ситуация: при настройке в 1С и тестах обменов в Битрикс выгружается номенклатура. На сайте создались несколько ненужных каталогов товаров и предложений. Содержимое этих ИБ не использовалось в работе сайта (не создавались заказы и пр.).

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

Задача: таки удалить бесполезные инфоблоки, появившиеся врезультате тестов.

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

Решение

Запускаем GIT GUI и GITK на виртуальной машине Битрикс CentOS 6.7

В комплекте с git есть две гуёвые (gui, с графичеким интерфейсом) утилиты. Одна вызывается по команде git gui и позволяет работать над текущим коммитом: управлять индексом файлов, просматривать изменения, делать, собственно, коммиты (в т.ч. amend), push и pull изменений мержить ветки… Ну, думаю, тут понятно: стандартный ежедневный функционал.

Gitk же даёт возможность просматривать истории веток, изменения в коммитах и вообще всю информацию по ним. Удобная штукенция для любителей ткнуть мышкой и получить кучу полезной инфы вместо набора команд в консоли.

В сущности, конечно же, эти утилиты полностью повторяют функционал git’а консольного (иначе это было бы странным): gitk это git log —graph, а git gui объединяет команды merge, commit, pull, push и так далее.

Когда я об этом узнал, сразу, конечно, заинтересовался как такое можно провернуть на битриксовском виртуальном сервере, который вертится в VirtualBox на CentOS 6.7 безо всяких графических оболочек. Гит для меня вообще штука относительно новая, я пользуюсь им (если глянуть по первым моим коммитам) с 13 марта сего года исключительно в консоли (если быть точным, то через SSH в PuTTY, о чём в конце). Были некоторые проблемы с мержем и синхронизацией коммитов с удалённым репозиторием, но всё решалось успешно, да и шишек набить успел, что хорошо.

Тут я вкратце поведаю как установить запустить на виртуальной машине Битрикс-сервера… то есть на CentOS графическую оболочку и пощупать заветные git gui и gitk.
Следует сначала дочитать сей опус до конца, а не выполнять действия по ходу первого чтения.
Читать далее Запускаем GIT GUI и GITK на виртуальной машине Битрикс CentOS 6.7

1С: неточности понимания терминологии

Всегда задавался вопросом. Точнее, несколькими: что в платформе 1С есть документ, справочник, разного рода регистры, перечисления и так далее.

Когда я вник в теорию баз данных, познал основные понятия и пр., сейчас мне проще понять и эти 1С-термины. Но проблема в том, что понимаю я их по-своему, с опорой на фундаментальные понятия, заложенные в теорию баз данных. И это моё толкование несовсем соответствует действительности, поскольку на самом деле в конфигурациях могут встречаться такие явления, которые противоречат моему восприятию.

Да, есть море литературы по 1С. Везде сказано одно и тоже, но без опоры на главное — как работает СУБД и из чего состоит БД.

Вот смотри.

Есть база данных. Она состоит из таблиц. Говоря простым языком, они бывают дочерние и родительские. Это определяется связями — ограничениями в виде внешних ключей. Родительские таблицы содержат первоначальные данные, которые потом будут использоваться в дочерних. Провожу аналогию с 1С: родительская таблица — справочник, дочерняя — документ.

Для выборки данных из БД используются SQL-запросы (почти всегда, если брать во внимание существование noSQL-СУБД). Запросы на выборку данных можно создать в виде представления — этакой таблицы БД, которая формируется при запросе данных из неё. То есть это запрос, но обращение к нему идёт как к обычной таблице. Аналогия с 1С: такое представление есть регистр. Но регистр какой? — сведений, накопления…

Есть такое понятие, как массив. В разных СУБД его можно создать по разному, смотря как это реализовано и поддерживается ли вообще самой СУБД. Опять же, для 1С: массив = перечисление.

Понимаешь к чему я клоню? Нет никакой литературы, объясняющей как работает 1С на самом деле. Может быть, это коммерческая тайна разработчиков за семью печатями. Тогда это ещё хуже. Как применять правила нормализации? Как обеспечивается ссылочная целостность?

Скажешь, мол, забей и прими как данность. Но почему справочник? Как работает регистр какого-нибудь накопления (накопления какого и чего?) и почему он так назван?

Например, в какое-то поле некоторой записи можно вставить ссылку на другую запись из другой таблицы (некий идентификатор записи). А ведь можно вставить и само значение того поля той записи. Так что же, это теперь внешний ключ?

Казалось бы, ладно, ну понял я вроде по аналогиям вот это всё. Но вот я снова выпадаю в осадок, когда вижу: то, что по моему разумению должно быть справочником (родительской таблицей), является документом (дочерней), перечислением (массивом) или чем-то вообще мне не даже знакомым.

Я знаю, что здесь мало отличий от реальных БД: вся 1С — это мощная обёртка над DBF с русскоязычной интерпретацией Basic, но главное — со своей хитровыдуманной терминологией. И эта терминология вкупе с достаточно узконаправленной специализацией платформы просто не дают возможности вникнуть мне в её реальную суть, понять сущность, смысл происходящего. Сплошь одна магия.

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