|
Вытащить даты приема и увольнения при перегрузке сотрудников с помощью OLE | ☑ | ||
---|---|---|---|---|
0
Дмитрий_71
26.12.11
✎
14:00
|
Добрый день! Подскажите как вытащить даты приема и увольнения, я перегружаю обработкой в восьмерку.. В семерке не разбираюсь...
|
|||
1
Amra
26.12.11
✎
14:04
|
Еще один... Если не разбираешься, накуя полез? Решил бабла перед НГ срубить по легкому?
|
|||
2
BuHu
26.12.11
✎
14:10
|
(1) ну а чо бы и нет , щас придет Vladal и все напишет за него )))
|
|||
3
Дмитрий_71
26.12.11
✎
14:13
|
вообще то мне не во что семерка не упиралась я работаю с восьмеркой, а нужно перегрузить данные из семерки..
|
|||
4
BuHu
26.12.11
✎
14:19
|
(3) судя по всему всетаки уперлась ) . показывай как делаешь , что не получается
|
|||
5
Дмитрий_71
26.12.11
✎
14:25
|
ну вот я подключчаюсь к семерке
СпрСотрудники77 = V7.CreateObject("Справочник.Сотрудники"); //Проверка на наличие элементов в справочнике "Сотрудники" v7 Если СпрСотрудники77.ВыбратьЭлементы() = 0 Тогда Сообщить("Ошибка выбора элементов"); Возврат; КонецЕсли; //Запускаем цикл по элементам справочника "Сотрудники" v7 Пока СпрСотрудники77.ПолучитьЭлемент()=1 Цикл ОбработкаПрерыванияПользователя(); //Пропускаем группы справочников V7 Если СпрСотрудники77.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; |
|||
6
Дмитрий_71
26.12.11
✎
14:26
|
получаю справочник сотрудники..как я понял даты нельзя вытащить из сотрудников...надо как то обратиться к документу ПриемНаРаботу..
|
|||
7
Дмитрий_71
26.12.11
✎
14:29
|
все остальное я возьму из справочника сотрудники..мне только даты приема и увольнения как то вытащить..
|
|||
8
BuHu
26.12.11
✎
14:37
|
(7) это ЗиК ?, у меня нет его под рукой , посмотри может есть все таки в справочнике такие реквизиты
|
|||
9
BuHu
26.12.11
✎
14:38
|
если нету то запрос\выборка к документам с условием по сотруднику
|
|||
10
Amra
26.12.11
✎
14:39
|
+(8) Но они там периодические, получать их типа СпрСотрудники77.ДатаПриема.Получить(ДатаОтчета)
|
|||
11
BuHu
26.12.11
✎
14:41
|
+(10) или СпрСотрудники77.ИспользоватьДату(Дата)
|
|||
12
Дмитрий_71
26.12.11
✎
14:47
|
да дело в том что их там совсем нету(( да это ЗиК, с периодическими реквизитами я разобрался, если бы они были бы, то без проблем...
|
|||
13
BuHu
26.12.11
✎
14:53
|
(12) ну пиши тогда запрос к документам с условием по сотруднику
|
|||
14
Дмитрий_71
26.12.11
✎
14:53
|
вот есть функция которая в форме списка справочника сотрудники показывается состояние с датой
|
|||
15
Дмитрий_71
26.12.11
✎
14:53
|
Функция СостояниеСотрудника()
Перем ОписаниеСостояния; Если (ПустоеЗначение(ТекущийЭлемент())=1)или(ЭтоГруппа()=1) Тогда Возврат "" КонецЕсли; ДатаПриема = Дата(0); ДатаУвольнения = Дата(0); ДатаАктуальности = ИспользоватьДату(); Периодический.ИспользоватьОбъект("СостояниеФизлица",ТекущийЭлемент()); СостояниеФЗ = Периодический.ЗначениеНаДату(ДатаАктуальности); Если ПустоеЗначение(СостояниеФЗ)=0 Тогда Если Периодический.НайтиЗначение(ДатаАктуальности,-1)=1 Тогда ДатаПриема = Периодический.ДатаЗнач КонецЕсли; Если Периодический.НайтиЗначение(ДатаАктуальности+1,1)=1 Тогда ДатаУвольнения = Периодический.ДатаЗнач-1 КонецЕсли; Если ТекущийЭлемент().ОсновнойЭлемент<>ТекущийЭлемент() Тогда ОписаниеСостояния = "Внутреннее совместительство"; Если СостояниеФЗ=Перечисление.СостояниеФизлица.ВременноНеРаботает Тогда ОписаниеСостояния = "Внутреннее совмест-во, временно не работает"; КонецЕсли; ИначеЕсли СостояниеФЗ=Перечисление.СостояниеФизлица.СотрудникОсновной Тогда ОписаниеСостояния = "Штатный сотрудник"; //************ нмк показывать правильную дату приема ********************* // ПриказОПриеме=глПриказПоСотруднику(ТекущийЭлемент(),ДатаАктуальности,"ПриказОПриемеНаРаботу"); Если (ПустоеЗначение(ПриказОПриеме)=0) Тогда ДатаПриема=ПриказОПриеме.ДатаПриема; КонецЕсли; //******************************************************* ИначеЕсли СостояниеФЗ=Перечисление.СостояниеФизлица.СотрудникНеосновной Тогда ОписаниеСостояния = "Внешний совместитель"; ИначеЕсли СостояниеФЗ=Перечисление.СостояниеФизлица.Госслужащий Тогда ОписаниеСостояния = "Государственный служащий"; ИначеЕсли СостояниеФЗ=Перечисление.СостояниеФизлица.ВременноНеРаботает Тогда ОписаниеСостояния = "Временно не работает"; Иначе ОписаниеСостояния = "Военнослужащий"; КонецЕсли; Возврат ОписаниеСостояния+" с "+ДатаПриема+?(ПустоеЗначение(ДатаУвольнения)=1,""," по "+ДатаУвольнения) Иначе Периодический.ОбратныйПорядок(); Периодический.ВыбратьЗначения(,ДатаАктуальности); Пока Периодический.ПолучитьЗначение()=1 Цикл Если ПустоеЗначение(Периодический.Значение)=1 Тогда Возврат "Сотрудник уволен "+(Периодический.ДатаЗнач-1) КонецЕсли; КонецЦикла; КонецЕсли; Если ОсновнойЭлемент=ТекущийЭлемент() Тогда Если глВидРасчетаДействует(ОсновнойЭлемент,,ДатаАктуальности,ДатаАктуальности)=1 Тогда Возврат "Физическое лицо, получающее доход на предприятии (договорник)"; Иначе Возврат "Физическое лицо" КонецЕсли; Иначе Возврат "Не принят на внутреннее совместительство" КонецЕсли; КонецФункции // СостояниеСотрудника |
|||
16
Дмитрий_71
26.12.11
✎
14:54
|
только до конца не пойму как берутся даты
|
|||
17
Amra
26.12.11
✎
14:55
|
(16) ДатаАктуальности = ИспользоватьДату(); А потом все на эту дату актуальности и получают. Что непонятно?
|
|||
18
Дмитрий_71
26.12.11
✎
14:57
|
мне не понятен объект "периодический":
Если Периодический.НайтиЗначение(ДатаАктуальности,-1)=1 Тогда ДатаПриема = Периодический.ДатаЗнач КонецЕсли; Если Периодический.НайтиЗначение(ДатаАктуальности+1,1)=1 Тогда ДатаУвольнения = Периодический.ДатаЗнач-1 КонецЕсли; |
|||
19
BuHu
26.12.11
✎
14:57
|
(18) попробуй V7.Периодический
|
|||
20
Дмитрий_71
26.12.11
✎
15:00
|
Вот получилось его создать
V7.CreateObject("Периодический") |
|||
21
Дмитрий_71
26.12.11
✎
15:00
|
Периодический77 = V7.CreateObject("Периодический");
|
|||
22
Дмитрий_71
26.12.11
✎
15:11
|
уррра! всё получилось)) спасибо за помощь!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |