УФ - аналог ВыбратьСтроку(Заголовок, НачальнаяСтрока)

1. succub1_5 89 17.11.14 15:53 Сейчас в теме
Всем привет =)
При переделывании конфы под УФ столкнулся с проблемкой - не могу подобрать аналог ВыбратьСтроку.
Была самописная конфа под 8.1/8.2 обычное приложение, теперь вот 8.3 управляемое приложение, тонкий клиент, процедуры и функции по &НаСервере &НаКлиенте раскидал; в реквизитах формы создал ТЗ (ТаблицаСканеров с колонками), теперь вот мучаюсь:
было:
Процедура МониторНажатие(Элемент)
		Прокси = ПолучитьПрокси();
		Если Прокси = Неопределено Тогда Сообщить("Не удалось соединиться с сервером"); Возврат; КонецЕсли;

		Ответ = Прокси.GetScanersToPC();
		ТаблицаСканеров = Новый ТаблицаЗначений();
		ТаблицаСканеров.Колонки.Добавить("КодСканера");
		ТаблицаСканеров.Колонки.Добавить("НаименованиеСканера");
		Для Каждого Строка из Ответ.Content Цикл
			СтрокаТаблицы = ТаблицаСканеров.Добавить();
			СтрокаТаблицы.КодСканера = Строка.Code;
			СтрокаТаблицы.НаименованиеСканера =  Строка.Name;
		КонецЦикла;
		Строка = ТаблицаСканеров.ВыбратьСтроку("Выберите сканер");
		Элемент.Заголовок = Строка.НаименованиеСканера+" "+Строка.КодСканера;
КонецПроцедуры
Показать


стало:
&НаКлиенте
 Процедура Монитор(Команда)
	МониторНаСервере();	
 КонецПроцедуры
 
 &НаСервере
 Процедура МониторНаСервере()
	 Прокси = ПолучитьПрокси();	 	 
	 Если Прокси = Неопределено Тогда Сообщить("Не удалось соединиться с сервером"); Возврат; КонецЕсли;	 
	 Ответ = Прокси.GetScanersToPC();

	 ТаблицаСканеров.Очистить();
	 	 Для Каждого Строка из Ответ.Content Цикл
		 СтрокаТаблицы = ТаблицаСканеров.Добавить();
		 СтрокаТаблицы.КодСканера = Строка.Code;
		 СтрокаТаблицы.НаименованиеСканера =  Строка.Name;
	 КонецЦикла;
	 
	 Строка = ТаблицаСканеров.ВыбратьСтроку("Выберите сканер");

	 Если (Строка <> Неопределено)
	     Тогда
	     ЭтаФорма.ТекущийЭлемент.Заголовок = Строка.НаименованиеСканера+" "+Строка.КодСканера;
	 Иначе
	     Сообщить("Необходимо выбрать сканер!!!");
	     Возврат;
	 КонецЕсли;
 КонецПроцедуры
Показать

Выкидывает с ошибкой:
Метод объекта не обнаружен (ВыбратьСтроку)
Строка = ТаблицаСканеров.ВыбратьСтроку("Выберите сканер");
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
7. Boneman 298 17.11.14 17:02 Сейчас в теме
(1) succub1_5, метод выбратьстроку работает только на толстом клиенте.
В тонком оно работать не будет. К тому-же это модальная хрень.
В тонком клиенте и таблица значений недоступна. Поэтому и аналога метода быть не может.

Если сильно хочется, то отдельную форму выбора надо рисовать.
agentesecreto; +1 Ответить
2. succub1_5 89 17.11.14 15:58 Сейчас в теме
Пробовал на клиенте:
 &НаКлиенте
 Процедура Монитор(Команда)
	МониторНаСервере();
        Строка = ТаблицаСканеров.ВыбратьСтроку("Выберите сканер");
	Если (Строка <> Неопределено)
	     Тогда
	     ЭтаФорма.ТекущийЭлемент.Заголовок = Строка.НаименованиеСканера+" "+Строка.КодСканера;
	 Иначе
	     Сообщить("Необходимо выбрать сканер!!!");
	     Возврат;
	 КонецЕсли;
 КонецПроцедуры
 
 &НаСервере
 Процедура МониторНаСервере()
	 Прокси = ПолучитьПрокси();	 
	 Если Прокси = Неопределено Тогда Сообщить("Не удалось соединиться с сервером"); Возврат; КонецЕсли;	 
	 Ответ = Прокси.GetScanersToPC();	 
	 ТаблицаСканеров.Очистить();
	 	 Для Каждого Строка из Ответ.Content Цикл
		 СтрокаТаблицы = ТаблицаСканеров.Добавить();
		 СтрокаТаблицы.КодСканера = Строка.Code;
		 СтрокаТаблицы.НаименованиеСканера =  Строка.Name;
	 КонецЦикла;
 КонецПроцедуры
Показать

один фиг - та же ошибка, неужели нет аналога в управляемом приложении?
5. spezc 782 17.11.14 16:04 Сейчас в теме
(2) подозреваю, что ошибка все-таки другая. в первом случае ошибка - метод нельзя использовать на сервере. во втором - нет такого метода.
так как ТаблицаСканеров на клиенте если не ошибаюсь - это коллекция значений, а у нее нет такого метода.

еще раз:
табличное поле на управляемой форме, связанное с таблицой значений. заполнение таблицы значения на сервере, и выбор нужно строки на клиенте.
6. succub1_5 89 17.11.14 16:53 Сейчас в теме
(5) spezc, т.е. по старому/удобному - появилась ТЗ, пользователь ткнул на строку и данные строки записались в переменную - уже нельзя по простому сделать? =)
P.S. так пробую ч/з Элементы.ТаблицаСканеров, мб конец дня и туплю, мб реално не работает ТекущиеДанные/ТекущаяСтрока или не вижу функции Таблицы - ни при "Выборе", ни при "ОбработкеВыбора" не могу вывести даже Сообщить(Элементы.ТаблицаСканеров.ТекущиеДанные());
3. spezc 782 17.11.14 15:59 Сейчас в теме
1. на сервере нет никакого интерактива. только хардкор. т.е. никаких ВыбратьСтроку, Сообщить, Вопрос, ВвестиЧисло

2. раз у вас ТЗ это реквизит формы - вынесите ее на форму, в ней (форме), вызывайте сервер, заполняйте ТЗ, и в на клиенте тыкайте на таблице формы мышкой для выбора
4. succub1_5 89 17.11.14 16:03 Сейчас в теме
(3) spezc, да про "диалоговую" часть на сервере потихоньку доходит =), но мне не надо чтобы все время на форме была эта ТЗ, в обычном приложении, она создавалась - пользователь выбирал строку - и ТЗ благополучно закрывалась.
P.S. хотя можно с костылем ввиде видимости/доступности побаловаться.
Оставьте свое сообщение

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