Имя: Пароль:
1C
1С v8
Проблема с расшифровкой в программном СКД.
0 memogolik
 
31.01.13
11:38
Написан отчет по мотивам видео урока Гилева.


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   // Вставить содержимое обработчика.
   СтандартнаяОбработка = Ложь;

   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество,
       |    ПоступлениеТоваровУслугТовары.Номенклатура
       |ИЗ
       |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
       |
       |СГРУППИРОВАТЬ ПО
       |    ПоступлениеТоваровУслугТовары.Номенклатура";

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

   
   ВнешнийНабор = Новый Структура("Табл", Результат);

   Настройки = КомпоновщикНастроек.Настройки;
   
   КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
   Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
   
   ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпоновки.Инициализировать(Макет, ВнешнийНабор);
   
   ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
   ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
   ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры

Сам объект в схеме компоновки имеет тип не "запрос", а "объект".
Добавил два поля: Номенклатура и количество соответствующих типов.
Имя объекта, содержащие данные "Табл".

Сам отчет при этом работает нормально. Теперь хочу сделать простейшую расшифровку по документу.
Добавил основную форму отчета, определил событие в форме:

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
   // Вставить содержимое обработчика.
   Перем ВыполненноеДействие;
   СтандартнаяОбработка=Ложь;
   ОбработкаРасшифровки=Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   ДоступныеДействия=Новый Массив; // заполняем доступные действия, если параметр не указан, то будут доступны все действия
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);
   ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);
   Настройки=ОбработкаРасшифровки.Выполнить(Расшифровка,ВыполненноеДействие,ДоступныеДействия);
   Если Настройки<>Неопределено Тогда // требуется сформировать отчет с новыми настройками
       КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); // загружаем настройки
       ЭлементыФормы.Результат.Очистить(); // очищаем поле табличного документа
       СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки); // выводим результат
   КонецЕсли;

КонецПроцедуры

Но результата нет, даже значка с лупой (соответствующего расшифровке) не появляется, подскажите пожалуйста, как решить проблему?
Заранее спасибо за ответы.
1 memogolik
 
31.01.13
11:39
Обычное приложение 1с 8.2 Комплексная
Закон Брукера: Даже маленькая практика стоит большой теории.