В поле табличной части "ТолькоПросмотр = Истина" нужно добавить к нему кнопку открытия
По теме из базы знаний
Найденные решения
(1) у ТЧ есть событие выбор. Срабатывает по двойному клику мышкой. Там можно прописать что-то типа.
Если Поле.Имя = "ИмяПоляТЧ"
И Элементы.ТЧ.ТекущиеДанные <> Неопределено
И Элементы.ТЧ.ТолькоПросмотр
И ЗначениеЗаполнено(Элементы.ТЧ.ТекущиеДанные.ИмяПоляТЧ) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,Элементы.ТЧ.ТекущиеДанные.ИмяПоляТЧ);
КонецЕсли;
(16) Сделал так, под свои задачи, всем спасибо!
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
НаименованиеПроизводителя = ПолучитьЗначениеРеквизита(ТекущаяСтрока.этлПроизводитель, "Наименование");
Если Поле.Имя = "ТоварыэтлПроизводитель" И НЕ НаименованиеПроизводителя = "No name" Тогда
Производитель = ТекущаяСтрока.этлПроизводитель;
ПараметрыФормы = Новый Структура("Ключ", Производитель);
ОткрытьФорму("Справочник.Производители.Форма.ФормаЭлемента", ПараметрыФормы);
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) как вариант:
1) у поля:
ТолькоПросмотр = ложь
РежимВыбораИзСписка = истина
2) у таблицы, в событии ПриАктивизацииСтроки
очищать список выбора и вставлять туда только текущее значение
PS у поля РедактированиеТекста = ? - надо пробовать, какое поведение больше нравится
PPS ещё надо запретить очистку
1) у поля:
ТолькоПросмотр = ложь
РежимВыбораИзСписка = истина
2) у таблицы, в событии ПриАктивизацииСтроки
очищать список выбора и вставлять туда только текущее значение
PS у поля РедактированиеТекста = ? - надо пробовать, какое поведение больше нравится
PPS ещё надо запретить очистку
(1) у ТЧ есть событие выбор. Срабатывает по двойному клику мышкой. Там можно прописать что-то типа.
Если Поле.Имя = "ИмяПоляТЧ"
И Элементы.ТЧ.ТекущиеДанные <> Неопределено
И Элементы.ТЧ.ТолькоПросмотр
И ЗначениеЗаполнено(Элементы.ТЧ.ТекущиеДанные.ИмяПоляТЧ) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,Элементы.ТЧ.ТекущиеДанные.ИмяПоляТЧ);
КонецЕсли;
Программно имитирую "Только просмотр" таблицы / поля:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// СтандартныеПодсистемы.ВерсионированиеОбъектов
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
СделатьТолькоПросмотрТаблицаНаСервере(Элементы.МояТаблица);
КонецПроцедуры
&НаКлиенте
Процедура НачалоВыбораОтказ(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка=Ложь;
КонецПроцедуры
&НаСервере
Процедура СделатьТолькоПросмотрПолеНаСервере(Поле)
Если НЕ Поле.Вид=ВидПоляФормы.ПолеВвода Тогда
Возврат;
КонецЕсли;
Поле.КнопкаВыпадающегоСписка=Ложь;
Поле.КнопкаВыбора=Ложь;
Поле.КнопкаОчистки=Ложь;
Поле.КнопкаРегулирования=Ложь;
//Поле.КнопкаОткрытия=Истина;
Поле.КнопкаОткрытия=Неопределено; //Авто
Поле.КнопкаСоздания=Ложь;
Поле.РедактированиеТекста=Ложь;
Поле.БыстрыйВыбор=Ложь;
Поле.ИсторияВыбораПриВводе=ИсторияВыбораПриВводе.НеИспользовать;
Поле.УстановитьДействие("НачалоВыбора", "НачалоВыбораОтказ");
КонецПроцедуры
&НаСервере
Процедура СделатьТолькоПросмотрТаблицаНаСервере(Таблица)
Для каждого Поле Из Таблица.ПодчиненныеЭлементы Цикл
СделатьТолькоПросмотрПолеНаСервере(Поле);
КонецЦикла;
КонецПроцедуры
Показать
(14) у меня ТолькоПросмотр делается условным оформлением тут:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элемент2 = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента2 = Элемент2.Поля.Элементы.Добавить();
ПолеЭлемента2.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыэтлПроизводитель.Имя);
СписокОтбора2 = Новый СписокЗначений;
СписокОтбора2.Добавить(Справочники.Производители.ПустаяСсылка());
СписокОтбора2.Добавить(Справочники.Производители.НайтиПоНаименованию("No name"));
ОтборЭлемента2 = Элемент2.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.этлПроизводитель");
ОтборЭлемента2.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ОтборЭлемента2.ПравоеЗначение = СписокОтбора2;
КонецПроцедуры
Показать
(14) Переделал под себя, ошибок не выдает но ничего не происходит
Если Поле.Имя = "ТоварыэтлПроизводитель"
И Элементы.Товары.ТекущиеДанные <> Неопределено
И (Элементы.Товары.ТолькоПросмотр ИЛИ ЭтаФорма.ТолькоПросмотр)
И ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные.ТоварыэтлПроизводитель) Тогда
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,Элементы.Товары.ТекущиеДанные.ТоварыэтлПроизводитель);
КонецЕсли;
Показать
(16) Сделал так, под свои задачи, всем спасибо!
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
НаименованиеПроизводителя = ПолучитьЗначениеРеквизита(ТекущаяСтрока.этлПроизводитель, "Наименование");
Если Поле.Имя = "ТоварыэтлПроизводитель" И НЕ НаименованиеПроизводителя = "No name" Тогда
Производитель = ТекущаяСтрока.этлПроизводитель;
ПараметрыФормы = Новый Структура("Ключ", Производитель);
ОткрытьФорму("Справочник.Производители.Форма.ФормаЭлемента", ПараметрыФормы);
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот