Нужна небольшая помощь с отчетом начинающему!

Категория Помощь

Помогите пожалуйста в модуле формы отчета обратиться к значению реквизита справочника. В справочнике "Сотрудники" есть реквизит "ВидОбразование". Это ссылка на перечисление "ВидОбразования", которое содержит несколько значений, например "Высшее", "Среднее". Я хочу посчитать кол-во сотрудников с высшим. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Сотрудники.ВидОбразование, | Сотрудники.РазрядКвалификация, | ПРЕДСТАВЛЕНИЕ(Сотрудники.РазрядКвалификация), | Сотрудники.ДатаРождения, | Сотрудники.Пол |ИЗ | Справочник.Сотрудники КАК Сотрудники"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); высшее = 0; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ТипЗнч(ВыборкаДетальныеЗаписи) = ТипЗнч(Перечисления.ВидОбразования.Высшее) Тогда высшее = высшее 1; КонецЕсл Помогите пожалуйста в модуле формы отчета обратиться к значению реквизита справочника. В справочнике "Сотрудники" есть реквизит "ВидОбразование". Это ссылка на перечисление "ВидОбразования", которое содержит несколько значений, например "Высшее", "Среднее". Я хочу посчитать кол-во сотрудников с высшим.

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.ВидОбразование,
| Сотрудники.РазрядКвалификация,
| ПРЕДСТАВЛЕНИЕ(Сотрудники.РазрядКвалификация),
| Сотрудники.ДатаРождения,
| Сотрудники.Пол
|ИЗ
| Справочник.Сотрудники КАК Сотрудники";

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

высшее = 0;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ТипЗнч(ВыборкаДетальныеЗаписи) = ТипЗнч(Перечисления.ВидОбразования.Высшее) Тогда
высшее = высшее 1;
КонецЕсли;
КонецЦикла;

Ошибок не выдает, но ничего не выводит. Может вообще не так обращаться нужно.. я только учусь. Буду благодарна за помощь.

Комментарии  

 
0 #4 rizhij 08.06.2013 07:18
Если у вас есть ссылка на табличную часть другого документа, то по ссылке сразу можно обратиться.

Екатерина, а в запросе, в условии пишете:
"Где [Таб часть документа].Ссыл ка = &НужныйДокумент"
и выбираете нужные поля документа (это часто используется в типовых решениях для печатных форм).
Цитировать
 
 
0 #3 ekaterin 20.05.2013 21:49
а как можно обратиться в модуле объекта к табличной части другого документа? через запрос или метод есть какой-нибудь?
Цитировать
 
 
0 #2 urij 09.05.2013 16:44
для чего вообще использовать ТипЗнч()? не проще:
Если ВыборкаДетальны еЗаписи.ВидОбра зование = Перечисления.Ви дОбразования.Вы сшее Тогда
...
Цитировать
 
 
0 #1 rizhij 06.05.2013 13:14
Екатерина,
Здравствуйте!

Для того, чтобы понять в таких случаях почему что-то не идет так, как Вы хотите, используйте режим отладки и точки останова.

Сходу можно сказать, что вместо строки:
Если ТипЗнч(ВыборкаД етальныеЗаписи) = ТипЗнч(Перечисл ения.ВидОбразов ания.Высшее) Тогда
надо записать:
Если ТипЗнч(ВыборкаД етальныеЗаписи. ВидОбразование) = ТипЗнч(Перечисл ения.ВидОбразов ания.Высшее) Тогда

Кроме того, нет строки:
Сообщить("Количество студентов с высшим образованием: " высшее)

Вы правильно описывайте алгоритм. Но такие вещи, правильнее обрабатывать в Запросе, не выбирая те поля, которые Вы не используете.
В запросе делайте параметр "ВидОбразования " и используете агрегатную функцию "Сумма".

Успехов в изучении 1С!
Цитировать
 

Добавить комментарий


Защитный код
Обновить