Имя: Пароль:
1C
1С v8
УПП 1.3, добавление отбора сотрудника в запрос
0 falselight
 
01.12.16
12:01
Делаю запрос с отбором подразделений, подразделений организаций, выбором ПорядокВОтчетеТЗ, из РС значения свойств.
Как в данный запрос увязать правильно отбор сотрудников, с выводом ссылок на них и физических лиц. Пока связь не получается правильно задать.

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

УПОРЯДОЧИТЬ ПО
    ЗначенияСвойствОбъектов.Значение
1 h-sp
 
01.12.16
12:04
(0) пользуйся типовым отчетом СписокСотрудниковОрганизаций. Зачем лепить какую-то фигню, когда всё уже давно придумано и работает?
2 falselight
 
01.12.16
12:07
(1) Неплохая сборка, но.
Там выводятся подразделения организации
Мне нужно выводить Подразделения (в иерархии физических лиц).
Я вот связал, отобрал, как сейчас сюда правильно приципить сотрудников?
Всего то....
3 falselight
 
01.12.16
12:15
Запрос этот для отчета фонд оплаты труда и там нужны именно подразделения
4 falselight
 
01.12.16
12:34
P.S. подразделения организации подвязаны к подразделению через табличную часть, которая ссылается на регистр сведений
5 SergTheGreat
 
01.12.16
12:36
У сотрудника же есть реквизиты "ТекущееПодразделениеОрганизации" и "ТекущееПодразделениеКомпании" по ним и связывай/отбирай.

P.S. Не используй "ПодразделениеОрганизации" - это куда сотрудник был принят, а тебе нужно именно "Текущее...".
6 falselight
 
01.12.16
12:39
(5) Мне нужно в выборке получить:
1. Подразделение (Не Подразделение организации).
2. Физическое лицо в нем состоящее

для этого приходится увязывать РС, и справочник сотрудников организаций
7 falselight
 
01.12.16
12:41
(5) ТекущееПодразделениеКомпании, видимо да подойдет, оно типа справочник подразделения
8 falselight
 
01.12.16
12:43
(5) такой запрос выдает сверх кривую выборку (

ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение КАК ПорядокВОтчетеТЗ,
    Подразделения.Код КАК КодПодрОрг,
    Подразделения.Ссылка КАК ПодрОрг,
    СоответствиеПодразделенийИПодразделенийОрганизаций.ПодразделениеОрганизации.Код,
    СоответствиеПодразделенийИПодразделенийОрганизаций.ПодразделениеОрганизации,
    СоответствиеПодразделенийИПодразделенийОрганизаций.Организация,
    СотрудникиОрганизаций.Ссылка,
    СотрудникиОрганизаций.Физлицо
ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Подразделения КАК Подразделения
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
            ПО Подразделения.Ссылка = ЗначенияСвойствОбъектов.Объект
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоответствиеПодразделенийИПодразделенийОрганизаций КАК СоответствиеПодразделенийИПодразделенийОрганизаций
            ПО Подразделения.Ссылка = СоответствиеПодразделенийИПодразделенийОрганизаций.Подразделение
        ПО СотрудникиОрганизаций.ТекущееПодразделениеКомпании = Подразделения.Ссылка

УПОРЯДОЧИТЬ ПО
    ЗначенияСвойствОбъектов.Значение
9 SergTheGreat
 
01.12.16
12:59
Во-первых, убери все лишнее:
ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Значение КАК ПорядокВОтчетеТЗ,
    СотрудникиОрганизаций.ТекущееПодразделениеКомпании.Код КАК КодПодр,
    СотрудникиОрганизаций.ТекущееПодразделениеКомпании КАК Подр,
    СотрудникиОрганизаций.ТекущееПодразделениеОрганизации.Код КАК КодПодрОрг,
    СотрудникиОрганизаций.ТекущееПодразделениеОрганизации КАК ПодрОрг,
    СотрудникиОрганизаций.Организация,
    СотрудникиОрганизаций.Ссылка,
    СотрудникиОрганизаций.Физлицо
ИЗ
    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        ПО СотрудникиОрганизаций.ТекущееПодразделениеКомпании = ЗначенияСвойствОбъектов.Объект

УПОРЯДОЧИТЬ ПО
    ЗначенияСвойствОбъектов.Значение

Во-вторых, добавь условие какое именно доп. свойство тебе нужно:
ГДЕ ЗначенияСвойствОбъектов.Значение = ...
10 SergTheGreat
 
01.12.16
13:00
Упс, в условии ЗначенияСвойствОбъектов.СВОЙСТВО конечно!
11 falselight
 
01.12.16
13:09
(5)(10) Дело в том что у сотрудников не заполнено ТекущееПодразделениеКомпании (((

Как оно заполняется? Самостоятельно? Откуда узнавать чем заполнить? Если это автоматически не делается.
12 DrShad
 
01.12.16
13:12
подразделение заполняется кадровыми документами
13 falselight
 
01.12.16
13:14
(12) тут вот какая особенность
отчет сотрудники почти ничего не выводит
потому что не сделаны (и не будут сделаны) документы приема на работу в КОМПАНИЮ (не организацию)

то есть это нужно будет делать только автоматически если использовать этот реквизит

Кроме (12) есть варианты это сделать?
14 falselight
 
01.12.16
13:31
(13) вывести на форму, да пусть в ручную заполняют
или каким алгоритмом пройтись раз
15 SergTheGreat
 
01.12.16
13:32
(13) Можно связать (как ты уже пытался) справочник СотрудникиОрганизаций с регистром СоответствиеПодразделенийИПодразделенийОрганизаций, только через реквизит ТекущееПодразделениеОрганизации, а не через справочник Подразделения.
Но не забудь что соответствие подразделений НЕ 1 к 1.
16 SergTheGreat
 
01.12.16
13:38
(13) А на будущее можно сделать обработку, которая автоматом заполнит ТекущееПодразделениеКомпании по ТекущееПодразделениеОрганизации, если есть их однозначное соответствие. А если нет, то вывести таких сотрудников в ТЧ обработки и заполнить ТекущееПодразделениеКомпании вручную.
17 falselight
 
01.12.16
13:56
(16) Понятно! То есть попробовать автоматически заполнить используя ТекущееПодразделениеОрганизации.

Ок! Попробую если получится.

(15) да заметил, все искривляется, как начинаешь связывать.
18 falselight
 
01.12.16
13:59
(15) там соответствие что у одного подразделения
может быть несколько подразделений организаций
по каждой организации

тогда в выборке указывать ещё организацию

тогда должно выбрать же?
19 SergTheGreat
 
01.12.16
14:10
(18) Справочник ПодразделенияОрганизаций подчинен справочнику Организации, поэтому наличие измерения Организация в регистре - очередная избыточность УПП.
Если укажешь отбор по Организации, то с точки зрения 1С хуже не будет, а вот СУБД придется дернуть еще одну таблицу :-)
20 falselight
 
01.12.16
14:37
(19) Но тогда как выбрать??? Если в регистре лежит подразделение 4 раза, и по разу 4 разных подразделений орагнизации ? Как если не указать ещё организацию, отобрать правильно? Разрезы и сделаны что бы по ним делать отбор.

Остается тогда заполнение ТекущегоПодразделенияКомпании рассматривать в ручную.
21 falselight
 
02.12.16
08:31
(19) подскажите на предмет правильности выборки, установки соответствия подразделения
а то выборка отработала, но там говорят один сотрудник, не в то подразделение попал, я и не пойму что тут можно предпринять
||

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

УПОРЯДОЧИТЬ ПО
    ЗначенияСвойствОбъектов.Значение
22 SergTheGreat
 
02.12.16
10:39
(20) Уф, уходим мы от темы ветки, да ладно... пятница :-)
Предположим есть подразделение "Бухгалтерия" и 2 организации: ООО "Роза" с подчиненными подразделениями организации, среди которых "БухгалтерияРозы" и ЗАО "Ирис", у которого также есть подразделение организации "БухгалтерияИриса". Теоретически в регистре "СоответствиеПодразделенийИПодразделенийОрганизаций" возможны все комбинации данных измерений:
1. Бухгалтерия  ООО "Роза"   БухгалтерияРозы
2. Бухгалтерия  ЗАО "Ирис"   БухгалтерияИриса
3. Бухгалтерия  ООО "Роза"   БухгалтерияИриса
4. Бухгалтерия  ЗАО "Ирис"   БухгалтерияРозы
Но практически понятно, что только первые 2 будут корректными (кстати, последние 2 записи могут появится в УПП только программным путем).
Теперь пусть есть сотрудник "Иванов И.И.", у которого ТекущееПодразделениеОрганизации = БухгалтерияРозы. Чтобы определить для него подразделение, достаточно сделать отбор в реестре только по подразделению организации, поскольку записи №4 в правильно заполненном регистре быть не может.
Как я уже писал (19) отбор по организации ошибкой не будет. Выбор между надежностью и производительностью за тобой.
23 SergTheGreat
 
02.12.16
10:46
(21) Перечитай (5)
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн