ТаблицаЗначений

отчет,
слушай точно, ведь в справочнике должности наименование - это строка, а в таблицеРеквизитов получается, что справочник. как же с этим быть?
Скинь на мыло, после обеда гляну. Да, и опиши, что должен делать отчет.
"Поскольку высланный мне код оказался не полным и чтобы долго те телепатировать, решил набросать
более оптимальный (в моем понимании) код, показывающий, как надо работать с данными.

//*******************************************
Процедура Сформировать()
Сотр = СоздатьОбъект("Справочник.Сотрудники");
НаДату = ТекущаяДата(); //или брать из диалога
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Сотр");
ТЗ.НоваяКолонка("Пол");
ТЗ.НоваяКолонка("Должность");
ТЗ.НоваяКолонка("Категория");
ТЗ.НоваяКолонка("Кол");
Сотр.ВыбратьЭлементы();
Пока Сотр.ПолучитьЭлемент() = 1 Цикл
Если (Сотр.ЭтоГруппа() = 1)
ИЛИ (ПустоеЗначение(Сотр.Должность.Получить(НаДату)) = 1)
ИЛИ (ПустоеЗначение(Сотр.Пол) = 1) Тогда
Продолжить;
КонецЕсли;
ТЗ.НоваяСтрока();
ТЗ.Сотр = Сотр.ТекущийЭлемент();
ТЗ.Пол = Сотр.Пол;
ТЗ.Должность = Сотр.Должность.Получить(НаДату);
ТЗ.Категория = Сотр.Должность.Получить(НаДату).Категория;
ТЗ.Кол = 1;
КонецЦикла;
//и вот с этой ТЗ можно работать, извлекая из нее все данные
//
ВремТЗ = СоздатьОбъект("ТаблицаЗначений");
//разберемся с полами
ТЗ.Выгрузить(ВремТЗ,,,"Пол,Кол");
ВремТЗ.Свернуть("Пол","Кол");
ВремТЗ.ВыбратьСтроки();
Пока ВремТЗ.ПолучитьСтроку() = 1 Цикл
Сообщить("В организации "+ВремТЗ.Кол+" сотрудников имеют "+ВремТЗ.Пол+" пол");
КонецЦикла;
Сообщить("===========================================================­========");
ВремТЗ.Очистить();

//теперь с должностями
ТЗ.Выгрузить(ВремТЗ,,,"Должность,Кол");
ВремТЗ.Свернуть("Должность","Кол");
ВремТЗ.ВыбратьСтроки();
Пока ВремТЗ.ПолучитьСтроку() = 1 Цикл
Сообщить("В организации "+ВремТЗ.Кол+" сотрудников в должности "+ВремТЗ.Должность);
КонецЦикла;
Сообщить("===========================================================­========");
ВремТЗ.Очистить();

//теперь с категориями
ТЗ.Выгрузить(ВремТЗ,,,"Категория,Кол");
ВремТЗ.Свернуть("Категория","Кол");
ВремТЗ.ВыбратьСтроки();
Пока ВремТЗ.ПолучитьСтроку() = 1 Цикл
Сообщить("В организации "+ВремТЗ.Кол+" сотрудников категории "+ВремТЗ.Категория);
КонецЦикла;

КонецПроцедуры
"
Спасибо большое! Обязательно попробую так. Может, я действительн пошла слишком сложным путем.
"Вообще, запросы рулят.

Типа

запрос = создатьОбъект("Запрос");
Если
Запрос.Выполнить("
|сотр = Справочник.Сотрудники;
|Должность = Справочник.Сотрудники.Должность;
|Пол = Справочник.Сотрудники.Пол;
|Группировка Сотр без групп;
|Группировка Должность без групп;
|Группировка Пол;") = 0 Тогда Сообщить("Все плохо!"); возврат КонецЕсли;

колсотр = 0;

Пока Запрос.Группировка(1)=1 Цикл
колпроф = 0;
колсотр = колсотр + 1;
Пока Запрос.Группировка(2)=1 Цикл
 колмуж  = 0;
 кол     = 0;
 колпроф = колпроф + 1;
 Пока Запрос.Группировка(3)=1 Цикл
   колмуж = ?(Лев(Запрос.Пол)="М",1,0);
   кол = кол + 1;
 КонецЦикла;
 сообщить("Количество мужчин на должности "+Запрос.Должность+" :"+колмуж);
 сообщить("Количество женщин на должности "+Запрос.Должность+" :"+(кол-колмуж));
КонецЦикла;
КонецЦикла;


Ну и т.д."
ТИС рел 941. Отчет по продажамБааальшие проблемы при установке 1С

Читайте нас: