Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Янв 2021, 19:59
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите с запросом в СКД  (Прочитано 273 раз)

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

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 148
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
Сразу к вопросу! Есть справочник ШтатныеДолжности и РС Послужнойсписок, необходимо в отчете выводить:
1. Общее количество должностей по подразделению;
2. Количество занятых должностей по подразделению;
3. Количество вакантных должностей по подразделению;
Сделал в СКД простой макет в который нужно выводить значения этих полей.

Реализовал только последний номер (3) - где подсчитывается количество вакантных должностей. Подскажите как сделать в чтоб в наборе данных в СКД получить сведения пунктов 1 и 2 и совместить это в одну таблицу ???

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


Оффлайн LexaK

  • *****
  • Сообщений: 2369
  • РЕПУТАЦИЯ: 706
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
все неправильно.
почему у вас справочник ШтатныеДолжности через владельца связан с подразделением?
в справочнике должны быть уникальные не повторяющиеся элементы (а у вас получается 100 Инструкторов, по одному на кафедру)

должно быть штатное расписание, где как раз связываются
Подразделение  --- Должность --- количество мест (это данные для п.п.1)
из РегистрСведений.ПослужнойСписок.СрезПоследних --- наоборот берете количество фактически занятых должностей (п.п.2)
разница между п.п.1 и п.п.2 даст вам п.п.3
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 148
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
все неправильно.
почему у вас справочник ШтатныеДолжности через владельца связан с подразделением?
в справочнике должны быть уникальные не повторяющиеся элементы (а у вас получается 100 Инструкторов, по одному на кафедру)

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

LexaK Поправьте пожалуйста, если что не так. Поясню: справочник ШтатныеДолжности подчиненный, в нем владелец - это подразделение в которой есть эта должность (может быть несколько одинаковых должностей, скрин вовложении) - отсюда хочу получить общее количество должностей за организацию:
ВЫБРАТЬ
ШтатныеДолжности.Ссылка КАК Ссылка
ИЗ
Справочник.ШтатныеДолжности КАК ШтатныеДолжности
ГДЕ
ШтатныеДолжности.КлассификацияДолжности = ЗНАЧЕНИЕ(Перечисление.КлассификацияДолжности.Военная)

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

Теперь как от общего количества отнять количество занятых и сделать это в СКД? Или я что-то не понял?

Оффлайн LexaK

  • *****
  • Сообщений: 2369
  • РЕПУТАЦИЯ: 706
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
еще раз, нужно штатное расписание
одной и той-же должности на разных кафедрах может быть разное количество мест,
например Замов может быть и 2 и 3 и много
конечно если вы распишите
Зам1,Зам2,Зам3,Зам4,Зам5,... - для каждого места свой элемент справочника (!!!)
тогда просто считайте количество элементов, примерно так
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение,
    Количество(1) как КоличествоДолжностей
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
сгруппировать по
    ШтатныеДолжности.Владелец
получите общее количество должностей по каждому подразделению (п.п.1)
(не понятно тогда как разбивать на должности - Зам, Инструктор, Препод)


Добавлено: 05 Янв 2021, 13:33

или такой запрос используйте, поместите в СКД, просуммируйете ресурсы Место и МестоЗанято, получите между ними разность -- МестоСвободно
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение_ВК
    ШтатныеДолжности.Ссылка КАК Должность,
1 как Место, //место по расписанию
Выбор Когда ПослужнойСписокСрезПоследних.Должность ЕСТЬ NULL
Тогда 0 Иначе 1
Конец как МестоЗанято
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПослужнойСписок.СрезПоследних КАК ПослужнойСписокСрезПоследних
        ПО (ПослужнойСписокСрезПоследних.Должность = ШтатныеДолжности.Ссылка)
ГДЕ
    ШтатныеДолжности.КлассификацияДолжности = ЗНАЧЕНИЕ(Перечисление.КлассификацияДолжности.Военная)
УПОРЯДОЧИТЬ ПО
    ШтатныеДолжности.Владелец

Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Последний раз редактировалось: LexaK; 05 Янв 2021, 13:33. Причина: Объединение сообщений

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 148
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
еще раз, нужно штатное расписание
одной и той-же должности на разных кафедрах может быть разное количество мест,
например Замов может быть и 2 и 3 и много
конечно если вы распишите
Зам1,Зам2,Зам3,Зам4,Зам5,... - для каждого места свой элемент справочника (!!!)
тогда просто считайте количество элементов, примерно так
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение,
    Количество(1) как КоличествоДолжностей
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
сгруппировать по
    ШтатныеДолжности.Владелец
получите общее количество должностей по каждому подразделению (п.п.1)
(не понятно тогда как разбивать на должности - Зам, Инструктор, Препод)


Добавлено: 05 Янв 2021, 13:33

или такой запрос используйте, поместите в СКД, просуммируйете ресурсы Место и МестоЗанято, получите между ними разность -- МестоСвободно
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение_ВК
    ШтатныеДолжности.Ссылка КАК Должность,
1 как Место, //место по расписанию
Выбор Когда ПослужнойСписокСрезПоследних.Должность ЕСТЬ NULL
Тогда 0 Иначе 1
Конец как МестоЗанято
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПослужнойСписок.СрезПоследних КАК ПослужнойСписокСрезПоследних
        ПО (ПослужнойСписокСрезПоследних.Должность = ШтатныеДолжности.Ссылка)
ГДЕ
    ШтатныеДолжности.КлассификацияДолжности = ЗНАЧЕНИЕ(Перечисление.КлассификацияДолжности.Военная)
УПОРЯДОЧИТЬ ПО
    ШтатныеДолжности.Владелец



LexaK да , у меня так и есть, для каждого места (должности) свой элемент справочника (специфика такая: например не зам.нач.кафедры - а зам.нач.22 кафедры - и это уникальное значение). Спасибо за код по подсчету общего количества. Но проблема в том, как объединить эти запросы для формирования отчета в СКД:
1. Подсчет общего количества должностей.
2.Подсчет количества занятых должностей.
3. Вычесть одно из другого.
Чтобы получить макет с колонками таблицы (во вложении без колонок "Общее количество" и "Количество занятых") в которой эти данные будут прописываться? Сейчас колонка только с количеством вакантных должностей..

Оффлайн LexaK

  • *****
  • Сообщений: 2369
  • РЕПУТАЦИЯ: 706
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
так вот же выложил вам запрос, просто вставьте в СКД, в ресурсах просуммируйте колонки Место, Занято, Свободно
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение_ВК
    ШтатныеДолжности.Ссылка КАК Должность,
    1 как Место, //место по расписанию
   
Выбор Когда ПослужнойСписокСрезПоследних.Должность ЕСТЬ NULL
    Тогда 0 Иначе 1
    Конец как Занято,

Выбор Когда ПослужнойСписокСрезПоследних.Должность ЕСТЬ NULL
    Тогда 1 Иначе 0
    Конец как Свободно
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПослужнойСписок.СрезПоследних КАК ПослужнойСписокСрезПоследних
        ПО (ПослужнойСписокСрезПоследних.Должность = ШтатныеДолжности.Ссылка)
ГДЕ
    ШтатныеДолжности.КлассификацияДолжности = ЗНАЧЕНИЕ(Перечисление.КлассификацияДолжности.Военная)
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)

Оффлайн Алексей_1985_06

  • ***
  • Сообщений: 148
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2019-09-01
  • Сайт: 
  • Профессия: Ученик 1С
еще раз, нужно штатное расписание
одной и той-же должности на разных кафедрах может быть разное количество мест,
например Замов может быть и 2 и 3 и много
конечно если вы распишите
Зам1,Зам2,Зам3,Зам4,Зам5,... - для каждого места свой элемент справочника (!!!)
тогда просто считайте количество элементов, примерно так
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение,
    Количество(1) как КоличествоДолжностей
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
сгруппировать по
    ШтатныеДолжности.Владелец
получите общее количество должностей по каждому подразделению (п.п.1)
(не понятно тогда как разбивать на должности - Зам, Инструктор, Препод)


Добавлено: 05 Янв 2021, 13:33

или такой запрос используйте, поместите в СКД, просуммируйете ресурсы Место и МестоЗанято, получите между ними разность -- МестоСвободно
ВЫБРАТЬ
    ШтатныеДолжности.Владелец КАК Подразделение_ВК
    ШтатныеДолжности.Ссылка КАК Должность,
1 как Место, //место по расписанию
Выбор Когда ПослужнойСписокСрезПоследних.Должность ЕСТЬ NULL
Тогда 0 Иначе 1
Конец как МестоЗанято
ИЗ
    Справочник.ШтатныеДолжности КАК ШтатныеДолжности
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПослужнойСписок.СрезПоследних КАК ПослужнойСписокСрезПоследних
        ПО (ПослужнойСписокСрезПоследних.Должность = ШтатныеДолжности.Ссылка)
ГДЕ
    ШтатныеДолжности.КлассификацияДолжности = ЗНАЧЕНИЕ(Перечисление.КлассификацияДолжности.Военная)
УПОРЯДОЧИТЬ ПО
    ШтатныеДолжности.Владелец



LexaK да , у меня так и есть, для каждого места (должности) свой элемент справочника (специфика такая: например не зам.нач.кафедры - а зам.нач.22 кафедры - и это уникальное значение). Спасибо за код по подсчету общего количества. Но проблема в том, как объединить эти запросы для формирования отчета в СКД:
1. Подсчет общего количества должностей.
2.Подсчет количества занятых должностей.
3. Вычесть одно из другого.
Чтобы получить макет с колонками таблицы (во вложении без колонок "Общее количество" и "Количество занятых") в которой эти данные будут прописываться? Сейчас колонка только с количеством вакантных должностей..

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

УПОРЯДОЧИТЬ ПО
ШтатныеДолжности.Владелец

Оффлайн LexaK

  • *****
  • Сообщений: 2369
  • РЕПУТАЦИЯ: 706
  • КПД: 30%
  • Регистрация: 2012-05-16
  • Сайт: 
  • Профессия: Программист 1С
Цитировать
чтоб посчитать количество занятых должностей?
на закладке Ресурсы
Сумма(ДолжностьЗанята) - это и будет количество занятых должностей в разрезе группировок
Помогло? - Нажми СПАСИБО (под аватаром) !!!
                       :)


Теги:
 

Помогите выразить код Объект.Наименование = Объект.Подразделение + " " + Объект.Должность + " " + Объект.ФизическоеЛицо через строки.

Автор LedgikРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1298
Последний ответ 05 Мар 2019, 19:28
от Ledgik
Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 6964
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите правильно настроить справочник "Единицы измерения" и "Номенклатура"

Автор perminovandrРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1601
Последний ответ 23 Янв 2019, 07:21
от Геннадий ОбьГЭС
На фото демонстрируется личная карточка сотрудника, но во столбце "ЗА ЯКИЙ ПЕРІОД " не показывает ничего, как это можно решить, помогите пожалуйста

Автор cBeginnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 1759
Последний ответ 26 Июл 2018, 17:44
от alex0402
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7340
Последний ответ 07 Сен 2010, 12:01
от mohock

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

LexaK
49 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
28 Сообщений
prolog
25 Сообщений
Алексей_1985_06
25 Сообщений
antoneus antoneus
24 Сообщений
vadim10121995
23 Сообщений
DmitriyF DmitriyF
16 Сообщений
alexandr_ll
16 Сообщений
altair2019
6 Сообщений
Maximilianus
6 Сообщений

* Кто онлайн

  • Точка Гостей: 309
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal