Имя: Пароль:
1C
1C 7.7
v7: Ole Переброс сотрудников ЗИК 2.3
0 Вежливый_Лось
 
22.10.11
11:47
Проблема такая - при переброске сотрудника состояние физлица- не принят на внутреннее совместительство, а нужно чтоб было -физическое лицо
заранее спасибо за помощь!!!
1 CrecerRu
 
22.10.11
11:53
(0) Проверь реквизит ОсновнойЭлемент в сотрудниках. Он скрыт по умолчанию.
2 Вежливый_Лось
 
22.10.11
11:54
проверял уже его тоже заполнил
3 CrecerRu
 
22.10.11
11:58
а реквизит состояние физлица чему равно?
4 Вежливый_Лось
 
22.10.11
11:59
пустое значение
5 CrecerRu
 
22.10.11
11:59
(2) что то ты не договориваешь.

Вот код:
   Если ОсновнойЭлемент=ТекущийЭлемент() Тогда
       Если глВидРасчетаДействует(ОсновнойЭлемент,,ДатаАктуальности,ДатаАктуальности)=1 Тогда
           Возврат "Физическое лицо, получающее доход на предприятии (договорник)";
       Иначе
           Возврат "Физическое лицо"
       КонецЕсли;
   Иначе
       Возврат "Не принят на внутреннее совместительство"
   КонецЕсли;
6 CrecerRu
 
22.10.11
12:00
Не принят на внутреннее совместительство"
   КонецЕсли; когда Осноэлемент <> Текущиму
7 Вежливый_Лось
 
22.10.11
12:05
это я понял пролема что все равно
8 Вежливый_Лось
 
22.10.11
12:06
Осноэлемент = Текущиму а выдает все равно не принят ан внут.. и тд
9 CrecerRu
 
22.10.11
12:08
чудес не бывает. отладчиком проидись. и этот  ревизит заполняться должен вторым шагом. после того, как сотрудники записаны. реквизит оснэлемент вытащи на форму и проврь
10 Вежливый_Лось
 
22.10.11
12:09
ок спасибо попробую
11 Вежливый_Лось
 
22.10.11
15:23
Процедура ПеребросСотрудников()
   СпрСотрПРиемник = База.CreateObject("Справочник.Сотрудники");
   СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
   СпрСотрудПриемник = База.CreateObject("Справочник.Сотрудники");
   
   СпрПолПриемник = База.CreateObject("Справочник.ОКИН");

   СпрСотр . ВыбратьЭлементы();
   Пока СпрСотр . ПолучитьЭлемент() = 1 Цикл
       Сообщить(СпрСотр.Наименование);
       СпрСотрПРиемник . Новый();
       СпрСотрПРиемник . Код = СокрЛП(СпрСотр.Код);
       СпрСотрПРиемник . Наименование = СокрЛП(СпрСотр.Наименование);
       //СпрСотрПРиемник . АзНаименование = СокрЛП(СпрСотр.АзНаименование);
       //СпрСотрПРиемник . ЛокНомер = СокрЛП(СпрСотр.ЛокНомер);
       //СпрСотрПРиемник . КодАктивности =  СокрЛП(СпрСотр.КодАктивности);
       //СпрСотрПРиемник . ЭлектроннаяПочта = СокрЛП(СпрСотр.ЭлектроннаяПочта);
       СпрПолПРиемник . НайтиПоНаименованию(СокрЛП(СпрСотр.Пол.Наименование),,);
       СпрСотрПРиемник . Пол = СпрПолПРиемник . ТекущийЭлемент();
       СпрСотрПРиемник . Записать();
       //СпрСотрудПриемник . НайтиПоНаименованию(СокрЛП(СпрСотрПРиемник . Наименование),,1);
       //СпрСотрПРиемник . ОсновнойЭлемент = СпрСотрудПриемник . ТекущийЭлемент();
       
       СпрСотрПРиемник . Записать();
   КонецЦикла;
   
   СпрСотрПРиемник . ВыбратьЭлементы();
   Пока СпрСотрПРиемник . ПолучитьЭлемент() = 1 Цикл
       СпрСотрудПриемник . НайтиПоНаименованию(СокрЛП(СпрСотрПРиемник . Наименование),,1);
       СпрСотрПРиемник . ОсновнойЭлемент = СпрСотрудПриемник . ТекущийЭлемент();
       СпрСотрПРиемник . Записать();
       
   КонецЦикла;
   
КонецПроцедуры



вот код переброса сотрудников может я что не правильно делаю?
12 miki
 
22.10.11
15:35
Так ведь в ЗиК "СостояниеФизлица" - это реквизит, причем периодический...
13 Вежливый_Лось
 
22.10.11
15:41
я знаю
14 Мимохожий Однако
 
22.10.11
15:44
Попробуй наоборот. Из базы-приемника обратись к базе-источнику.
15 miki
 
22.10.11
15:54
а если тупо в первом цикле добавить после записи
СпрСотрПРиемник . Записать();

пару строку:
 СпрСотрПРиемник. ОсновнойЭлемент = СпрСотрПРиемник.ТекущийЭлемент();
 СпрСотрПРиемник. Записать();
16 DJ Anthon
 
22.10.11
15:56
(15) пусть смотрит код, который выдает "не принят на вн.е совместительство" и много думает
17 DJ Anthon
 
22.10.11
15:57
по существу вопроса, если можешь, подожди понедельника, выложу мега обработку по переносу данных по оле. сейчас оптимизирую..
18 Вежливый_Лось
 
22.10.11
15:57
(14)спасибо получилось
19 Вежливый_Лось
 
22.10.11
16:00
(17)выкладывай посмотрим