Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 14:08
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Расшифровка отчета СКД с двумя макетами  (Прочитано 1008 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kosalex

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-04-16
  • Сайт: 
  • Профессия: Программист 1С
 Доброго времени суток, есть отчет СКД с двумя макетами, по кнопке "Сформировать" выполняется следующий код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
       
    Если ОстаткиРеализации Тогда
        МакетОстаткиРеализаций = ПолучитьМакет("ОстаткиРеализаций");
       
        Настройки = МакетОстаткиРеализаций.НастройкиПоУмолчанию;
       
        Настройки.ПараметрыДанных.Элементы[0].Значение = КонецДня(НаДату);
        Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
   
        Настройки.Отбор.Элементы[0].ВидСравнения = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ВидСравнения;
        Настройки.Отбор.Элементы[0].ПравоеЗначение = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].ПравоеЗначение;
        Настройки.Отбор.Элементы[0].Использование = КомпоновщикНастроек.Настройки.Отбор.Элементы[0].Использование;
       
        Настройки.Отбор.Элементы[1].ВидСравнения = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].ВидСравнения;
        Настройки.Отбор.Элементы[1].ПравоеЗначение = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].ПравоеЗначение;
        Настройки.Отбор.Элементы[1].Использование = КомпоновщикНастроек.Настройки.Отбор.Элементы[1].Использование;

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



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

    ИначеЕсли Переключатель1 = 1 Тогда

        ОстаткиРеализации = Ложь;
        ЭлементыФормы.НадписьНаДату.Видимость = Ложь;
        ЭлементыФормы.ПолеВводаДатаОстаткиРеализации.Видимость = Ложь;
        ЭлементыФормы.ПолеВводаДатаОстаткиРеализации.Значение = Неопределено;
        НаДату = Неопределено;
       
        ЭлементыФормы.НадписьДатаНачала.Видимость = Истина;
        ЭлементыФормы.ПолеВводаСДаты.Видимость = Истина;
       
       
        ЭлементыФормы.НадписьДо.Видимость = Истина;
        ЭлементыФормы.ПолеВводаПоДату.Видимость = Истина;
               
        РасчетныеДанныеПоФючерсамЗаПериод = Истина;

       
        //Подставить ОТБОР
        МакетРасчетныеДанныеПоФьючерсамЗаПериод = ПолучитьМакет("РасчетныеДанныеПоФьючерсамЗаПериод");
        НастройкиПоУмолчанию = МакетРасчетныеДанныеПоФьючерсамЗаПериод.НастройкиПоУмолчанию;
        КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиПоУмолчанию);

    КонецЕсли;
КонецПроцедуры



Как я понимаю, то данные расшифроке беруться из основного макета, а как их можно передать после того как я сменил макет програмно?
   


Оффлайн kosalex

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-04-16
  • Сайт: 
  • Профессия: Программист 1С
Получилось, немного подравил и дописал, вот код:

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

       
        //Подставить ОТБОР
        МакетРасчетныеДанныеПоФьючерсамЗаПериод = ПолучитьМакет("РасчетныеДанныеПоФьючерсамЗаПериод");
        НастройкиПоУмолчанию = МакетРасчетныеДанныеПоФьючерсамЗаПериод.НастройкиПоУмолчанию;
        КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиПоУмолчанию);
       
        ЭтотОбъект.СхемаКомпоновкиДанных = МакетРасчетныеДанныеПоФьючерсамЗаПериод;
       
       
    КонецЕсли;
КонецПроцедуры



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


Теги:
 

Печатная форма "ЧекККМ" для "Отчета о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 7048
Последний ответ 01 Июн 2011, 20:39
от Шурыгин Иван Сергеевич
Формирование отчёта "Задолженость по контрагентам" 1С:Предприятие 8.2 "Торговля для частных предпринимателей базовая", редакция 1.0

Автор casper009Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 2993
Последний ответ 27 Май 2015, 10:02
от casper009
Ошибка при выгрузке отчета "Прибыль"

Автор VasilРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4093
Последний ответ 28 Апр 2011, 14:34
от MaryaAlbertovna
Создание отчета "Отсутствие заказов"

Автор dronspartak9@gmail.comРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3871
Последний ответ 16 Апр 2014, 15:09
от dronspartak9@gmail.com
Программирование отчета "Движения на складах"

Автор ЛунатикРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1953
Последний ответ 05 Апр 2016, 10:15
от vitasw

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal