pvase писал(а) 18. Июля 2011 :: 15:23:Надо в 1С сделать по аналогии как сделано в конфигураторе при выборе объектов и методов. Например при вводе названия товара чтобы выпадал список с возможностью выбора. Может кто делал такое - поделитесь пожалуйста примером. Спасибо.
Процедура _НайтиВСписке(Конт) Экспорт
Попытка
Svc=СоздатьОбъект("Svcsvc.Service");
НомерВерсии=Svc.version;
Исключение
НомерВерсии=0;
КонецПопытки;
Если НомерВерсии<1005 Тогда
Сообщить("К сожалению, нужен Svcsvc.dll версии не ниже 1005", "!");
Возврат;
КонецЕсли;
Если ПустоеЗначение(Конт)=1 Тогда // системный список
Svc.FilterValue("", 1+32+128, "Выбор значения из списка", 0, 0, 400);
Возврат;
КонецЕсли;
АктивныйЭлемент=Конт.Форма.АктивныйЭлемент();
Если ПустоеЗначение(АктивныйЭлемент)=1 Тогда Возврат; КонецЕсли;
ЭлементДиалога="";
Шаблон("[_ПрисвоитьЗначение(ЭлементДиалога, Конт."+АктивныйЭлемент+")]");
стрТипЭлементаДиалога=ТипЗначенияСтр(ЭлементДиалога);
Если стрТипЭлементаДиалога="СписокЗначений" Тогда
Svc.FilterValue("", 1+32+128, "Выбор значения из списка", 0, 0, 400);
ИначеЕсли стрТипЭлементаДиалога="ТаблицаЗначений" Тогда
идКолонки=ЭлементДиалога.ТекущаяКолонка(); стрСписок="";
Если ПустоеЗначение(идКолонки)=0 Тогда
Для ъ=1 По ЭлементДиалога.КоличествоСтрок() Цикл
ЗначениеЯчейки=ЭлементДиалога.ПолучитьЗначение(ъ, идКолонки);
стрСписок=стрСписок+?(стрСписок="", "", РазделительСтрок)+Шаблон("[ъ]: [ЗначениеЯчейки]");
КонецЦикла;
Иначе // вероятнее всего это "дерево значений" FormEx
Возврат;
КонецЕсли;
РезВыбора=Svc.FilterValue(стрСписок, 1+32, "Выбор значения из списка", 0, 0, 1);
Если ПустоеЗначение(РезВыбора)=0 Тогда
НомСтроки=Число(Лев(РезВыбора, Найти(РезВыбора, ":")-1));
ЭлементДиалога.ТекущаяСтрока(НомСтроки);
КонецЕсли;
ИначеЕсли стрТипЭлементаДиалога="ТабличноеПоле" Тогда
идКолонки=ЭлементДиалога.ТекущаяКолонка.Имя; стрСписок=""; ъ=1;
НомСтроки=ЭлементДиалога.ТекущаяСтрока;
Пока 1=1 Цикл
ЭлементДиалога.ТекущаяСтрока=ъ;
Если ъ>Число(ЭлементДиалога.ТекущаяСтрока) Тогда Прервать; КонецЕсли; ъ=ъ+1;
ЗначениеЯчейки=ЭлементДиалога.ТекущиеДанные.Получить(идКолонки);
стрСписок=стрСписок+?(стрСписок="", "", РазделительСтрок)+Шаблон("[ъ]: [ЗначениеЯчейки]");
КонецЦикла;
ЭлементДиалога.ТекущаяСтрока=НомСтроки;
РезВыбора=Svc.FilterValue(стрСписок, 1+32, "Выбор значения из списка", 0, 0, 1);
Если ПустоеЗначение(РезВыбора)=0 Тогда
НомСтроки=Число(Лев(РезВыбора, Найти(РезВыбора, ":")-1));
ЭлементДиалога.ТекущаяСтрока=НомСтроки;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Просто выдрал из конфы (адаптируешь для себя ), сам сто лет уже не пользовался 7кой