Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Расщифровка отчета СКД в другом отчете СКД          
kosalex Подменю пользователя
сообщение 08.10.14, 13:53
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Друзья!Помогите!

Есть отчет1, по нажатию на ячейку должен открываться другой отчет который расшифровывает.

Не получается передать Параметры отчета1 (ДатаНачала,ДатаОкончания) и отбор по значению в отчет2.

Как передать параметры и отбор? Как программно сформировать отчет?


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


alex040269 Подменю пользователя
сообщение 08.10.14, 14:22
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Изучайте модуль ТиповыеОтчеты в любой типовой.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

kosalex Подменю пользователя
сообщение 09.10.14, 7:57
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(alex040269 @ 08.10.14, 15:22) *
Изучайте модуль ТиповыеОтчеты в любой типовой.


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



Объединил Модуль "ТиповыеОтчеты" и все остальные модули которые нужны со своей конфой.
В отчете в процедуре код,
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    ТиповыеОтчеты.СтандартнаяОбработкаРасшифровкиТиповогоОтчета(ЭтотОбъект,ЭтаФорма,Расшифровка,Ложь);
КонецПроцедуры



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

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



Контекстное меню появляется, а "Расшифровать..." недоступно.

Помогите плиз, очень надо !

kosalex Подменю пользователя
сообщение 09.10.14, 10:41
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Сделал вот так, вроде получил то что хотел.

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    ПериодНачалоПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение;
    ПериодОкончанияПростой = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение;
    НомерВагонаПростой =ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля()[0].Значение;    
    
    ОтчетРасшифровка = Отчеты.КФЗОтчетРасшифровкаПростоя.Создать();
    ОтчетРасшифровка.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодНачало",ПериодНачалоПростой);
    ОтчетРасшифровка.КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодОкончания",ПериодОкончанияПростой);
    ОтчетРасшифровка.КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение = НомерВагонаПростой;
    ОтчетРасшифровка.КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование = Истина;
    
    
    
    ФормаРасшифровки = ОтчетРасшифровка.ПолучитьФорму("ФормаОтчета");
    
    ФормаРасшифровки.Открыть();
    
        
КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 22.05.24, 19:52
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!