Доброе утро всем.
Нужно установить вот такое условие в табличной части. Тыкаюсь уже 2 часа и все никак.
Устанавливал составной тип и событие ПриИзменеии. Все равно дает право выбора справочника
В какую сторону рыть?)
---
Используйте событие "ПриАктивизацииСтроки". Например:

```1c
    &НаКлиенте
    Процедура ТоварыПриАктивизацииСтроки(Элемент)

    ТекущаяСтрока = Элементы.Мероприятия.ТекущиеДанные;
    Если ТекущаяСтрока = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Если ТекущаяСтрока.ОтветственностьИсполнителя Тогда
    ТипОтветственного = Новый ОписаниеТипов("СправочникСсылка.Пользователи");
    Иначе
    ТипОтветственного = Новый ОписаниеТипов("СправочникСсылка.КонтактныеЛицаКонтрагентов");
    КонецЕсли;

    Элементы.МероприятияОтветственный.ОграничениеТипа = ТипОтветственного;

    КонецПроцедуры
```
---
Не совсем понял Ваш вопрос.

У таблицы "Мероприятия" есть реквизит "Ответственный". Имя колонки для этого реквизита на форме "МероприятияОтветственный". Как я понял из исходного сообщения, в зависимости от флажка пользователю нужно выбирать значения исключительно из одного справочника. Но реквизит имеет составной тип.

Чтобы ограничить тип значений, выбираемых пользователем, одним справочником, используется свойство колонки (поля формы) "ОграничениеТипа". Оно накладывает ограничение на всю колонку. При этом оно не меняет значение самого реквизита, а влияет только на выбор.

Т.к. в разных строках таблицы признак, отвечающий за тип значения Ответственного, может быть разным, необходимо "переключать" ограничение типа значений всей колонки при навигации пользователем по таблице. Т.е. использовать обработчик события активизации строки.
---
Показывайте код как делали и не получалось.
---
Все равно дает право выбора справочника
Добрый день!

А , Вы - как хотите сделать? Чтобы, после выбора, нельзя было тип изменить ?
---
Используйте событие "ПриАктивизацииСтроки". Например:

```1c
    &НаКлиенте
    Процедура ТоварыПриАктивизацииСтроки(Элемент)

    ТекущаяСтрока = Элементы.Мероприятия.ТекущиеДанные;
    Если ТекущаяСтрока = Неопределено Тогда
    Возврат;
    КонецЕсли;

    Если ТекущаяСтрока.ОтветственностьИсполнителя Тогда
    ТипОтветственного = Новый ОписаниеТипов("СправочникСсылка.Пользователи");
    Иначе
    ТипОтветственного = Новый ОписаниеТипов("СправочникСсылка.КонтактныеЛицаКонтрагентов");
    КонецЕсли;

    Элементы.МероприятияОтветственный.ОграничениеТипа = ТипОтветственного;

    КонецПроцедуры
```
---
Элементы.МероприятияОтветственный.ОграничениеТипа - что за поле
---
Ну я предположил, что именно так называется колонка (элемент), связанная с реквизитом "Ответственный" табличной части "Мероприятия".
---
Я ни в коем случае не прикапываюсь,

Я просто не пойму, какой тип объекта будет в этом поле.

Изначально в задаче не совсем понятно, где и что автор предполагает хранить, а ваше поле для меня стало откровением.

Просто, если не очень вас затрудню, расскажите какое именно значение типа поля надо использовать в таких случаях.
---
Не совсем понял Ваш вопрос.

У таблицы "Мероприятия" есть реквизит "Ответственный". Имя колонки для этого реквизита на форме "МероприятияОтветственный". Как я понял из исходного сообщения, в зависимости от флажка пользователю нужно выбирать значения исключительно из одного справочника. Но реквизит имеет составной тип.

Чтобы ограничить тип значений, выбираемых пользователем, одним справочником, используется свойство колонки (поля формы) "ОграничениеТипа". Оно накладывает ограничение на всю колонку. При этом оно не меняет значение самого реквизита, а влияет только на выбор.

Т.к. в разных строках таблицы признак, отвечающий за тип значения Ответственного, может быть разным, необходимо "переключать" ограничение типа значений всей колонки при навигации пользователем по таблице. Т.е. использовать обработчик события активизации строки.
---
Все полностью разобрал ваш код и мысль вопросов не имею
---
```1c
    Если Элементы.Мероприятия.ТекущиеДанные.ОтветственностьИсполнителя = Ложь Тогда
    Объект.Мероприятия.Ответственный = Справочники.КонтактныеЛицаКонтрагентов;
    КонецЕсли;
```
---
программно тип реквизита объекта изменять нельзя. Это метаданные объекта, а не данные.
Для обычного элемента поля ввода можно было бы заменить допустимые типы. Но для таблицы невозможно по условию так делать. Изменение будет для всей колонки.
Наиболее приемлемым вариантом остается: в момент начала выбора ответственного, анализировать условие и программно открывать ту, или иную форму выбора.
---
Отключите стандартную обработку при начале выбора и сами пропишите выбор нужного справочника в зависимости от условий.
---
Можно попробовать для элемента "Ответственный" снять галочку "Выбирать тип" и в зависимости от галочки "ОтветственностьИсполнителя" присваивать пустую ссылку нужного справочника. Не знаю как для табличной части, но для обычных реквизитов такое прокатывает.