Общее·количество·просмотров·страницы

среда, 15 августа 2012 г.

Передача массива в качестве параметра запроса 1с

В запрос 1с можно передать в качестве параметра массив, простой пример реализации:
//КОД

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 3
              | СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
              | ГОД(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации) КАК Год
              |ИЗ
              | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
              |ГДЕ
              | ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник
              | И (НЕ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (&МассивВидовРасчета))
              | И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета.КодДоходаФСС_НС = &КодДохода
              |
              |СГРУППИРОВАТЬ ПО
              | ГОД(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации)
              |
              |УПОРЯДОЧИТЬ ПО
              | Год УБЫВ,
              | Результат";

МассивВидовРасчета = Новый Массив();
//Добавляем ВР исключающие отпуск
МассивВидовРасчета.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("000ОК"));
МассивВидовРасчета.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00041"));
МассивВидовРасчета.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00042"));
МассивВидовРасчета.Добавить(ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоКоду("00037"));

Запрос.УстановитьПараметр("Сотрудник",Сотрудник);
Запрос.УстановитьПараметр("МассивВидовРасчета", МассивВидовРасчета);
Запрос.УстановитьПараметр("КодДохода", Перечисления.ДоходыФСС_НС.Облагается);

Результат = Запрос.Выполнить().Выгрузить();
//КОД

В примере отчета для ЗУП я выбираю только те начисления которые не находятся в массиве, принадлежат этому сотруднику и облагаются взносами в ФСС. При передачи массива в качестве параметра главное правильно подобрать условие.



Комментариев нет:

Отправить комментарий