В процессе разработки на платформе 1С:Предприятие часто возникают ситуации, когда стандартные действия в конфигураторе перестают работать так, как ожидается. Одной из наиболее раздражающих проблем является невозможность удаления ранее созданного реквизита табличной части в расширении, когда кнопка Удалить становится неактивной, даже при захваченных объектах конфигурации. В данной статье мы разберем, почему это происходит и какими способами можно вернуть контроль над структурой вашего расширения.
Прежде всего, давайте проанализируем ситуацию. Когда мы добавляем реквизит в табличную часть заимствованного объекта в Расширении, платформа создает соответствующую метаданную. В нормальных условиях удаление происходит штатно. Однако, при использовании Хранилища конфигурации, метаданные расширения могут входить в конфликт с историей версий хранилища. Если вы столкнулись с «серой» кнопкой удаления, это почти всегда означает, что механизм платформы заблокировал операцию из-за подозрения на нарушение целостности данных или из-за конфликта идентификаторов UUID между основной конфигурацией и расширением.
Прежде чем приступать к радикальным действиям, необходимо локализовать ошибку. Выполните следующие действия вместе с нами:
Хранилищем конфигурации.Если мы убедились, что проблема вызвана именно хранилищем, рассмотрим доступные нам варианты решения.
Этот метод часто помогает «обмануть» конфигуратор. Создайте пустое расширение и подключите его к тому же хранилищу. Затем выполните процедуру Сравнение и объединение вашего текущего «проблемного» расширения с этим пустым расширением. В окне сравнения вы увидите список всех объектов. Ваша задача — аккуратно снять галочку с того самого реквизита, который не удаляется. При завершении объединения платформа проанализирует текущее состояние как необходимость удаления «отсутствующего» (снятого с объединения) реквизита.
Если визуальные средства не помогают, можно пойти по пути ручного редактирования структуры:
РеализацияТоваровУслуг).Внимание: Этот метод требует высокой осторожности. Перед выполнением обязательно создайте резервную копию всей базы данных!
К сожалению, в некоторых случаях метаданные в хранилище оказываются настолько поврежденными, что единственным гарантированным способом решения становится пересоздание хранилища. Это крайняя мера, которую мы рекомендуем применять только в том случае, если все остальные способы не принесли результата. Выгрузите текущую конфигурацию расширения, удалите проблемное хранилище и создайте новое, загрузив в него актуальный «здоровый» код.
Многие ошибки, связанные с блокировкой метаданных расширений, были исправлены разработчиками 1С в более поздних версиях платформы (8.3.20 и выше). Если вы работаете на версии 8.3.18, мы настоятельно рекомендуем рассмотреть возможность обновления платформы на сервере и у разработчиков. Это зачастую снимает вопросы, связанные с некорректным поведением механизмов Расширений при совместной работе с Хранилищем.
Подводя итог, помните: всегда начинайте с выявления того, является ли ошибка «базовой» (проблема в коде) или «инфраструктурной» (проблема в хранилище). Работа в связке с хранилищем требует дисциплины, и иногда «хирургическое» вмешательство в структуру файлов — это единственный способ заставить систему работать корректно.