Событие Выбор по отдельной колонке

1. A1nur1ch 22.01.24 15:20 Сейчас в теме
Чтобы пользователь мог согласовать план, в событие ТЧ Выбор написал код, чтобы для колонки "Согласовано" присвоился текст "Согласовано". Что сделать, чтобы событие срабатывала при нажатии на отдельную колонку ?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
2. booksfill 23.01.24 11:54 Сейчас в теме
Как вариант:
1. Добавляем колонку строкового реквизита (не в таб. часть док-та, а в таб. часть на форме)
2. Вид - поле надписи
3. Ставим галочку ГиперссылкаЯчейки
4. В поле пишем "Согласовать" заполняем при создании на сервере и при добавлении новой строки, например,
Для Каждого Стр Из Объект.ТабличнаяЧасть1
Стр .Реквизит2 = "Согласовать";
...

5. Для всей таб. части ставим обработку события "выбор" (не пытаемся обрабатывать событие "нажатие" для ячейки - оно все одно не будет работать!)
При выполнении пунктов выше оно сработает при однократном нажатии.
Т.е. именно то, что вам надо.

6. Обрабатываем событие, например
&НаКлиенте
Процедура Реквизит1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
  текДанные = Элемент.ТекущиеДанные;
  Если текДанные <> Неопределено Тогда
      Если текДанные.Реквизит2 = "Утверждено" Тогда
         стрЗаголовок = нСтр("ru='Согласовать'", "ru") ;
         пСогласовано = Ложь; 
      Иначе
         стрЗаголовок = нСтр("ru='Согласовано'", "ru") 
         пСогласовано = Истина;
      КонецЕсли;
      текДанные.Реквизит2 = стрЗаголовок ;
        //этот реквизит, в отличие от Реквизит1 (имеющегося только на форме), есть в таб. части самого документа.
        текДанные.Согласовано = пСогласовано ; 
  КонецЕсли; 
КонецПроцедуры


Показать


Это "рыба" чего там помещать в поле и чего в нем писать вам решать, равно как и почему вместо обычного поля флажка вам захотелось странного.
A1nur1ch; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sashares 33 23.01.24 12:40 Сейчас в теме
(1)
Что сделать, чтобы событие срабатывала при нажатии на отдельную колонку ?

Именно на заголовок в колонке или все же на ячейку в колонке в строке таблицы?
4. A1nur1ch 23.01.24 14:16 Сейчас в теме
5. Sashares 33 23.01.24 15:18 Сейчас в теме
(4)Добавьте проверку на имя текущей колонки - она в параметре Поле

Реквизит1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
<Поле>
Тип: ПолеФормы.
Активное поле (колонка).

Если нужная колонка - стандартная обработка = ложь и ваш код, иначе - ничего не делать.
2. booksfill 23.01.24 11:54 Сейчас в теме
Как вариант:
1. Добавляем колонку строкового реквизита (не в таб. часть док-та, а в таб. часть на форме)
2. Вид - поле надписи
3. Ставим галочку ГиперссылкаЯчейки
4. В поле пишем "Согласовать" заполняем при создании на сервере и при добавлении новой строки, например,
Для Каждого Стр Из Объект.ТабличнаяЧасть1
Стр .Реквизит2 = "Согласовать";
...

5. Для всей таб. части ставим обработку события "выбор" (не пытаемся обрабатывать событие "нажатие" для ячейки - оно все одно не будет работать!)
При выполнении пунктов выше оно сработает при однократном нажатии.
Т.е. именно то, что вам надо.

6. Обрабатываем событие, например
&НаКлиенте
Процедура Реквизит1Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
  текДанные = Элемент.ТекущиеДанные;
  Если текДанные <> Неопределено Тогда
      Если текДанные.Реквизит2 = "Утверждено" Тогда
         стрЗаголовок = нСтр("ru='Согласовать'", "ru") ;
         пСогласовано = Ложь; 
      Иначе
         стрЗаголовок = нСтр("ru='Согласовано'", "ru") 
         пСогласовано = Истина;
      КонецЕсли;
      текДанные.Реквизит2 = стрЗаголовок ;
        //этот реквизит, в отличие от Реквизит1 (имеющегося только на форме), есть в таб. части самого документа.
        текДанные.Согласовано = пСогласовано ; 
  КонецЕсли; 
КонецПроцедуры


Показать


Это "рыба" чего там помещать в поле и чего в нем писать вам решать, равно как и почему вместо обычного поля флажка вам захотелось странного.
A1nur1ch; +1 Ответить
6. Fatenm 23.01.24 15:24 Сейчас в теме
Реквизит "Согласовано" ТЧ делаем тип Булево. На событие ячейки ПриИзменении прописываем присвоение необходимого строкового значения (по текущим данным) для ячейки Согласовант (в зависимости от установленного значения Истина/Ложь в в ячейке Согласовано)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот