Пример использования формы расшифровки
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Получить предварительные данные
ПредварительныеДанные = ПолучитьПредварительныеДанные(Расшифровка);
Если ПредварительныеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
//Получить табличную часть для формы расшифровки
ТЧ = РасшифровкаПоРегистраторам1(ПредварительныеДанные.ПараметрНачДата,ПредварительныеДанные.ПараметрКонДата,ПредварительныеДанные.ПараметрСтатья,ПредварительныеДанные.ПараметрВладелец);
//Получить форму
ФормаРасшифровки = ПолучитьФорму("Отчет.ин_ПлатежныйКалендарь.Форма.ФормаРасшифровки",ПредварительныеДанные,ЭтаФорма);
//Заполнить её данными
Если НЕ (ТЧ = Неопределено) Тогда
ФормаРасшифровки.мДата1 = ПредварительныеДанные.ПараметрНачДата;
ФормаРасшифровки.мДата2 = ПредварительныеДанные.ПараметрКонДата;
ФормаРасшифровки.мСтатья = ПредварительныеДанные.ПараметрСтатья;
ФормаРасшифровки.СписокДокументов.Очистить();
Для Индекс = 0 По ТЧ.Количество() - 1 Цикл
НовСтр = ФормаРасшифровки.СписокДокументов.Добавить();
НовСтр.Документ =ТЧ[Индекс].Документ;
НовСтр.СуммаДокумента =ТЧ[Индекс].СуммаДокумента;
НовСтр.СуммаПоСтатье =ТЧ[Индекс].СуммаПоСтатье;
КонецЦикла;
КонецЕсли;
// открыть форму расшифровки
Если НЕ ФормаРасшифровки.Открыта() Тогда
ФормаРасшифровки.Открыть();
иначе
ФормаРасшифровки.Закрыть();
КонецЕсли;
КонецПроцедуры
// Получить предварительные данные
&НаСервере
Функция ПолучитьПредварительныеДанные(Расшифровка)
Перем ВыполненноеДействие;
РезультатФункции = Новый Структура;
ДанныеРасшифровкиКомпоновкиДанных = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
МассивПолей = БухгалтерскиеОтчетыВызовСервера.ПолучитьМассивПолейРасшифровки(Расшифровка, ДанныеРасшифровкиКомпоновкиДанных, , Истина);
РезультатФункции.Вставить("ПараметрСтатья",Неопределено);
РезультатФункции.Вставить("ПараметрНачДата", Неопределено);
РезультатФункции.Вставить("ПараметрВладелец",Неопределено);
Для Каждого Элемент Из МассивПолей Цикл
Если ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных")Тогда
РезультатФункции.ПараметрВладелец = Элемент.ПравоеЗначение;
Продолжить;
КонецЕсли;
Если Элемент.Поле = "СтатьяОборотов" Тогда
РезультатФункции.ПараметрСтатья = Элемент.Значение;
ИначеЕсли Элемент.Поле = "Период" Тогда
РезультатФункции.ПараметрНачДата = Элемент.Значение;
Иначе
КонецЕсли;
КонецЦикла;
Если РезультатФункции.ПараметрСтатья = Неопределено или РезультатФункции.ПараметрНачДата = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
РезультатФункции.Вставить("ПараметрКонДата", КонецДня(РезультатФункции.ПараметрНачДата));
РезультатФункции.Вставить("ОткрытьЗначение", Ложь);
РезультатФункции.Вставить("Значение", ДанныеРасшифровкиКомпоновкиДанных.Элементы[Расшифровка].ПолучитьПоля()[0].Значение);
РезультатФункции.Вставить("ЭтоСсылка", Ложь);
Возврат РезультатФункции;
КонецФункции // ПолучитьПредварительныеДанные()
//Получить табличную часть для формы расшифровки
Функция РасшифровкаПоРегистраторам1(мДата1,мДата2,мСтатья, мПараметрВладелец)Экспорт
РезультатФункции = Новый Массив;
Сценарий = ПредопределенноеЗначение("Справочник.СценарииПланирования.ФАКТ");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Факт.Регистратор КАК Документ,
| Факт.Регистратор.СуммаДокумента КАК СуммаДокумента,
| ВЫБОР
| КОГДА Факт.СтатьяОборотов.РасходДоход = ЗНАЧЕНИЕ(Перечисление.бит_РасходДоход.Расходование)
|
| ТОГДА -Факт.СуммаРеглОборот
| ИНАЧЕ Факт.СуммаРеглОборот
| КОНЕЦ КАК СуммаПоСтатье,
| Факт.СтатьяОборотов
|ИЗ
| РегистрНакопления.бит_ОборотыПоБюджетам.Обороты(
| &НачалоПериода {(&НачалоПериода)},
| &КонецПериода {(&КонецПериода)},
| Авто,
| "+?(ЗначениеЗаполнено(мСтатья),"СтатьяОборотов В ИЕРАРХИИ (&СтатьиОборотов)","СтатьяОборотов = Значение(Справочник.бит_СтатьиОборотов.ПустаяСсылка)")+"
| "+?(ЗначениеЗаполнено(мПараметрВладелец),"И БанковскийСчет.Владелец В(&мПараметрВладелец)","")+"
|И Сценарий = &Сценарий) КАК Факт";
Запрос.УстановитьПараметр("КонецПериода", мДата2); //Дата
Запрос.УстановитьПараметр("НачалоПериода", мДата1); //Дата
Запрос.УстановитьПараметр("СтатьиОборотов", мСтатья); //Статья оборотов
Запрос.УстановитьПараметр("Сценарий", Сценарий);
Запрос.УстановитьПараметр("мПараметрВладелец", мПараметрВладелец);
//Сценарии бюджетирования
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой()Тогда
Возврат Неопределено;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий()Цикл
ТЧНоваяСтрока = Новый Структура;
ТЧНоваяСтрока.Вставить("Документ", Выборка.Документ);
ТЧНоваяСтрока.Вставить("СуммаДокумента", Выборка.СуммаДокумента);
ТЧНоваяСтрока.Вставить("СуммаПоСтатье", Выборка.СуммаПоСтатье);
ТЧНоваяСтрока.Вставить("СтатьяОборотов", Выборка.СтатьяОборотов);
РезультатФункции.Добавить(ТЧНоваяСтрока);
КонецЦикла;
Возврат РезультатФункции;
КонецФункции