Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Задача - получить таблицу таких данных: [ Организация | ПодразделениеОрганизации | Количество ] "Количество" это количество работников в этом подразделении. При это нужно учесть возможность комбинаций отбора: "на дату", по организации, по должности. УТП 8,2 последняя, все эти данные я нашел в регистре РаботникиОрганизаций, но вот с запросом никак не могу вырулить, с отбором я еще как-то разберусь, а вот получить "Количество" мозг отказывается Буду очень признателен если кто-то напишет сразу весь запрос. Спасибо!
Вопрос с количеством решил (возможно и не так как правильно), но вот что есть:
Запрос.Текст = "ВЫБРАТЬ | РаботникиОрганизацийСрезПоследних.Организация, | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации, | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РаботникиОрганизацийСрезПоследних.Сотрудник) КАК Количество |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НаДату, ) КАК РаботникиОрганизацийСрезПоследних | |СГРУППИРОВАТЬ ПО | РаботникиОрганизацийСрезПоследних.Организация, | РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации";
Подскажите как всунуть отбор по организации и/или должности
Личные бесплатные консультации не даю, для этого есть форум!
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( , Организация = &Организация И Должность = &Должность) КАК РаботникиОрганизацийСрезПоследних
СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(Vofka @ 22.09.11, 14:26)
ИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( , Организация = &Организация И Должность = &Должность) КАК РаботникиОрганизацийСрезПоследних
Это я пробовал, это если и организация и должность заполнены, а как быть если и то и то пусто, или заполнено что-то одно (организация или должность)?
Личные бесплатные консультации не даю, для этого есть форум!
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата
А есть другие варианты?
Есть.
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( , ВЫБОР КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Организация = &Организация КОНЕЦ И ВЫБОР КОГДА &Должность = ЗНАЧЕНИЕ(Справочник.ДолжностиОрганизаций.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Должность = &Должность КОНЕЦ) КАК РаботникиОрганизацийСрезПоследних
СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
В том виде, как я описывал здесь текст запроса мог бы выглядеть вот так (что позволяет его редактировать конструктором):
ВЫБРАТЬ РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации, КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних( , &УсловияЗапроса) КАК РаботникиОрганизацийСрезПоследних
СГРУППИРОВАТЬ ПО РаботникиОрганизацийСрезПоследних.Организация, РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации
А потом кодом бы генерировалась строка &УсловияЗапроса и заменалась бы в тексте через СтрЗаменить(). Это подходит для обычного запроса, но не для СКД.
И ИМХО вместо конструкции
ВЫБОР КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Организация = &Организация КОНЕЦ
быстрее должна работать
(&Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) ИЛИ (Организация = &Организация)
Но нужно протестировать - это только непроверенная мысль
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!