|
1с8 ЗУК программный вывод списка сотрудников почему задваиваются сотрудники | ☑ | ||
---|---|---|---|---|
0
VBMADD
27.06.14
✎
12:11
|
Привет братьям по разуму.
Пытаюсь вывести список сотрудников по коду: // Пока ВыборкаСотрудник.Следующий() Цикл Если ВыборкаСотрудник.ЭтоГруппа Тогда Иначе Объект_ФЛ = ВыборкаСотрудник.ФизЛицо.ПолучитьОбъект(); Если (ВыборкаСотрудник.Актуальность = Истина) и (ВыборкаСотрудник.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.ТрудовойДоговор) Тогда Псп = РегистрыСведений.ПаспортныеДанныеФизЛиц.ПолучитьПоследнее(РабочаяДата, Новый Структура("ФизЛицо",ВыборкаСотрудник.ФизЛицо)); ФИО = ВыборкаСотрудник.Наименование; Должность = ВыборкаСотрудник.Должность.Наименование; Подразделение = ВыборкаСотрудник.ПодразделениеОрганизации.Наименование; Сообщить(Строка(i) + " ФИО = " + ФИО + " = " + ВыборкаСотрудник.ВерсияДанных); i=i+1; КонецЕсли; КонецЕсли; КонецЦикла; // Почему-то в списке иногда некоторые сотрудники присутствуют дважды и даже трижды, причем табельный номер у двойников тот же самый. Может кто знает, подскажите пож-ста ... Спасибо всем, кто откликнулся. |
|||
1
Umga2002
27.06.14
✎
12:12
|
Не зная броду полез в воду....
|
|||
2
piter3
27.06.14
✎
12:12
|
дубли физ.лиц не?
|
|||
3
SeraFim
27.06.14
✎
12:13
|
Условие соединения в запросе корявое
|
|||
4
РенеДекарт
27.06.14
✎
12:18
|
(0) по разным организациям выводит?
|
|||
5
ptiz
27.06.14
✎
12:31
|
(0) Запрос значит такой.
|
|||
6
VBMADD
27.06.14
✎
13:02
|
Организация одна, но ВыборкаСотрудник.ВерсияДанных у задвоенного сотрудника - разная, выводит типа
че это означает AAAAAQAAAPQ= не ясно, и как этим воспользоваться, чтобы избежать задвоения 43 ФИО = Варрова Алиса Валерьевна = AAAAAQAAAPQ= 44 ФИО = Варрова Алиса Валерьевна = AAAAAQAAASU= // СпрСотрудники = Справочники.СотрудникиОрганизаций; ВыборкаСотрудник = СпрСотрудники.Выбрать(); Пока ВыборкаСотрудник.Следующий() Цикл Если ВыборкаСотрудник.ЭтоГруппа Тогда Иначе Если (ВыборкаСотрудник.Актуальность = Истина) и (ВыборкаСотрудник.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.ТрудовойДоговор) Тогда ФИО = ВыборкаСотрудник.Наименование; Должность = ВыборкаСотрудник.Должность.Наименование; Подразделение = ВыборкаСотрудник.ПодразделениеОрганизации.Наименование; Сообщить(Строка(i) + " ФИО = " + ФИО + " = " + ВыборкаСотрудник.ВерсияДанных); i=i+1; КонецЕсли; КонецЕсли; КонецЦикла; // |
|||
7
ale-sarin
27.06.14
✎
13:03
|
(6) Так может это и есть два сотрудника?
Глазами в справочнике их сколько? |
|||
8
VBMADD
27.06.14
✎
13:06
|
(7) десительно, в справочнике два, но табельный номер один и тот же, вот так.
Как их тогда различать то не понятно |
|||
9
VBMADD
27.06.14
✎
13:07
|
Только поле принят разное
|
|||
10
ale-sarin
27.06.14
✎
13:07
|
(8) прав был (1).
Есть вид занятости - он разный. Если же вид занятости одинаковый, значит один из них уволен. |
|||
11
шаэс
27.06.14
✎
13:09
|
(10) (даже если вид занятости - внутренний совместитель?)
|
|||
12
ale-sarin
27.06.14
✎
13:11
|
(11) Пытаетесь меня поймать?))
Если есть внутренний, значит второй - основной. |
|||
13
ale-sarin
27.06.14
✎
13:13
|
(8) Как различать? По идее номер трудового договора должен быть разный. Если, конечно, кадровики не забивали на него.
|
|||
14
VBMADD
27.06.14
✎
13:15
|
Нет, видЗанятости у всех - Основное место работы
|
|||
15
шаэс
27.06.14
✎
13:16
|
(12) (не, не поймать. просто внутренних одновременно может быть больше, чем один работающий)
а смысла задания я не понимаю - вывести всех сотрудников? тогда выводить надо всех, кто не уволен. вывести только основных сотрудников? тогда (основной или внешний)+не уволен |
|||
16
VBMADD
27.06.14
✎
13:18
|
(13) точно, номер трудового договора разный и дата трудового договора разная
|
|||
17
ale-sarin
27.06.14
✎
13:18
|
(14) Задача то в чем?
Если в базе порядок, то один из этих двоих точно уволен. (12)Ок. Но в (6) два сотрудника. И (опять же если в базе порядок) не могут быть оба внутренними. |
|||
18
VBMADD
27.06.14
✎
13:23
|
В кадровых данных обнаружил, кадровые перемещения, может это влияет как то.
А таб.номер, группа сотрудника, вид занятости, не в архиве - все одинаковое |
|||
19
шаэс
27.06.14
✎
13:23
|
(17) (я дико извиняюсь за офф перед ТС, но мне все-таки интересно почему не могут быть оба работающих сотрудника внутренним совместителем?)
|
|||
20
VBMADD
27.06.14
✎
13:23
|
Подразделение и должность - все совпадает
|
|||
21
шаэс
27.06.14
✎
13:24
|
(18) не может быть одновременно два работающих основных сотрудника. кто-то уволен
|
|||
22
ale-sarin
27.06.14
✎
13:27
|
(19) Я имею ввиду, что если работник работает по внутреннему совместительству, значит он еще работает в этой же организации и по основному месту работы.
И если он имеет два действующих договора с организацией, и один из по внутреннему совместительству, для меня очевидно, что второй - по основному месту работы. |
|||
23
ale-sarin
27.06.14
✎
13:28
|
(18) Дата приема и дата увольнения какие?
|
|||
24
VBMADD
27.06.14
✎
13:29
|
Вот мне тоже интересно, как это получается, что сотрудник с одним и тем же таб.номером в одном и том же подразделении, организации и в той же должности и с тем же видом занятости и не уволен и в списке дважды. Только в графе Принят в одном случае стоит 01.08.2012, а в другом 01.08.2013
|
|||
25
шаэс
27.06.14
✎
13:30
|
(24) а откуда знаете, что не уволен? документа увольнения не видите?
|
|||
26
VBMADD
27.06.14
✎
13:36
|
Которые уволенные - те находятся в архиве и у них должен быть реквизит ВыборкаСотрудник.Актуальность = Лож
|
|||
27
VBMADD
27.06.14
✎
13:39
|
Т.Е. получается что перезаключил человек трудовой договор без увольнения и почему то стало две записи в списке сотрудников
|
|||
28
VBMADD
27.06.14
✎
13:44
|
Не был не прав, есть дата увольнения у первого из двух,
а я считал, что реквизит ВыборкаСотрудник.Актуальность = Лож и есть признак увольнения сотрудника |
|||
29
шаэс
27.06.14
✎
13:51
|
(28) (актуальность - это для удобства пользователя. дабы глаза не мозолил. и автоматом уволенный сотрудник (в рамках типовой) в архив не уходит). а так есть ДатаУвольнения - надежнее вроде признака нет
|
|||
30
VBMADD
27.06.14
✎
13:54
|
(29)Реквизит Актуальность - просто запись не находится в архиве.
Бухгалтерша должна после увольнения сотрудника переносить его в архив, но не перенесла, отсюда и вся путаница. Пож-ста, Напиши строку как узнать, что сотрудник работает по ДатаУвольнения, если не трудно |
|||
31
ale-sarin
27.06.14
✎
13:57
|
(30) Сотрудник.ДатаУвольнения
|
|||
32
Segate
27.06.14
✎
14:01
|
Ловите наркомана!
(0) перепиши запрос минимум добавь параметрs Сотрудник.ЭтоГруппа = ЛОЖЬ (ВыборкаСотрудник.Актуальность = Истина) и (ВыборкаСотрудник.ВидДоговора = Перечисления.ВидыДоговоровСФизЛицами.ТрудовойДоговор) И это тоже в запрос засунь И посмотри что у тебя выборка дает. Найди в чем косяки и исправь Еще один уникум со стажем 7 лет |
|||
33
VBMADD
27.06.14
✎
14:01
|
(31) типа что ли Сотрудник.ДатаУвольнения = ПустоеЗначение?
|
|||
34
VBMADD
27.06.14
✎
14:03
|
(32) не обзывайся пож-ста, седнятоко первый раз открыл конфигурацию 1с8
|
|||
35
VBMADD
27.06.14
✎
14:05
|
(32) а у тебя Стаж: 6 лет 2 месяца 11 дней
|
|||
36
Segate
27.06.14
✎
14:09
|
(35) и я таких дурных выборок не делаю. =)
|
|||
37
Segate
27.06.14
✎
14:10
|
(35) запрос покажи
|
|||
38
VBMADD
27.06.14
✎
14:11
|
(36) и это уже положительный момент, лично мне так катца...
|
|||
39
Segate
27.06.14
✎
14:16
|
(38)
"Выбрать Сотрудники.ссылка Из Справочники.сотрудники как сотрудники Где Сотрудники.ЭтоГруппа = ЛОЖЬ И Сотрудники.Актуальность = Истина И Сотрудники.ВидДоговора =&ВидДоговора//тут я бы через ЗНАЧЕНИЕ сделал, но синтаксис не помню, в конструкторе посмотри. ну или передавай параметр И в выборку просто запрос.выполнить().выбрать() |
|||
40
VBMADD
27.06.14
✎
14:18
|
просто добавил условие на работющего сотрудника
// (ВыборкаСотрудник.ДатаУвольнения-ВыборкаСотрудник.ДатаПриемаНаРаботу) < 0 // Задвоения закончились... Всем спасибо за приятное общение |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |