Имя: Пароль:
1C
1С v8
Передать несколько значений на клиент и сообщить их
0 Gossar1C
 
05.04.13
11:39
Народ доброе утро) Подскажите как правильнее сделать данную ситуацию

&НаКлиенте
Процедура ПоискПоНомеру(Команда)
   
   Перем ВводимоеЗначение;
   ВвестиЗначение(ВводимоеЗначение,"Введите номер телефона",Тип("Строка"));
   СписокПартнеров = ПолучитьКонтактПоТелефону(ВводимоеЗначение);

   
   Если СписокПартнеров.Количество() >= 1 Тогда
       СтаршийИндекс = СписокПартнеров.Количество() - 1;
       Для Сч = 0 По СтаршийИндекс Цикл
           Если Не Сч = СтаршийИндекс Тогда
           Сообщить("Партнер найден, " + СписокПартнеров[Сч].Значение + ". " + "Объектом занимается: " + ?(ЗначениеЗаполнено(СписокПартнеров[Сч + 1].Значение),СписокПартнеров[Сч + 1].Значение,"<не указан>"));
           КонецЕсли;
       КонецЦикла;    
   КонецЕсли;
   
КонецПроцедуры


&НаСервере
Функция ПолучитьКонтактПоТелефону(Телефон)
   
   
   Контакт = "<не найден>";
   
   УстановитьПривилегированныйРежим(Истина);
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Партнеры.Ссылка,
   |    Партнеры.Наименование,
   |    Партнеры.ОсновнойМенеджер
   |ИЗ
   |    Справочник.Партнеры КАК Партнеры
   |ГДЕ
   |    Партнеры.КонтактнаяИнформация.НомерТелефона ПОДОБНО &Телефон";
       
   Запрос.УстановитьПараметр("Телефон", "%" + Телефон + "%");

   Выборка = Запрос.Выполнить().Выбрать();
   
   СписокПартнеров = Новый СписокЗначений;
   
   Если Выборка.Количество() >= 1 Тогда
       Выборка.Следующий();
       СписокПартнеров.Добавить(Выборка.Наименование,"НаименованиеПартнера");
       СписокПартнеров.Добавить(Выборка.ОсновнойМенеджер,"ОсновнойМенеджер");
   КонецЕсли;
   
   Возврат СписокПартнеров;
   
КонецФункции

Просто если попадаются партнера с одинаковыми телефонами ( у нас в базе полно дублей связано с тем что партнер бывает меняет название) пробовал списком значений но не могу понять как сообщить значения списка, допустим если в списке 4 значения? По представлению значение в  8.2 я так понимаю не получить...
1 Gossar1C
 
05.04.13
11:40
и если я не ошибаюсь через структуру не получится наверное?
2 Wobland
 
05.04.13
11:41
ничо не понял. не можешь юзеру показать СЗ?
3 Gossar1C
 
05.04.13
11:42
зачем ему показывать список? мне нужно в окошко сообщений вывести найденного партнера и его основного менеджера, кстати привелигированный режим тут не зря стоит, т.к  используются ограничения по группам доступа
4 Gossar1C
 
05.04.13
11:45
блин у меня же нету цикла для выборка следующий...
5 Gossar1C
 
05.04.13
11:50
разобрался) добавил Пока Выборка.Следующий() Цикл и

Если Не Сч = СтаршийИндекс И НеСписокПартнеров.Представление = "ОсновнойМенеджер" Тогда
6 Gossar1C
 
05.04.13
11:55
СписокПартнеров.Представление = "ОсновнойМенеджер" непрально...
7 mickey1cx
 
05.04.13
12:47
Судя по справочнику Партнеры - УТ11. Если так, то можешь на стороне сервера при обходе выборки в цикле использовать процедуру общего модуля.

Пока Выборка.Следующий() Цикл
 ...
 ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТвояСтрокаСообщения);
КонецЦикла;

Либо использовать СообщениеПользователю()