Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос по регистру РаботникиОрганизаций (УТП)          
logist Подменю пользователя
сообщение 22.09.11, 13:14
Сообщение #1

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Задача - получить таблицу таких данных: [ Организация | ПодразделениеОрганизации | Количество ]
"Количество" это количество работников в этом подразделении. При это нужно учесть возможность комбинаций отбора: "на дату", по организации, по должности.
УТП 8,2 последняя, все эти данные я нашел в регистре РаботникиОрганизаций, но вот с запросом никак не могу вырулить, с отбором я еще как-то разберусь, а вот получить "Количество" мозг отказывается smile.gif
Буду очень признателен если кто-то напишет сразу весь запрос.
Спасибо!

Вопрос с количеством решил (возможно и не так как правильно), но вот что есть:
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    РаботникиОрганизацийСрезПоследних.Организация,
        |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РаботникиОрганизацийСрезПоследних.Сотрудник) КАК Количество
        |ИЗ
        |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НаДату, ) КАК РаботникиОрганизацийСрезПоследних
        |
        |СГРУППИРОВАТЬ ПО
        |    РаботникиОрганизацийСрезПоследних.Организация,
        |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации";


Подскажите как всунуть отбор по организации и/или должности


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.09.11, 13:26
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации


ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
            ,
            Организация = &Организация
                И Должность = &Должность) КАК РаботникиОрганизацийСрезПоследних

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации

logist Подменю пользователя
сообщение 22.09.11, 13:42
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.09.11, 14:26) *
ИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
            ,
            Организация = &Организация
                И Должность = &Должность) КАК РаботникиОрганизацийСрезПоследних

Это я пробовал, это если и организация и должность заполнены, а как быть если и то и то пусто, или заполнено что-то одно (организация или должность)?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.09.11, 13:54
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
Это я пробовал, это если и организация и должность заполнены, а как быть если и то и то пусто, или заполнено что-то одно (организация или должность)?

Вопрос ставился изначально, как добавить отбор, вот я и написал как добавить отбор smile.gif . А это обязательно должно делаться запросом?

logist Подменю пользователя
сообщение 22.09.11, 15:04
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Цитата(Vofka @ 22.09.11, 14:54) *
А это обязательно должно делаться запросом?

Ммм... А есть другие варианты?

Это слишком через жопу?
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    РаботникиОрганизацийСрезПоследних.Организация,
        |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        |    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РаботникиОрганизацийСрезПоследних.Сотрудник) КАК Количество
        |ИЗ
        |    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&НаДату, "+?(ЗначениеЗаполнено(Организация),"Организация = &Организация","")+"
        |                                                                "+?((ЗначениеЗаполнено(Организация) И ЗначениеЗаполнено(Должность))," И ","")+"
        |                                                                "+?(ЗначениеЗаполнено(Должность),"Должность = &Должность","")+") КАК РаботникиОрганизацийСрезПоследних
        |ГДЕ
        |    РаботникиОрганизацийСрезПоследних.ЗанимаемыхСтавок > 0
        |
        |СГРУППИРОВАТЬ ПО
        |    РаботникиОрганизацийСрезПоследних.Организация,
        |    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации";


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 22.09.11, 15:05
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8

Цитата
А есть другие варианты?

Есть.

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

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации

Спасибо сказали: logist,

kivals Подменю пользователя
сообщение 22.09.11, 16:22
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 105
Из: Киев
Спасибо сказали: 27 раз
Рейтинг: 0

В том виде, как я описывал здесь текст запроса мог бы выглядеть вот так (что позволяет его редактировать конструктором):
ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    КОЛИЧЕСТВО(РаботникиОрганизацийСрезПоследних.Сотрудник) КАК КоличествоСотрудников
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(
            ,
            &УсловияЗапроса) КАК РаботникиОрганизацийСрезПоследних

СГРУППИРОВАТЬ ПО
    РаботникиОрганизацийСрезПоследних.Организация,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации

А потом кодом бы генерировалась строка &УсловияЗапроса и заменалась бы в тексте через СтрЗаменить(). Это подходит для обычного запроса, но не для СКД.

И ИМХО вместо конструкции
ВЫБОР
                    КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)
                        ТОГДА ИСТИНА
                    ИНАЧЕ Организация = &Организация
                КОНЕЦ

быстрее должна работать
(&Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) ИЛИ (Организация = &Организация)

Но нужно протестировать - это только непроверенная мысль

logist Подменю пользователя
сообщение 22.09.11, 16:34
Сообщение #8

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

Всем спасибо. Вопрос решен!


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 17:10
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!