Имя: Пароль:
1C
 
Как выделить строку в таблице на форме?
,
0 Александр111
 
22.04.24
09:31
В документе есть Объект.Маршрут - элемент справочника маршруты, у которого есть табличная часть. Эта табличная часть выводится на форму Элементы.МаршрутМаршрут
Нужно установить (подсветить) заданную строку из таблицы МаршрутМаршрут. Так не получается:
&НаСервере
Функция ОпределитьЭтапМаршрута(НомерСтроки)
    
    НужнаяСтрока=Объект.Маршрут.Маршрут[НомерСтроки];
    Возврат(НужнаяСтрока);
КонецФункции

на клиенте
ЭтаФорма.Элементы.МаршрутМаршрут.ТекущаяСтрока=ОпределитьЭтапМаршрута(1).ПолучитьИдентификатор();
Как правильно?
1 Волшебник
 
22.04.24
09:34
Правильно будет МаршрутМаршрутМаршрут
2 Александр111
 
22.04.24
09:37
хоть горшком назови,
3 Александр111
 
22.04.24
10:15
&НаСервере
Процедура ОпределитьЭтапМаршрута(НомерСтроки)
    
    СтрокаКоллекции=Объект.Маршрут.Маршрут.Получить(НомерСтроки);
    Элементы.МаршрутМаршрут.ТекущаяСтрока = СтрокаКоллекции.ПолучитьИдентификатор();
КонецПроцедуры

Выдает ошибку в ПолучитьИдентификатор();
4 yopQua
 
22.04.24
10:21
(0) на клиенте
Новая = Объект.Маршрут.Добавить();
Элементы.Маршрут.ТекущаяСтрока = Новая.ПолучитьИдентификатор();
5 Волшебник
 
22.04.24
10:22
(3) Какую ошибку?
6 Ёпрст
 
22.04.24
10:23
(0)
подсвечивай условным оформлением формы.
7 Александр111
 
22.04.24
10:27
(4) - Объект.Маршрут - Объект.Маршрут - элемент справочника маршруты, соответственно на клиенте не добавишь
8 Александр111
 
22.04.24
10:30
(6) - условным можно, но хотелось проще.
9 Александр111
 
22.04.24
10:31
(5) Метод объекта не обнаружен (ПолучитьИдентификатор)
{Документ._ДемоРеализацияТоваров.Форма.ФормаДокумента.Форма(64)}:Элементы.МаршрутМаршрут.ТекущаяСтрока = СтрокаКоллекции.ПолучитьИдентификатор();
{Документ._ДемоРеализацияТоваров.Форма.ФормаДокумента.Форма(78)}:ОпределитьЭтапМаршрута(1);

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
10 yopQua
 
22.04.24
10:31
(7) это пример, новая - это строка коллекцииформы, получите ее как хотите
ответьте (5)
11 yopQua
 
22.04.24
10:33
.получить() принимает индекс, у вас "1", там больше одной строки?
12 Александр111
 
22.04.24
10:36
(11) Да
13 yopQua
 
22.04.24
10:38
косяк в названиях переменных может быть, ищите отладчиком, должно работать
14 Александр111
 
22.04.24
10:43
&НаСервере
Процедура ОпределитьЭтапМаршрута(ЭтотОбъект)
    
    СтрокаКоллекции=ЭтотОбъект.Объект.Маршрут.Маршрут.Получить(1);
    Элементы.МаршрутМаршрут.ТекущаяСтрока = СтрокаКоллекции.ПолучитьИдентификатор();
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
         ОпределитьЭтапМаршрута(ЭтотОбъект);
//    КонецЕсли;
    //ементы.МаршрутМаршрут.ТекущаяСтрока=Элементы.МаршрутМаршрут.ПолучитьндартныеПодсистемы.ПодключаемыеКоманды
    ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
    
КонецПроцедуры
Ошибка

Отсутствует отображение для типа 'ФормаКлиентскогоПриложения'

по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства 'param':
    форма: Элемент
    имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа 'ФормаКлиентскогоПриложения'
15 Александр111
 
22.04.24
10:50
Видимо придется создавать к элементу формы еще и реквизит, т.к. связать строку табличной части реквизита со строкой элемента формы не получается.
16 Александр111
 
22.04.24
10:52
17 yopQua
 
22.04.24
10:56
что за лажа?

ДанныеФормыКоллекция (FormDataCollection)
Получить (Get)
Синтаксис:
Получить(<Индекс>)
Параметры:
<Индекс> (необязательный)
Тип: Число.
Расположение элемента в коллекции.
Возвращаемое значение:
Тип: ДанныеФормыЭлементКоллекции.
Описание:
Получает элемент по индексу. Работает аналогично оператору [].
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
18 Александр111
 
22.04.24
11:07
(17) -?
19 Ёпрст
 
22.04.24
11:56
(8) Зачем тогда привязываться к "номеруСтроки" ?
Если строк нет, например , где это в коде ?
20 Александр111
 
22.04.24
13:05
Вот так работает:
&НаСервере
Процедура ОпределитьЭтапМаршрута()
    ЗначениеВРеквизитФормы(Объект.Маршрут.Маршрут.Выгрузить(),"ТабМ");
    СтрокаКоллекции=ТабМ.Получить(1);
    Элементы.ТабМаршрут.ТекущаяСтрока = СтрокаКоллекции.ПолучитьИдентификатор();
КонецПроцедуры
21 Волшебник
 
22.04.24
13:13
(20) Первая строка имеет индекс 0
22 Александр111
 
22.04.24
13:19
Нужно получить вторую.