|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
cifromantika
11.08.12
✎
13:47
|
Просьба помочь с запросом в ЗУП КОРП 2.5:
есть дописанный отбор, требуется его откорректировать. Отбор по Совместителям, ВДикретномОтпуске, Работают, НеРаботают. По Совместителям, ВДикретномОтпуске попадают уволенные. Подскажите как убрать уволенных. Заранее спасибо. |
|||
1
izekia
11.08.12
✎
13:58
|
ВДикретномОтпуске
из-за этого видимо |
|||
2
cifromantika
11.08.12
✎
14:11
|
Процедура СовместителиПриИзменении(Элемент)
Если Совместители Тогда ВДикретномОтпуске = Ложь; Работают = Ложь; НеРаботают = Ложь; // получаем запросом список с установленными критериями отбора СЗ = ВернутьСписокСовместителей(); // устанавливаем отбор на ссылки, входящие в возвращенный список ссылок ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ЭтаФорма.Отбор.Ссылка.Значение = СЗ; ЭтаФорма.Отбор.Ссылка.Использование = Истина; Иначе // сбросим отбор ЭтаФорма.Отбор.Ссылка.Использование = Ложь; КонецЕсли; КонецПроцедуры Функция ВернутьСписокСовместителей() Запрос = Новый Запрос; // устанавливаем параметры запроса введенными критериями Запрос.УстановитьПараметр("ВнешСовм", Перечисления.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство); Запрос.УстановитьПараметр("ВнутСовм", Перечисления.ВидыЗанятостиВОрганизации.Совместительство); Запрос.УстановитьПараметр("ДатаУвольнения", РегистрыСведений.РаботникиОрганизаций.СрезПоследних()); // нам нужна только ссылка для построения списка значений Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка |ИЗ | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций |ГДЕ | (СотрудникиОрганизаций.ВидЗанятости = &ВнутСовм | ИЛИ СотрудникиОрганизаций.ВидЗанятости = &ВнешСовм)"; Результат = Запрос.Выполнить(); // создаем новый список значений и выгружаем в него колонку «Ссылка» из результата запроса СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка")); // возвращаем результат - полученный список зачений Возврат СЗ; КонецФункции Процедура ВДикретномОтпускеПриИзменении(Элемент) Если ВДикретномОтпуске Тогда Совместители = Ложь; Работают = Ложь; НеРаботают = Ложь; // получаем запросом список с установленными критериями отбора СЗ = ВернутьСписокДикретников(); // устанавливаем отбор на ссылки, входящие в возвращенный список ссылок ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ЭтаФорма.Отбор.Ссылка.Значение = СЗ; ЭтаФорма.Отбор.Ссылка.Использование = Истина; Иначе // сбросим отбор ЭтаФорма.Отбор.Ссылка.Использование = Ложь; КонецЕсли; КонецПроцедуры Функция ВернутьСписокДикретников() Запрос = Новый Запрос; // устанавливаем параметры запроса введенными критериями Запрос.УстановитьПараметр("Состояние1", Перечисления.СостоянияРаботникаОрганизации.ОтпускПоБеременностиИРодам); Запрос.УстановитьПараметр("Состояние2", Перечисления.СостоянияРаботникаОрганизации.ОтпускПоУходуЗаРебенком); // нам нужна только ссылка для построения списка значений Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка |ИЗ | РегистрСведений.СостояниеРаботниковОрганизаций КАК СостояниеРаботниковОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО СостояниеРаботниковОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка |ГДЕ | (СостояниеРаботниковОрганизаций.Состояние = &Состояние1 | ИЛИ СостояниеРаботниковОрганизаций.Состояние = &Состояние2)"; Результат = Запрос.Выполнить(); // создаем новый список значений и выгружаем в него колонку «Ссылка» из результата запроса СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка")); // возвращаем результат - полученный список зачений Возврат СЗ; КонецФункции Процедура РаботаютПриИзменении(Элемент) БИТ_Работают Тогда Совместители = Ложь; ВДикретномОтпуске = Ложь; НеРаботают = Ложь; // получаем запросом список с установленными критериями отбора СЗ = ВернутьСписокРаботающих(); // устанавливаем отбор на ссылки, входящие в возвращенный список ссылок ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ЭтаФорма.Отбор.Ссылка.Значение = СЗ; ЭтаФорма.Отбор.Ссылка.Использование = Истина; Иначе // сбросим отбор ЭтаФорма.Отбор.Ссылка.Использование = Ложь; КонецЕсли; КонецПроцедуры Функция ВернутьСписокРаботающих() Запрос = Новый Запрос; // устанавливаем параметры запроса введенными критериями Запрос.УстановитьПараметр("Состояние1", Перечисления.СостоянияРаботникаОрганизации.НеРаботает); Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка |ИЗ | РегистрСведений.РаботникиОрганизаций.СрезПоследних(, ) КАК РаботникиОрганизацийСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО РаботникиОрганизацийСрезПоследних.Сотрудник = СотрудникиОрганизаций.Ссылка |ГДЕ | РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Перемещение)"; Результат = Запрос.Выполнить(); // создаем новый список значений и выгружаем в него колонку «Ссылка» из результата запроса СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка")); // возвращаем результат - полученный список зачений Возврат СЗ; КонецФункции Процедура НеРаботаютПриИзменении(Элемент) Если НеРаботают Тогда Совместители = Ложь; ВДикретномОтпуске = Ложь; Работают = Ложь; // получаем запросом список с установленными критериями отбора СЗ = ВернутьСписокНеРаботающих(); // устанавливаем отбор на ссылки, входящие в возвращенный список ссылок ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; ЭтаФорма.Отбор.Ссылка.Значение = СЗ; ЭтаФорма.Отбор.Ссылка.Использование = Истина; Иначе // сбросим отбор ЭтаФорма.Отбор.Ссылка.Использование = Ложь; КонецЕсли; КонецПроцедуры Функция ВернутьСписокНеРаботающих() Запрос = Новый Запрос; // устанавливаем параметры запроса введенными критериями // нам нужна только ссылка для построения списка значений Запрос.Текст = "ВЫБРАТЬ | СотрудникиОрганизаций.Ссылка |ИЗ | РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций | ПО РаботникиОрганизаций.Сотрудник = СотрудникиОрганизаций.Ссылка |ГДЕ | РаботникиОрганизаций.ПричинаИзмененияСостояния = | ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)"; Результат = Запрос.Выполнить(); // создаем новый список значений и выгружаем в него колонку «Ссылка» из результата запроса СЗ = Новый СписокЗначений; СЗ.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка")); // возвращаем результат - полученный список зачений Возврат СЗ; КонецФункции |
|||
3
Wobland
11.08.12
✎
14:39
|
(1) хм, а нет ;)
>БИТ_Работают вот и авторы этого дикрета |
|||
4
sanja26
11.08.12
✎
14:41
|
к вопросу о русском языке... стремно даже смотреть
ВернутьСписокДикретников() |
|||
5
ILM
гуру
11.08.12
✎
17:09
|
Декрет - наше всё. А Дикрет - даже представить страшно.
|
|||
6
ILM
гуру
11.08.12
✎
17:10
|
А что из БИТ уже на мисте сидят, в субботу... Прикованый к батарее? Доширак то есть?
|
|||
7
m-serg74
11.08.12
✎
17:41
|
(0) хоть бы помеченных на удаление выкинули)
|
|||
8
cifromantika
11.08.12
✎
17:56
|
Да я не из БИТ, говорю дописанный ЗУП был, вот пытаюсь исправить. Да вообще то я понял что за народ на мисте сидят.
Спасибо за издевательство, единственный раз обратился, и вот БОГИ запели, больше не буду Вас тревожить и друзьям посоветую сменить форум. |
|||
9
ILM
гуру
11.08.12
✎
18:03
|
(8) Ну раз не из БИТ - тогда нужно условие ещё добавить для проверки. ЗУПа под рукой нет, но если как в УПП, то последняя запись в регистре сведений не должна быть увольнение, тогда работает.
|
|||
10
shuhard
11.08.12
✎
18:05
|
(8)[ больше не буду Вас тревожить и друзьям посоветую сменить форум.]
мощный пук в лужу |
|||
11
m-serg74
11.08.12
✎
18:07
|
))))
|
|||
12
m-serg74
11.08.12
✎
18:09
|
(9) какой регистр если он тупо из справочника берет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |