Имя: Пароль:
1C
1С v8
уровень группы справочника
,
0 matri555
 
27.10.13
15:09
подскажите пожалуйста как в отчете вывести принадлежность к определенной группе . Есть справочник Подразделений 2 уровень группировки названия подразделений , дальше уровни по структуре как сделать проверку на принадлежность ко 2- му уровню
1 matri555
 
27.10.13
15:17
ПоказатьУровеньГруппировокСтрок(УровеньГруппировки); помогает тлько при выводе справочника а как проверить на принадлежность к уровню группировки при запросе
2 Wobland
 
27.10.13
15:39
выбор когда в иерархии тогда истина как принадлежит
3 matri555
 
27.10.13
15:41
а если под ним еще несколько уровней вопрос как отловит именно уровень 1 в запросе
4 Classic
 
27.10.13
15:42
Уроыни сверху или снизу считаются?
5 Classic
 
27.10.13
15:42
Ну типа та папака что в корне - это первый уровень?
6 Wobland
 
27.10.13
15:42
(3) когда родитель.родитель=нулл и родитель<>нулл
7 matri555
 
27.10.13
15:48
есть справочник подразделений -четыре подразделения внутри каждого своя структура как в запросе при проверке на 1 е и последнее число  месяца определить нет ли изменений к принадлежности к 1 группе если есть перемещения внутри группы это не надо надо только перемещение между группами 1 уровня (ЗУП)
8 Wobland
 
27.10.13
15:52
смотришь на родителя до, смотришь на родителя после, делаешь выводы. вопрос в чём?
9 matri555
 
27.10.13
15:55
вопрос в том что под родителем до 4 уровней при выводе в запросе родитель.родитель и родитель.родитель.родитель получается полная Ж...........
10 Wobland
 
27.10.13
15:59
подожди, а что, принадолежность группе внезапно стала периодической?
11 Wobland
 
27.10.13
16:03
опять студент придумал ересь, впёрся в тупик и загрустил
12 matri555
 
27.10.13
16:05
в смысле периодической ????? перевод между  группами т.е. есть предприятие в составе 3 завода перевод с одного завода на 2-й
13 Wobland
 
27.10.13
16:06
(12) перевод сотрудника или изменение принадлежности подразделения?
14 matri555
 
27.10.13
16:08
да
15 Wobland
 
27.10.13
16:09
(14) отлично. начинай формулировать всё сначала да не забудь вставить фото в ЛК
16 matri555
 
27.10.13
16:11
в типовой изменение подразделения подразумевает проверку на начало месяца а нужна проверка на текущий месяц перевода извините за нерозъяснение (а фото по поводу лоха в студию)
17 Wobland
 
27.10.13
16:13
(16) неудача. задай вопрос ещё раз, с самого начала
18 matri555
 
27.10.13
16:22
есть предприятие - внутри 3 завода - на каждом заводе свой табельщик - при выводе отчета о среднесписочной численности каждый табельщик показывает что человек при переходе с одного завода на другой у одного табельщика ушел у другого пришел т.е. не просто устроился на работу, а перешел, В типовой только прием-увольнение перевод между подразделениями не работает.Как запросить принадлежность к 1уровню "сверху" справочника "Подразделения организации" при запросе родитель.родитель и родитель.родитель.родитель уровни считаются снизу.
19 Песец
 
27.10.13
16:26
Как-то так:


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Контрагенты.Ссылка
|ИЗ
|    Справочник.Контрагенты КАК Контрагенты
|ГДЕ
|        ВЫБОР
|            КОГДА Контрагенты.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                ТОГДА ЛОЖЬ //корень
|            ИНАЧЕ ВЫБОР
|                    КОГДА Контрагенты.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                        ТОГДА ложь // 1 уровень
|                    ИНАЧЕ ВЫБОР
|                        КОГДА Контрагенты.Родитель.Родитель.родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                        ТОГДА истина  //2 (нужный) уровень
|                        иначе
|                        ЛОЖЬ  //уровни больше 2 ненужные
|                КОНЕЦ
|                    
|                КОНЕЦ
|            КОНЕЦ";

Результат = Запрос.Выполнить();
20 Песец
 
27.10.13
16:28
(19+) Буду признателен, если кто-то подскажет менее корявый способ.
21 matri555
 
27.10.13
16:28
ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    ПодразделенияОрганизаций.Родитель,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Родитель.Родитель
ИЗ
    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
        ПО РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации = ПодразделенияОрганизаций.Ссылка
ГДЕ
    РаботникиОрганизацийСрезПоследних.Период <= &Дата1
22 Песец
 
27.10.13
16:35
(18) "...при выводе отчета о среднесписочной численности каждый табельщик показывает ..."

Среднесписочная в разрезе табельщиков?!
23 matri555
 
27.10.13
16:38
Да. Я понимаю что в1с табель вообще не рассматривается как документ но у нас как всегда хочу красивый табель и отчеты для плановиков
24 Песец
 
27.10.13
16:52
(23) А зачем тебе "проверку на принадлежность ко 2- му уровню"?
25 matri555
 
27.10.13
16:59
при переходе с одного подразделения во 2-е табельщиви вручную рисуют кол-во прибыл/убыл
26 matri555
 
27.10.13
17:03
при общей статистике не нужно  но плановики табельщикам мозги промывают второй месяц о они естественно мне
27 Песец
 
27.10.13
17:25
...где
РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации в иерархии(&ПапочкаСправочникаПодразделенийИлиСписокПодразделенийНужногоРасчетчика)

?
28 matri555
 
27.10.13
18:27
ВЫБРАТЬ
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,
    РаботникиОрганизацийСрезПоследних.Должность,
    РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        ПО РаботникиОрганизацийСрезПоследних.Сотрудник = СотрудникиОрганизаций.Ссылка
ГДЕ
    РаботникиОрганизацийСрезПоследних.Период >= &Дата1
    И РаботникиОрганизацийСрезПоследних.Период < &Дата2
    И РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ(&Подраз)

Спасибо прошло

только еще один вопрос а как вывести имя группы проверка прошла а название группы -нижний уровень а нужен 2-й
29 Песец
 
27.10.13
18:42
(28) Примерно как в (19) - если родитель родителя не пустая ссылка, то проверяем родителя родителя родителя и т. д., пока не дойдем до пустой ссылки, тогда берем на .родитель меньше, это и будет группа второго уровня.
30 Песец
 
27.10.13
18:55
(29+)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    Контрагенты.Ссылка,
|    ВЫБОР
|        КОГДА Контрагенты.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|            ТОГДА ""Это элемент 1 уровня""
|        ИНАЧЕ ВЫБОР
|                КОГДА Контрагенты.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                    ТОГДА ""Это элемент 2 уровня""
|                ИНАЧЕ ВЫБОР
|                        КОГДА Контрагенты.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                            ТОГДА Контрагенты.Родитель.Родитель
|                        ИНАЧЕ ВЫБОР
|                                КОГДА Контрагенты.Родитель.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|                                    ТОГДА Контрагенты.Родитель.Родитель.Родитель
|                                ИНАЧЕ ""ну и так далее""
|                            КОНЕЦ
|                    КОНЕЦ
|            КОНЕЦ
|    КОНЕЦ КАК РодительВторогоУровня
|ИЗ
|    Справочник.Контрагенты КАК Контрагенты";

Результат = Запрос.Выполнить();
31 ILM
 
гуру
27.10.13
19:26
(28) Так как подразделений немного, то можно выбрать сразу в таблицу подразделение, его родителя и родителя у родителя, а потом используя левое соединение выбрать нужные данные.
32 Песец
 
28.10.13
06:53
(28) Условие лучше в параметры виртуальной таблицы поместить.
33 catena
 
28.10.13
07:43
(28)А для чего соединение в этом запросе?
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
        ПО РаботникиОрганизацийСрезПоследних.Сотрудник = СотрудникиОрганизаций.Ссылка
34 hhhh
 
28.10.13
07:55
(30) не надо ИНАЧЕ ВЫБОР. Просто

   ВЫБОР
|        КОГДА Контрагенты.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|            ТОГДА ""Это элемент 1 уровня""
|        КОГДА Контрагенты.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|            ТОГДА ""Это элемент 2 уровня""
|        КОГДА Контрагенты.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
|            ТОГДА ""Это элемент 3 уровня""
|
35 Песец
 
28.10.13
08:06
(34) Да, что-то я перемудрил :)