При разработке новых документов в среде 1С:Предприятие 8.3 на управляемых формах разработчики часто сталкиваются с ситуацией, когда в табличной части отсутствуют привычные кнопки Переместить вверх, Переместить вниз, а также кнопки сортировки. В типовых конфигурациях эти кнопки отображаются автоматически как «Стандартные команды», но в новом объекте они могут быть скрыты. Разберем подробно, почему это происходит и как вернуть этот функционал в ваш документ.
Первым делом проанализируем настройки самого элемента формы, который отображает табличную часть. В управляемом интерфейсе состав доступных стандартных команд напрямую зависит от свойств таблицы. Если определенные действия со строками запрещены на уровне свойств элемента, платформа автоматически скрывает соответствующие кнопки из командной панели, чтобы не вводить пользователя в заблуждение.
Рассмотрим по шагам, какие свойства необходимо проверить:
Переместить вверх и Переместить вниз.Проанализируем ситуацию: если флаг Изменять порядок строк выключен, платформа считает, что последовательность строк жестко задана логикой приложения и пользователь не должен её менять вручную. Как только вы установите этот флаг, стандартные команды перемещения появятся в списке доступных команд таблицы.
Иногда свойства таблицы установлены верно, но кнопки всё равно не видны на форме. В этом случае нам нужно проверить настройки командной панели, связанной с таблицей. Выясним причину, изучив свойство Автозаполнение.
Если у командной панели (или у самой таблицы в части командной панели) снят флаг Автозаполнение, это означает, что разработчик решил вручную определять состав кнопок. В этом случае стандартные команды не будут добавлены автоматически.
Чтобы добавить их вручную, выполните следующие действия:
Товары).Переместить вверх, Переместить вниз, Сортировать по возрастанию) непосредственно в командную панель в дереве элементов формы.В современных типовых решениях (УТ 11, ERP, КА) управление кнопками часто делегируется Библиотеке стандартных подсистем (БСП). Если вы видите в коде обращения к модулю ПодключаемыеКоманды, это означает, что состав кнопок может формироваться динамически при создании формы на сервере.
Проанализируем код в модуле формы. Обычно программное подключение команд выглядит так:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Формирование структуры подключаемых команд
ПараметрыПодключаемыхКоманд = ПодключаемыеКоманды.ПараметрыПодключаемыхКоманд();
ПараметрыПодключаемыхКоманд.УстановитьКоманднуюПанель(Элементы.ГруппаКоманднаяПанель);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыПодключаемыхКоманд);
КонецПроцедуры
Если вы создали новый документ «с нуля», простого копирования этого кода недостаточно. Механизм БСП должен «знать» о вашем документе. Для этого необходимо зарегистрировать объект в соответствующих переопределяемых модулях БСП, например, в модуле Префикс_УправлениеПечатьюПереопределяемый или через механизмы интеграции с подсистемой «Групповое изменение строк».
Бывают случаи, когда флажки в конфигураторе стоят, но в режиме «1С:Предприятие» кнопки всё равно недоступны (серого цвета). Это часто связано с логикой состояния документа. Посмотрим на пример кода, который может блокировать редактирование строк в зависимости от статуса документа (например, если документ проведен):
&НаСервере
Процедура УстановитьСостояниеПолейФормы()
ТолькоПросмотрПоСтатусу = (Объект.Статус = Перечисления.СтатусыДокументов.Закрыт);
// Блокировка всей таблицы
Элементы.Товары.ТолькоПросмотр = ТолькоПросмотрПоСтатусу;
// Или точечное управление возможностью изменения порядка
Элементы.Товары.ИзменятьПорядокСтрок = НЕ ТолькоПросмотрПоСтатусу;
КонецПроцедуры
Рассмотрим подробнее: если свойство ТолькоПросмотр элемента формы установлено в значение Истина, все стандартные команды редактирования и перемещения будут автоматически деактивированы платформой. Проверьте, нет ли в модуле вашей формы вызовов процедур типа УстановитьДоступностьПриЗначенииРеквизита().
Если технически всё настроено верно, но кнопки отсутствуют у конкретного пользователя, следует проверить права доступа. В платформе 1С существует отдельное право на интерактивное изменение порядка строк.
Выясним причину через проверку ролей:
Также проанализируем влияние функциональных опций. Если табличная часть или сам документ привязаны к функциональной опции, которая отключена в константах или настройках программы, интерфейсные элементы могут вести себя непредсказуемо. Убедитесь, что для вашего нового документа не заданы функциональные опции, которые могут скрывать элементы формы.
Подводя итог, можно сказать, что в 90% случаев проблема решается простой установкой флажка Изменять порядок строк в свойствах таблицы. Остальные 10% приходятся на специфику работы БСП и программное управление свойствами формы в зависимости от бизнес-логики приложения.