Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 10:08

1с веб-сервис и набор значений

Автор Андрей Щ, 03 июн 2013, 19:31

0 Пользователей и 1 гость просматривают эту тему.

Андрей Щ

делаю веб-сервис, и результат вывожу с помощью asp.net  программы, мною написанной. Результатом веб-сервиса является вывод данных: ФИО, ДОЖНОСТИ, ПОДРАЗДЕЛЕНИЯ. Но эти данные выводятся в строчку и все это выглядит хаотично. Как можно сделать строго ввиде таблице? вернее типа таблиицы... чтоб сначало в одну колонку шли только фио, потом должности и т.д.? Мне подсказали что нужно использовать вернее можно использовать набор значений.
Вот код до изменения:
ДатаОтчета = ТекущаяДата();
 
 
списокСотрудников="<a>";
Запрос = Новый Запрос;
Запрос.Текст =
      "ВЫБРАТЬ
|
| РаботникиОрганизацийСрезПоследних.Должность.Наименование КАК Долж,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразд,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование КАК ФИО
    |     ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних";


Результат = Запрос.Выполнить();
     Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
списокСотрудников=списокСотрудников+"|"+сокрЛП(Выборка.Должн)+"|"+сокрЛП(Выборка.Подразд)+"|"+сокрЛП(Выборка.ФИО);
КонецЦикла;

списокСотрудников=списокСотрудников+"</a>";
возврат СписокСотрудников



Вот код после изменения(набор значений использовал):
ДатаОтчета = ТекущаяДата();
 
 
списокСотрудников="<a>";
Запрос = Новый Запрос;
Запрос.Текст =
      "ВЫБРАТЬ
|
| РаботникиОрганизацийСрезПоследних.Должность.Наименование КАК Долж,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразд,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование КАК ФИО
    |     ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних";


Результат = Запрос.Выполнить();
     Выборка = Результат.Выбрать();
    spisokdolgnost = новый СписокЗначений;
spisokorgan = новый СписокЗначений;
spisokfio = новый СписокЗначений;

spisokdolgnost.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Долж"));
spisokorgan.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Подразд"));
spisokfio.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("ФИО"));
Пока Выборка.Следующий() Цикл

  списокСотрудников=списокСотрудников+"|"+сокрЛП(spisokdolgnost)+"|"+сокрЛП(spisokorgan)+"|"+сокрЛП(spisokfio);

КонецЦикла;

списокСотрудников=списокСотрудников+"</a>";
возврат СписокСотрудников




Dethmontt

А в твоей программе вывод в формате HTML ?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

ДатаОтчета = ТекущаяДата();
 
списокСотрудников= "<table>; 
Запрос = Новый Запрос;
    Запрос.Текст =     
      "ВЫБРАТЬ
    |
    | РаботникиОрганизацийСрезПоследних.Должность.Наименование КАК Долж,
    | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразд,
    | РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование КАК ФИО
    |     ИЗ
    | РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних";
   
   
    Результат = Запрос.Выполнить();
    Колонки = Результат.Колонки;
    Выборка = Результат.Выбрать();

     Пока Выборка.Следующий() Цикл
        СписокСотрудников=СписокСотрудников+"<tr>";
        Для каждого Колонка Из Колонки Цикл
           СписокСотрудников=СписокСотрудников+"<td>"+Выборка[Колонка.Имя]+"</td>";
        конецЦикла;
        СписокСотрудников = СписокСотрудников+"</tr>";
   
     КонецЦикла;

списокСотрудников=списокСотрудников+"</table>";
возврат СписокСотрудников
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Андрей Щ

Цитата: Dethmontt от 03 июн 2013, 23:46
А в твоей программе вывод в формате HTML ?


в xml вывод происходит. Переделал веб-сервис вашим вариантом пишет, ошибку что поле ФИО не обнаружено.Может, что-то в коде я на химичил:

Колонки = Результат.Колонки;
             Пока Выборка.Следующий() Цикл
        СписокСотрудников=СписокСотрудников+"<tr>";
        Для каждого Колонка Из Колонки Цикл
           СписокСотрудников=СписокСотрудников+"<td>"+Выборка[Колонка.ФИО]+"</td>"+"<td>"+Выборка[Колонка.Долж]+"</td>"+"<td>"+Выборка[Колонка.Подразд]+"</td>";
        конецЦикла;
        СписокСотрудников = СписокСотрудников+"</tr>";


Dethmontt

Просто скопируйте мой код. Он уже рабочий и переменные переименовывать не нужно т.е. переменная ИМЯ - правильная переменная не надо ее заменять на фио, долж и т.д.
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:  веб-сервис 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск