Имя: Пароль:
1C
1С v8
ЗУП список работников
0 Coldboy
 
24.12.13
12:40
Здравствуйте. Знаю, что в ЗУПе есть отчет список сотрудников, но мне надо написать свой, хочу понять, откуда надо брать данные, по истории работы сотрудника, прием, уволненьние.. Нашел 2 регистра ПериодыРаботыРаботниковОрганизацийПоОсновномуМестуРаботы
ПериодыРаботыРаботниковОрганизацийПоСовместительству
1 Cube
 
24.12.13
12:43
(0) "хочу понять, откуда надо брать данные"
Ну так бери первичные документы, смотри куда они пишут данные, оттуда и бери...
2 supremum
 
24.12.13
12:44
(0) Например:
регистр сведений РаботникиОрганизаций
регистр накопления ЗанятыеШтатныеЕдиницыОрганизаций
3 Coldboy
 
24.12.13
12:45
(2) регистр сведений работники организаций пуст
щас гляну регистр накопления. там бы дату прием увидеть и уволнения
4 supremum
 
24.12.13
12:50
Вот еще: рег. св. СостояниеРаботниковОрганизаций
5 supremum
 
24.12.13
12:52
В спр. СотрудникиОрганизаций ДатаПриемаНаРаботу ДатаУвольнения
6 piter3
 
24.12.13
12:53
(5) плохой совет
(3)это как пуст. что прием ничего не делат по движениям?
7 Coldboy
 
24.12.13
13:12
(6) пуст.
(3) ошибся, там почемут о я тока приемы вижу, не вижу уволньнение...
8 supremum
 
24.12.13
13:13
(7) Запросом посмотри.
9 rainbow
 
24.12.13
13:17
регистр сведений РаботникиОрганизации (в интерфейсе Кадровая история (по юрлицам)) хранит приём/перемещение/увольнение
10 Coldboy
 
24.12.13
13:29
(9) я не вижу в этом регистре ни одного увольнения ... :(
11 Coldboy
 
24.12.13
13:29
щас буду смотреть.
12 supremum
 
24.12.13
13:30
Можно еще смотреть из каких таблиц берутся данные в запросе отчета "Списки работников организации".
13 KnightAlone
 
24.12.13
13:35
список работников берется по регистру сведений РаботникиОрганизаций, регистраторы у регистра прием, перемещение, увольнение, перенос данных. То есть это регистр чисто по кадровому учету. Если у тебя он пуст, то хз че у тебя там с базой
14 Coldboy
 
24.12.13
14:24
(12) каким образом, если там макет двоичные данные ...
15 supremum
 
24.12.13
14:25
(14) ОсновнаяСхемаКомпоновкиДанных
16 Coldboy
 
24.12.13
14:29
(15) там не то берется, там другой пункт ...
а макет который делает списки сотрудников как двоичные данные оформлен ...
17 supremum
 
24.12.13
14:32
(16) Что не то берется? Именно то, там все есть.

Оттуда:

ВЫБОР КОГДА ВЫБОР КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение) ТОГДА ВЫБОР КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ТОГДА ДОБАВИТЬКДАТЕ(РаботникиОрганизации.ПериодЗавершения, ДЕНЬ, -1) ИНАЧЕ ДОБАВИТЬКДАТЕ(РаботникиОрганизации.Период, ДЕНЬ, -1) КОНЕЦ ИНАЧЕ "-" КОНЕЦ
18 kosts
 
24.12.13
14:33
(16) В двоичных данных забита конкретная схема. Которая в типовых используется для первоначальной инициализации, когда пользователь первый раз отчет запускает. Вроде так. Т.е. ДД в принципе можно не использовать.
19 supremum
 
24.12.13
14:34
+ (17) Как раз кучек запроса по дате увольнения сотрудника
20 Coldboy
 
24.12.13
14:56
(19) че то как то не очень кусок.
21 Coldboy
 
24.12.13
14:57
в принципе решил по регистру сведений работникиорганизации идти, теперь бы запрос, выбрать людей, которые в текущем месяцев не уволились ..., а работают или принялись.
22 supremum
 
24.12.13
15:02
(20) Нормально, вся ЗУП такая. )
Это, кстати, самый правильный способ узнать дату увольнения сотрудника.

(21)
Условие на дату увольнения:
ДатаУвольнения<>ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ
ДатаУвольнения>&КонецМесяца

Условие на дату приема:
ДатаПриема>=&НачалоМесяца
23 Coldboy
 
24.12.13
15:07
ну это именно документы брать ? или регистр сведений колопатить?
24 Coldboy
 
24.12.13
15:08
че-то не могу запрос накидать, чтобы именно им все бралось, никто не подскажет?
25 supremum
 
24.12.13
15:08
(23) Только регистр сведений. Если правильно )
Можно быстро как в (5) :)
26 Coldboy
 
24.12.13
15:12
(25) думаю как в 5 и сделаю )
27 KnightAlone
 
24.12.13
15:17
(21) выбрать людей, которые в текущем месяцев не уволились:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецМесяца, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
    НЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
28 KnightAlone
 
24.12.13
15:18
(21) ввобще по-русски это будет - выбрать всех работающих сотрудников на конец месяца
29 supremum
 
24.12.13
15:20
(27) Не на всех прокатит. Есть еще такая штука как ПериодЗавершения.
30 Coldboy
 
24.12.13
15:21
а как еще сделать в скд, чтобы подаешь период 01.07.2013 по 31.10.2013 он по месяцам еще выводил, тобишь дату разбил на месяца...
31 supremum
 
24.12.13
15:24
(30) Я бы сделал группировку на конец месяца в СКД.
В запросе КОНЕЦПЕРИОДА(<Дата>, <Период>)
32 KnightAlone
 
24.12.13
15:26
(29) ПериодЗавершения - это я так понимаю для тех, кого приняли на определенный срок, то есть дата увольнения еще в приеме известна? У меня таких нет, если у ТС есть, пусть усложняет запрос
33 supremum
 
24.12.13
15:27
(32) Нет, не только.
34 Coldboy
 
24.12.13
15:28
(31) если бы знал, как период который я привел в пример, разбить на месяца, а потом бы уже и выбирал данные, а то чето не очень получается...
35 Coldboy
 
24.12.13
15:28
а потом бы соотвественно уже при выводе дробил бы по месяцам. так и буду в прицнипе делать ...
а еще вопрос а где ПФР,ФСС и ФОМС, ФС НС лежат по струднику в каком регистре?
36 KnightAlone
 
24.12.13
15:31
(33) сделал

ВЫБРАТЬ
    РаботникиОрганизаций.Период,
    РаботникиОрганизаций.Сотрудник,
    РаботникиОрганизаций.ПериодЗавершения,
    РаботникиОрганизаций.Регистратор,
    РаботникиОрганизаций.Организация
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
    РаботникиОрганизаций.ПериодЗавершения >= &ПериодЗавершения

посмотрел регистраторы, там только приемы и перемещения с заполненной датой По. все доки лохматого 2008 и 2009го года, я же говорю - не пользуются
37 KnightAlone
 
24.12.13
15:35
(35) РН "Страховые взносы исчисленные"
38 supremum
 
24.12.13
15:39
(36) Что ж теперь. У меня полторы тысячи таких записей начиная от царя гороха кончая 16-17гг
39 supremum
 
24.12.13
15:40
+(38) Это только по одной базе )
40 supremum
 
24.12.13
15:40
+(39) А таких баз 6 )
41 Coldboy
 
24.12.13
15:42
(37) спасибо уже нашел. так как в СКД мне бы задать период и там он по месяцам сам бы разбил и выбрал данные по месяцам ...
42 Coldboy
 
24.12.13
15:43
Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ
                    |    СотрудникиОрганизаций.Физлицо,
                    |    СтраховыеВзносыИсчисленныеОбороты.ФССНесчастныеСлучаиОборот КАК ФССНС,
                    |    СтраховыеВзносыИсчисленныеОбороты.ФФОМСОборот КАК ФОМС,
                    |    СтраховыеВзносыИсчисленныеОбороты.ФССОборот КАК ФСС,
                    |    СтраховыеВзносыИсчисленныеОбороты.ПФРСтраховаяОборот + СтраховыеВзносыИсчисленныеОбороты.ПФРНакопительнаяОборот КАК ПФР
                    |ИЗ
                    |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
                    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СтраховыеВзносыИсчисленные.Обороты(&НачПериода, &КонПериода, , Организация = &Организация) КАК СтраховыеВзносыИсчисленныеОбороты
                    |        ПО СотрудникиОрганизаций.Физлицо = СтраховыеВзносыИсчисленныеОбороты.ФизЛицо
                    |ГДЕ
                    |    СотрудникиОрганизаций.Организация = &Организация
                    |    И СотрудникиОрганизаций.ПометкаУдаления = ЛОЖЬ
                    |    И КОНЕЦПЕРИОДА(СотрудникиОрганизаций.ДатаПриемаНаРаботу, МЕСЯЦ) <= КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)
                    |    И КОНЕЦПЕРИОДА(СотрудникиОрганизаций.ДатаУвольнения, МЕСЯЦ) > КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)" ;
    Запрос.УстановитьПараметр("Период",Период);
    Запрос.УстановитьПараметр("НачПериода",НачалоМесяца(Период));
    Запрос.УстановитьПараметр("КонПериода",КонецМесяцА(Период));
    Запрос.УстановитьПараметр("Организация",Организация);
    ТЗ = Запрос.Выполнить().Выгрузить();


а то щас так причем Период, это я уже сам разбиваю месяц из указанного диапазона ...
43 KnightAlone
 
24.12.13
15:46
Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
                    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.СтраховыеВзносыИсчисленные


а зачем такая конструкция? Почему сразу не брать из РН? Внетренне соединение тебе даст только те записи, которые есть в РН, так почему сразу оттуда не брать?
44 Coldboy
 
24.12.13
15:49
(43) ступил ... можно и так вопрос с периодом еще открыт в запросе...
45 Coldboy
 
24.12.13
15:50
(43) а нет, по уволимшся в этот месяц тоже будет ФСС и НС, что мне не надо ...
46 KnightAlone
 
24.12.13
15:52
(45) а ну да, там же физ. лицо, а не сотрудник в регистре, попутал