|
Фильтрация в отчете СКД | ☑ | ||
---|---|---|---|---|
0
NewBieOneS
09.11.14
✎
18:47
|
Здравствуйте!
Имеется отчет на СКД, в котором по двойному клику на ячейку добавлена своя команда. Она успешно отрабатывает, но есть одна неприятность. Стандартная команда, которая вызывается в меню "Отфильтровать" не передает параметры отчета (начало периода и конец периода) в новую форму. Приходится их вводить заново в новой форме вручную и формировать отчет. Как сделать так, чтобы параметры передавались в новую форму и отчет формировался автоматически? Привожу код модуля формы отчета СКД: &НаСервере Функция ПолучитьРасшифровку(Расшифровка) Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки); Поля = Данные.Элементы[Расшифровка].ПолучитьПоля(); ПолеНоменклатура = Поля.Найти("Номенклатура"); Если ПолеНоменклатура = Неопределено Тогда Возврат Неопределено; Иначе Возврат ПолеНоменклатура.Значение; КонецЕсли; КонецФункции &НаСервере Функция ПолучитьСписокДокументов(Номенклатура, НачалоПериода, КонецПериода) // Здесь получаем список ссылок на документы КонецФункции &НаКлиенте Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыбранноеДействие; Перем ПараметрыВыбранногоДействия; Номенклатура = ПолучитьРасшифровку(Расшифровка); Если Номенклатура = Неопределено Тогда Возврат; // Выбрано ненужное поле - оставляем стандартную обработку КонецЕсли; СтандартнаяОбработка = Ложь; ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет)); ДополнительныеДействия = Новый СписокЗначений; ДополнительныеДействия.Добавить("Открыть список загрузочных листов"); // Осуществим выбор действия расшифровки пользователем ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыбранноеДействие, ПараметрыВыбранногоДействия, , ДополнительныеДействия); Если ПараметрыВыбранногоДействия <> Неопределено Тогда // Если заполнено - значит выполнено типовое действие Если ВыбранноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда ОткрытьЗначение(ПараметрыВыбранногоДействия); Иначе НоваяРасшифрока = Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Расшифровка, ПараметрыВыбранногоДействия); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина); ПараметрыФормы.Вставить("Расшифровка", НоваяРасшифрока); ОткрытьФорму("Отчет.ОтчетПоОстаткам.Форма", ПараметрыФормы, , Истина); КонецЕсли; Иначе // Либо нетиповое действие, либо отмена Если ВыбранноеДействие <> ДействиеОбработкиРасшифровкиКомпоновкиДанных.Нет Тогда // Если НЕ отмена ПользовательскиеНастройки = ЭтаФорма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы; ПараметрыДанных = ЭтаФорма.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы; ИдентификаторНачалоПериода = ПараметрыДанных.Найти("НачалоПериода").ИдентификаторПользовательскойНастройки; ИдентификаторКонецПериода = ПараметрыДанных.Найти("КонецПериода").ИдентификаторПользовательскойНастройки; НачалоПериода = ПользовательскиеНастройки.Найти(ИдентификаторНачалоПериода).Значение.Дата; КонецПериода = ПользовательскиеНастройки.Найти(ИдентификаторКонецПериода).Значение.Дата; СписокЗагрузочныхЛистов = ПолучитьСписокЗагрузочныхЛистов(Номенклатура, НачалоПериода, КонецПериода); Если СписокЗагрузочныхЛистов.Количество() > 0 Тогда ВыбранныйЗагрузочныйЛист = СписокЗагрузочныхЛистов.ВыбратьЭлемент("Загрузочные листы"); Если ВыбранныйЗагрузочныйЛист <> Неопределено Тогда ОткрытьЗначение(ВыбранныйЗагрузочныйЛист.Значение); КонецЕсли; Иначе Предупреждение("Загрузочные листы не найдены!"); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
1
NewBieOneS
09.11.14
✎
18:50
|
Функция "ПолучитьСписокДокументов()" на самом деле называется "ПолучитьСписокЗагрузочныхЛистов()". Перепутал.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |