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