Часто при копировании типового документа в конфигураторе 1С разработчики сталкиваются с тем, что форма списка созданного объекта оказывается «пустой»: кнопки «Создать», «Скопировать», «Удалить» и другие стандартные команды командной панели просто отсутствуют. Давайте вместе разберем, почему это происходит и как вернуть управление списком в нормальное состояние.
Первое и самое важное, что необходимо сделать — это проверить свойство Основная таблица у динамического списка. Платформа 1С использует этот параметр для того, чтобы понимать, с какими данными работает форма. Если Основная таблица не выбрана, платформа не может автоматически «привязать» к ней команды для манипуляции объектами (создание, удаление, копирование).
Основная таблица выбран именно ваш новый документ (например, Документ.ВашНовыйДокумент).Даже если вы правильно указали Основную таблицу, команды могут не появиться сразу. Платформа должна «прочитать» изменения и перестроить командный интерфейс формы. Разберем по шагам, как заставить систему обновиться:
ИЗ соответствует новому документу.Рассмотрим подробнее свойство Автозаполнение командной панели формы. Если оно установлено в значение Ложь, стандартные команды не будут добавляться автоматически, даже если все остальные настройки заданы верно. Убедитесь, что данная настройка включена (установлена в Истина), иначе кнопки придется добавлять на форму вручную, что значительно усложняет поддержку конфигурации.
Иногда причина кроется в правах доступа или функциональных опциях. Проанализируем ситуацию:
Интерактивное добавление и Интерактивное изменение для нового документа. Без этих прав платформа автоматически скрывает кнопки создания и редактирования.Помните, что при копировании документа вы создаете новый объект метаданных. Если в модулях документа или общих модулях есть ссылки на старый объект, их необходимо обновить. Например, если в коде встречается обращение к метаданным или запросы к старым таблицам:
// Пример некорректного обращения после копирования
ТекстЗапроса = "ВЫБРАТЬ * ИЗ Документ.СтарыйДокумент КАК Док";
// Исправьте на актуальный документ
ТекстЗапроса = "ВЫБРАТЬ * ИЗ Документ.НовыйДокумент КАК Док";
При переименовании реквизитов документа или замене типов данных будьте внимательны: зачастую лучше оставить старые имена реквизитов, даже если вы меняете их назначение, чтобы минимизировать количество правок в коде, который обращается к этим данным через точку (например, ДокументОбъект.Реквизит).
Если после всех манипуляций кнопки по-прежнему не появились, попробуйте выполнить «Обновление конфигурации базы данных» (F7) и, в крайнем случае, очистить кэш 1С, так как иногда метаданные могут «залипнуть» в кэше клиента.