1с команда не может быть выполнена для указанного объекта

Обновлено: 07.07.2024

Владислав Вдовин


Владислав Вдовин

Владислав Вдовин


Владислав Вдовин

Владислав Вдовин


Владислав Вдовин Николай, это в общем модуле "ПодключаемыеКомандыКлиент"
Процедура ПродолжитьВыполнениеКоманды(Контекст)

Андрей Карпов

Добавь в динамический список поле "ссылка" и отключи пользовательскую видимость для нее

Владислав Вдовин


Владислав Вдовин

Андрей Карпов

а у реквизита "ссылка" стоит галка "Использовать всегда" ?

Владислав Вдовин


Владислав Вдовин ответил Андрею

Андрей Карпов

На сколько мне известно нужно в предопределенный модуль добавить ваш документ ну или проверить его наличия там.

Владислав Вдовин


Владислав Вдовин

Николай, Все делал по этой статье с ИТС, однако ошибка.
Вот отсюда идем: если форма является формой списка, тогда:
1. В параметре <ОбъектИлиТаблицаФормы> следует передавать элемент формы типа ТаблицаФормы, связанный с динамическим списком. Например:
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
Показать полностью.

2. В обработчике ПриАктивизацииСтроки таблицы формы следует вставить вызов по шаблону:
&НаКлиенте
Процедура <ИмяТаблицы>ПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

3. Опционально. Добавить реквизит формы ПараметрыПодключаемыхКоманд произвольного типа. Это позволит не создавать реквизит формы динамически, что ускорит время открытия формы.

Заранее оговорюсь, что статья для самых маленьких, чтобы в меня не кидали помидоры гуру и сенсеи кодинга.

Итак, допустим, перед нами стоит задача: сделать удобное групповое изменение реквизитов справочников и документов в своей собственной конфигурации.

Я подумал, а зачем городить такое, если можно взять вполне себе успешный образец и встроить себе в свою конфигурацию. Например, как это сделано по фен-шую в "Бухгалтерии предприятия 3.0", где мы можем выделить элементы списка, нажать правую кнопку мыши и в контекстном меню выбрать пункт "Изменить выделенные".

Приступим!

1. Допустим, что мы уже создали конфигурацию на управляемых формах в платформе 8.3.

2. Создаем (или перетаскиваем из примера в этой публикации) общий модуль "ГрупповоеИзменениеОбъектовКлиент" (в свойствах модуля поставить флажок напротив "Клиент"):


3. Перетаскиваем обработку из моей демо-конфигурации в свою. Т.е. открываете два окна конфигуратора, в моей базе хватаете мышью обработку "ГрупповоеИзменениеРеквизитов" и перетаскиваете ее в свою базу. См. рис.


4. Открываем форму списка любого справочника или документа. В моем случае это будет "Контрагенты".
В числе колонок списка обязательно должно быть поле с именем "Ссылка", которое содержит ссылку на объект справочника или документа. Если у вас Список типа "Динамический список" с произвольным запросом , убедитесь, что в числе выбираемых полей есть поле "Ссылка". В обычном же динамическом списке это поле будет присутствовать.


5. Теперь нам нужно добавить команду для того, чтобы пользователь мог производить изменение реквизитов.
На вкладке команды создаем новую команду и процедуру (выполняемую на клиенте). Содержание процедуры такое:

Далее будет рисунок как все должно выглядеть. И чуть ниже подробнее, если кто не поймет.


6. Чтобы эту команду пользователь мог вызывать из контекстного меню списка, нам надо это меню добавить.


И теперь мы хватаем мышью нашу команду и перетаскиваем в контекстное меню, чтобы получилось как ниже на рисунке:


Вот и все. Сохраняем и обновляем конфигурацию.

По сути все просто - мы добавили в форму списка команду (а именно - засунули ее в контекстное меню), которая вызывает процедуру общего модуля, который в свою очередь открывает обработку редактирования реквизитов.

А еще проще сказать - мы взяли и позаимствовали у 1С их типовой вариант.
Мне кажется, такой вариант удобнее чем в публикации, которую я упомянул выше.

Само собой, что это можно внедрить не только в форму списка справочника, но и документа.

Читайте также: