|
v7: обход периодических реквизитов | ☑ | ||
---|---|---|---|---|
0
perkos
23.05.12
✎
06:59
|
СпрСотрудники = СоздатьОбъект("Справочник.Сотрудники");
СпрСотрудники.ВыбратьЭлементы(); Пока СпрСотрудники.ПолучитьЭлемент() = 1 Цикл Если СпрСотрудники.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; Сотрудник = СпрСотрудники.ТекущийЭлемент(); .... ПерРеквизит = СоздатьОбъект("Периодический"); ПерРеквизит.ИспользоватьОбъект("", Сотрудник); ПерРеквизит.ВыбратьЗначения(, ДатаОкончания); Пока ПерРеквизит.ПолучитьЗначение() > 0 Цикл .... не заходит в цикл обхода периодических реквизитов сотрудников... не понимаю почему так.. конфа ЗИК, код из правила обмена кадровыми документами... есть советы? ТИИ провел. ДатаОкончания - пустая |
|||
1
miki
23.05.12
✎
07:06
|
ПерРеквизит.ИспользоватьОбъект("", Сотрудник)
>>"" |
|||
2
perkos
23.05.12
✎
07:09
|
из хелпа ИспользоватьОбъект(<ИмяРеквизита>,<Объект>)
Замечание: Если наименование реквизита пустая строка и передан объект справочника, то выборка будет осуществляться по всем реквизитам справочника. иногда в цикл код заходит но видит 1-2 реквизита ито не типовые в обмене не учавствуют |
|||
3
perkos
23.05.12
✎
07:09
|
код типового обмена....)=
|
|||
4
miki
23.05.12
✎
07:12
|
С Сотрудником в
>>.... ничего не делаешь? |
|||
5
forforumandspam
23.05.12
✎
07:13
|
Попробуй вообще убрать ДатаОкончания.
ПерРеквизит.ВыбратьЗначения(); |
|||
6
forforumandspam
23.05.12
✎
07:16
|
Насколько я помню, при любых выборках и пустых датах, лучше переменные опускать. Типа того:
Если ПустоеЗначение(ДатаОкончания) = 1 Тогда ПерРеквизит.ВыбратьЗначения(); Иначе ПерРеквизит.ВыбратьЗначения(, ДатаОкончания); КонецЕсли; |
|||
7
perkos
23.05.12
✎
07:17
|
(4) неа)=
Пока СпрСотрудники.ПолучитьЭлемент() = 1 Цикл Если СпрСотрудники.ЭтоГруппа() = 1 Тогда Продолжить; КонецЕсли; Сотрудник = СпрСотрудники.ТекущийЭлемент(); Если (ПустоеЗначение(Параметры.ФизическоеЛицоДляОтладкиВыгрузки) = 0) И (Параметры.ФизическоеЛицоДляОтладкиВыгрузки <> Сотрудник) Тогда Продолжить; КонецЕсли; Если ПустоеЗначение(глРаботалСотрудник(Сотрудник, ДатаНачала, ДатаОкончания)) = 1 Тогда Продолжить; КонецЕсли; Состояние("Кадровые данные: " + Сотрудник); РаботникиОрганизаций = СоздатьТЗРаботникиОрганизаций( ИсходящиеДанные,,,,,,,, ВыборкаДанных,,,, ИмяПКО,,,, Правило,,,,,,,,,,,,,,,,, Отказ); РаботникиОрганизаций.НоваяКолонка("ПодразделениеОрганизацииБыло"); РаботникиОрганизаций.НоваяКолонка("ДолжностьБыло"); РаботникиОрганизаций.НоваяКолонка("ЗанимаемыхСтавокБыло"); Если Параметры.РаспределятьПоИсточникамФинансирования = 1 Тогда ВоинскиеИСпециальныеЗвания = СоздатьОбъект("ТаблицаЗначений"); ВоинскиеИСпециальныеЗвания.НоваяКолонка("Период"); ВоинскиеИСпециальныеЗвания.НоваяКолонка("Физлицо"); ВоинскиеИСпециальныеЗвания.НоваяКолонка("Звание"); КлассныеЧиныДипломатическиеРангиФизлиц = СоздатьОбъект("ТаблицаЗначений"); КлассныеЧиныДипломатическиеРангиФизлиц.НоваяКолонка("Период"); КлассныеЧиныДипломатическиеРангиФизлиц.НоваяКолонка("Физлицо"); КлассныеЧиныДипломатическиеРангиФизлиц.НоваяКолонка("КлассныйЧин"); КонецЕсли; ПерРеквизит = СоздатьОбъект("Периодический"); ПерРеквизит.ИспользоватьОбъект("", Сотрудник); ПерРеквизит.ВыбратьЗначения(, ДатаОкончания); Пока ПерРеквизит.ПолучитьЗначение() > 0 Цикл |
|||
8
miki
23.05.12
✎
07:23
|
остается глянуть в глРаботалСотрудник(Сотрудник, ДатаНачала, ДатаОкончания)
|
|||
9
perkos
23.05.12
✎
07:23
|
(6) сработало спасибо, семера....
|
|||
10
perkos
23.05.12
✎
07:25
|
правила .... до этого отлаживал правило выгрузки физ лиц, так там с этой датой окончания еще тот бред выборка документов происходит с даты окончания и получается что сотр принятый до этой даты остается без документа о приеме на работу и прочих, и если ее оставлять пустой то все ок, а в этом правиле получается ее лучше заполнять или ставить костыли такие везде... )= че за туфту гонят
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |