Имя: Пароль:
1C
1С v8
Расшифровка своего отчета
0 Baf
 
04.02.13
14:29
Пытаюсь сделать расшифровку отчета, в карточку счета хочу поставить отбор по своей номенклатуре, но проблема в том, что, в поле отбора встает слово номенклатура и моя номенклатура по которой я хочу сделать отбор, но оно будьто бы не доступно, сама карточка формируется без участия моего отбора. В карточке в доступных полях есть номенклатура, но выгружается туда в настройки номенклатура с красным крестом, в чем может быть дело?делаю так:
Если ТипЗнч(Расшифровка) = Тип("СписокЗначений") Тогда
       Если Расшифровка.Количество() = 1 Тогда
           ВыбранноеЗначение = Расшифровка[0];
       Иначе
           ВыбранноеЗначение = Расшифровка.ВыбратьЭлемент("Выберите расшифровку",Расшифровка[0]);
       КонецЕсли;
       Если ВыбранноеЗначение <> Неопределено Тогда
           ВыбраннаяРасшифровка = ВыбранноеЗначение.Значение;
       Иначе
           СтандартнаяОбработка = Ложь;
           Возврат;
       КонецЕсли;
   ИначеЕсли ТипЗнч(Расшифровка) = Тип("Структура")
       ИЛИ ТипЗнч(Расшифровка) = Тип("Соответствие") Тогда
       
       ВыбраннаяРасшифровка = Расшифровка;
   КонецЕсли;
   
   Если ТипЗнч(ВыбраннаяРасшифровка) = Тип("Структура")
       ИЛИ ТипЗнч(ВыбраннаяРасшифровка) = Тип("Соответствие") Тогда
       
       ОбщаяРасшифровка = Элемент.Область(1,1).Расшифровка;
       
       Если ТипЗнч(ОбщаяРасшифровка) = Тип("Структура")
           ИЛИ ТипЗнч(ОбщаяРасшифровка) = Тип("Соответствие") Тогда
           
           Для Каждого Элемент Из ОбщаяРасшифровка Цикл
               ВыбраннаяРасшифровка.Вставить(Элемент.Ключ, Элемент.Значение);
           КонецЦикла;
           
       КонецЕсли;
       
       СтандартнаяОбработка = Ложь;
       
       Отчет = Отчеты[ВыбраннаяРасшифровка["ИмяОбъекта"]].Создать();
       Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
       Отчет.РежимРасшифровки = Истина;
       ФормаОтчета = Отчет.ПолучитьФорму(, , Новый УникальныйИдентификатор());
       Отчет.НачалоПериода = ДатаНач;
       Отчет.КонецПериода  = ДатаКон;
       Отчет.Организация   = ПостроительОтчета.Отбор.Организация.Значение;
       Отчет.Счет = ПланыСчетов.Хозрасчетный.Материалы;
       Отчет.Настроить();                    
       Если ВыбраннаяРасшифровка["Отбор"] <> Неопределено Тогда
           Для Каждого СтрокаОтбора Из ВыбраннаяРасшифровка["Отбор"] Цикл
               Если ТипЗнч(СтрокаОтбора.Значение) <> Тип("Соответствие") Тогда
                   ТиповыеОтчеты.ДобавитьОтбор(Отчет.КомпоновщикНастроек, СтрокаОтбора.Ключ, СтрокаОтбора.Значение);
               Иначе                              
                   Для Каждого Элемент Из СтрокаОтбора.Значение Цикл
                       ТиповыеОтчеты.ДобавитьОтбор(Отчет.КомпоновщикНастроек,Элемент.Ключ,Элемент.Значение);
                   КонецЦикла;                              
               КонецЕсли;                          
           КонецЦикла;
       КонецЕсли;          
       
       ФормаОтчета.Открыть();
       ФормаОтчета.ОбновитьОтчет();