|
v7: Проблема со справочника назначения выводит с выборке первую должность | ☑ | ||
---|---|---|---|---|
0
ЮлияКорж
24.02.12
✎
12:40
|
а не актуальную на момент увольнения, посмотрите пожайлуста как надо верно
Перем НачалоТекущегоПериода, КонецТекущегоПериода,ТекСотр1,Тек1; НачалоТекущегоПериода = Дата1; КонецТекущегоПериода = Дата2 + 1; таб=СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Результаты"); таб.ВывестиСекцию("Шапка"); ФизЛицо=СоздатьОбъект("Справочник.ФизическиеЛица"); Сотр=СоздатьОбъект("Справочник.Сотрудники"); СпрНазн=СоздатьОбъект("Справочник.Назначения"); Сотр.ВыбратьЭлементы(); кол=0; //ТекСотр=Сотр.ТекущийЭлемент(); Пока Сотр.ПолучитьЭлемент()>0 Цикл //Если (Сотр.Подразделение=Подразделение) Тогда // Если (ПустоеЗначение(Сотр.ДатаОкончанияДействия)=1) и (Сотр.ДатаНачалаДействия<ВыбДата) Тогда // Сотр.ФизическоеЛицо.ДатаРождения //кол=кол+1; //ТекСотр=Сотр.ТекущийЭлемент(); //СпрНазн.ТекущийЭлемент() ФизЛицо.НайтиЭлемент(Сотр.ТекущийЭлемент().ФизическоеЛицо); СпрНазн.ИспользоватьВладельца(Сотр); // СпрНазн.ОбратныйПорядок(); //СпрНазн.ПорядокКодов(); //СпрНазн.ТекущийЭлемент().Должность СпрНазн.ВыбратьЭлементы(); Пока СпрНазн.ПолучитьЭлемент()>0 Цикл ТекСотр=Сотр.ТекущийЭлемент().ФизическоеЛицо; Тек=Сотр.ТекущийЭлемент().ДатаОкончанияДействия; Если (Сотр.Подразделение=Подразделение) Тогда Если ПустоеЗначение(Сотр.ДатаОкончанияДействия)=0 Тогда Если ((Сотр.ДатаОкончанияДействия>=НачалоТекущегоПериода) И (Сотр.ДатаОкончанияДействия<КонецТекущегоПериода)) Тогда Если (ТекСотр1<>ТекСотр) и (Тек1<>Тек) Тогда кол=кол+1; таб.ВывестиСекцию("Результат"); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; ТекСотр1=ТекСотр; Тек1=Тек; // КонецЕсли; КонецЦикла; КонецЦикла; Таб.ПараметрыСтраницы(1,,,0,0,0,0,,,1,,); Таб.Опции(0,0,1,0); Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.ТолькоПросмотр(1); таб.Показать("Результаты"); |
|||
1
Amra
24.02.12
✎
12:42
|
Причем тут восьмерка? И где вообще получение должности в коде?
|
|||
2
zak555
24.02.12
✎
12:42
|
где вопрос ?
|
|||
3
Рэйв
24.02.12
✎
12:45
|
блин, когда при работе вижу так отформатированный код, хочется отрубить руки писателю... Скажите, уважаемая, где вас таких ростят? я может договорюсь с бомбардировщиком:-)
|
|||
4
ЮлияКорж
24.02.12
✎
12:48
|
Это еще не итог код будет оформлен нормально
|
|||
5
Рэйв
24.02.12
✎
12:49
|
(4)То есть на мисту такое кидать можно да? Оригинальная логика.
|
|||
6
ЮлияКорж
24.02.12
✎
12:51
|
Больше не буду
|
|||
7
Рэйв
24.02.12
✎
12:52
|
(0)Ответ скорее всего простой.
Первая должность попадает под все условия. И соответсвенно выводится |
|||
8
n koretsky
24.02.12
✎
13:00
|
Юленька, на первый взгляд код больше похож на 7.7, а не на 8.х
|
|||
9
ЮлияКорж
24.02.12
✎
17:11
|
Процедура Выполнить()
Перем НачалоТекущегоПериода, КонецТекущегоПериода,назнач; НачалоТекущегоПериода = Дата1; КонецТекущегоПериода = Дата2 + 1; таб=СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Результаты"); таб.ВывестиСекцию("Шапка"); ФизЛицо=СоздатьОбъект("Справочник.ФизическиеЛица"); Сотр=СоздатьОбъект("Справочник.Сотрудники"); СпрНазн=СоздатьОбъект("Справочник.Назначения"); Сотр.ВыбратьЭлементы(); кол=0; Пока Сотр.ПолучитьЭлемент()>0 Цикл ФизЛицо.НайтиЭлемент(Сотр.ТекущийЭлемент().ФизическоеЛицо); СпрНазн.ИспользоватьВладельца(Сотр); СпрНазн.ВыбратьЭлементы(); Пока СпрНазн.ПолучитьЭлемент()>0 Цикл назнач=СпрНазн.ТекущийЭлемент().Должность; Если ПустаяСтрока(назнач)=1 Тогда назнач=СпрНазн.ТекущийЭлемент().Профессия; Если ПустаяСтрока(назнач)=1 Тогда назнач=СпрНазн.ТекущийЭлемент().Должность; КонецЕсли; КонецЕсли; Если (Сотр.Подразделение=Подразделение) Тогда Если ПустоеЗначение(Сотр.ДатаОкончанияДействия)=0 Тогда Если((Сотр.ДатаОкончанияДействия>=НачалоТекущегоПериода) И (Сотр.ДатаОкончанияДействия<КонецТекущегоПериода)) Тогда Если (СпрНазн.ДатаОкончанияДействия=СОТР.ДатаОкончанияДействия) Тогда кол=кол+1; таб.ВывестиСекцию("Результат"); КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; //КонецЕсли; //КонецЕсли; КонецЦикла; КонецЦикла; Таб.ПараметрыСтраницы(1,,,0,0,0,0,,,1,,); Таб.Опции(0,0,1,0); Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.ТолькоПросмотр(1); таб.Показать("Таблица1"); таб.ТолькоПросмотр(1); КонецПроцедуры Ну а так как код лучше? |
|||
10
zak555
27.02.12
✎
20:55
|
что за справочни к Назначения ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |