8.х Расшифровка отчета СКД с помощью другого отчета СКД

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Bonny, 19 янв 2016.

  1. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Код:
    ДоступноеПоле = КомпоновщикНастроек.Настройки.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Контрагент");
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = ДоступноеПоле.Поле;
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ПравоеЗначение = ПолеСправочникаКонтрагенты;
        ЭлементОтбора.Использование = Истина;
    Так отбор вставляет в отчет, в котором я щелкаю по ячейке и из которого вызываю расшифровку. Как ему сказать что "КомпоновщикНастроек.Настройки.Отбор." относится к отчету "РасшифровкаОтчетаПоДтКт"?
    Последнее редактирование: 20 янв 2016
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    НУ либо весь код показывайте либо отчеты прикладывайте. У вас в отчете РасшифровкаОтчетаПоДтКт точно есть поле контрагент?

    Просто вот у меня вот такой код спокойно работает
    Код:
    &НаКлиенте
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
        СтандартнаяОбработка=Ложь;
        отборОтчета=Новый Структура;
        отборОтчета=ЗаполниитьПараметры(отборОтчета);
        ПараметрыФормы=Новый Структура;
        ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
        ПараметрыФормы.Вставить("отбор",отборОтчета);
       
        ОткрытьФорму("Отчет.ОстаткиНоменклатурыСДетализациейПоПериоду.Форма",ПараметрыФормы,,истина);
    КонецПроцедуры
    
    &НаСервере
    Функция ЗаполниитьПараметры(отборОтчета)
        СпрНоменклатуры=Справочники.Номенклатура;
        ЗначениеНоменклатуры=СпрНоменклатуры.НайтиПоНаименованию("1С:Предприятие 8.0. Дополнительная многопользовательская лицензия на 1");
        отборОтчета.Вставить("Номенклатура",ЗначениеНоменклатуры);
       
        Возврат отборОтчета;
       
    КонецФункции    
    Отчет "Отчет.ОстаткиНоменклатурыСДетализациейПоПериоду.Форма открывается именно с отбором по номенклатуре что в функции ЗаполниитьПараметры(отборОтчета) прописаны
  3. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Внешние обработки с нетиповыми регистрами внутри не пойдут же? код и фотки?
    --- Объединение сообщений, 20 янв 2016 ---
    У меня и Ваш код не вставляет отбор по контрагенту, хотя я уже явно прописала контрагента (это к слову совсем неудобно)
    Код:
     СпрНоменклатуры=Справочники.Контрагенты;
        ЗначениеНоменклатуры=СпрНоменклатуры.НайтиПоНаименованию("НазваниеКонтрагента");
        отборОтчета.Вставить("Контрагент",ЗначениеНоменклатуры);
    
        Возврат отборОтчета;
    Последнее редактирование: 20 янв 2016
  4. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну надо смотреть поле Контрагент у Вас есть в отчете.
    Мне нужес код там где расшифровка
    и скрин ончтет Расшифровка ДТ кто, первой вкладки где список полей и последней там дне варианты и настройки группировок
  5. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Запрос в расшифровке:
    Код:
    ВЫБРАТЬ
        ДебиторыКредиторы.Регистратор,
        ДебиторыКредиторы.Контрагент,
        ДебиторыКредиторы.Ответственный,
        ДебиторыКредиторы.СрокПоДоговору,
        ДебиторыКредиторы.ДокументЗадолженности,
        ДебиторыКредиторы.Договор,
        ДебиторыКредиторы.Подразделение,
        ДебиторыКредиторы.Валюта,
        ДебиторыКредиторы.Организация,
        ДебиторыКредиторы.Год,
        СУММА(ДебиторыКредиторы.Сумма) КАК Сумма
    ИЗ
        РегистрНакопления.ДебиторыКредиторы КАК ДебиторыКредиторы
    
    СГРУППИРОВАТЬ ПО
        ДебиторыКредиторы.Регистратор,
        ДебиторыКредиторы.Контрагент,
        ДебиторыКредиторы.Ответственный,
        ДебиторыКредиторы.СрокПоДоговору,
        ДебиторыКредиторы.ДокументЗадолженности,
        ДебиторыКредиторы.Договор,
        ДебиторыКредиторы.Подразделение,
        ДебиторыКредиторы.Валюта,
        ДебиторыКредиторы.Организация,
        ДебиторыКредиторы.Год
    Скриншоты: https://dropmefiles.com/A8b4X
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    прикрепите скриншоты к сообщению через кнопку загрузить файл.
    а то проксик не пускает.
    И мне код обработки расшифровки там где Открыть файл
  7. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Не вижу кнопки "Загрузить файл". Обработка расшифровки - первое сообщение.
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну если Вы говорите про это, то что в первом посту
    Код:
    Процедура СформироватьРасшифровку(ПолеСправочникаКонтрагенты) Экспорт
      ОтборХ = Новый Структура("Контрагент", ПолеСправочникаКонтрагенты);
       ПараметрыФормы = Новый Структура;
       ПараметрыФормы.Вставить("Контрагент",ПолеСправочникаКонтрагенты);
       ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
       ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма", ОтборХ, ЭтаФорма, ПолеСправочникаКонтрагенты);
    КонецПроцедуры
    То мы же уже разобрали чтоэто не верно
    --- Объединение сообщений, 20 янв 2016 ---
    Нужно тогда что то вроде

    Код:
    Процедура СформироватьРасшифровку(ПолеСправочникаКонтрагенты) Экспорт
      ОтборХ = Новый Структура("Контрагент", ПолеСправочникаКонтрагенты);
       ПараметрыФормы = Новый Структура;
       ПараметрыФормы.Вставить("Отбор",ОтборХ);
       ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
       ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма", ПараметрыФормы, ЭтаФорма, ПолеСправочникаКонтрагенты);
    КонецПроцедуры
    --- Объединение сообщений, 20 янв 2016 ---
    Кнопка рядом с кнопкой ответить
  9. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26

    Так тоже пробовала - реакции ноль.
    Прикрепляю скрины

    Вложения:

  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    а теперь код, который у Вас прописан для вызова расшифровки

    Просто если такой как в 13 посту и вашему коду
    ПараметрыФормыХ = Новый Структура("СформироватьПриОткрытии, Отбор, КлючВарианта", Истина, ОтборХ, "ДляРасшифровки");
    ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма",ПараметрыФормыХ , ЭтаФорма, ПолеСправочникаКонтрагенты);

    я У Вас спрашивал потом у Вас вариант называется "дляРасшифровки", вы говорили - да, а теперь скрин присылаете там стоит Основной
  11. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    ДляРасшифров
    "ДляРасшифровки" - это мой отчет "РасшифровкаОтчетаПоДтКт"
    --- Объединение сообщений, 21 янв 2016 ---
    Я Вас неправильно сначала поняла. У меня два отчета и два варианта. ПОэтому в настройках основной вариант для Отчета 1, и основной вариант для отчета Расшифровки.
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    выложите код, который у Вас сейчас запускает расшифровку
  13. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Теперь я совсем запуталась. Я в одном отчете должна создать два варианта настроек и в расшифровку выбирать нужный мне вариант?
    --- Объединение сообщений, 21 янв 2016 ---
    Сейчас приведу в порядок, а то я столько уже напробовала. Пару минут
    --- Объединение сообщений, 21 янв 2016 ---
    Код:
    Процедура СформироватьРасшифровку(ПолеСправочникаКонтрагенты) Экспорт
       
       СтандартнаяОбработка = Ложь;
         
       Отчет = Отчеты.РасшифровкаОтчетаПоДтКт.Создать();
       
       СтруктураНостроек = Новый Структура;
       СтруктураНостроек.Вставить("ИмяРегистра", "ДебиторыКредиторы");
       СтруктураНостроек.Вставить("КонецПериода", ТекущаяДата());
         
       СоответствиеОтбора = Новый Соответствие;
       СоответствиеОтбора.Вставить("Контрагент", ПолеСправочникаКонтрагенты);
       СтруктураНостроек.Вставить("Отбор",СоответствиеОтбора);
       
       СоответствиеГруппировок = Новый Соответствие;
       СоответствиеГруппировок.Вставить("ДокументЗадолженности");
       СтруктураНостроек.Вставить("ГруппировкиСтрок", СоответствиеГруппировок);
    
      Настройка = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
       ДоступноеПоле = Настройка.Отбор.ДоступныеПоляОтбора.Элементы.Найти("Контрагент");
       ЭлементОтбора = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
       ЭлементОтбора.ЛевоеЗначение =ДоступноеПоле.Поле;
      ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
      ЭлементОтбора.ПравоеЗначение = ПолеСправочникаКонтрагенты;
      ЭлементОтбора.Использование = Истина;
         
    
       Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройка);
         
       ФормаОтчета = Отчет.ПолучитьФорму();
       ФормаОтчета.Открыть();
       
    КонецПроцедуры
    Последнее редактирование: 21 янв 2016
  14. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    нет давайте вариант через отрыть файл, как я Вам присылал который работает.

    Просто вы вот ут пишите
    ПараметрыФормыХ = Новый Структура("СформироватьПриОткрытии, Отбор, КлючВарианта", Истина, ОтборХ, "ДляРасшифровки");
    ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма",ПараметрыФормыХ , ЭтаФорма, ПолеСправочникаКонтрагенты);

    КлючВарианта - ДляРасшифровки

    Если посмотрите на свой второй скрин то у вас такого варианта в списке вариантов нет
  15. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Так?
    Код:
    СтандартнаяОбработка = Ложь;
          
        Отчет = Отчеты.РасшифровкаОтчетаПоДтКт.Создать();
      
        ОтборХ = Новый Структура("Контрагент", ПолеСправочникаКонтрагенты);
        ПараметрыФормы = Новый Структура;
        ПараметрыФормы.Вставить("Отбор",ОтборХ);
        ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
        ПараметрыФормыХ = Новый Структура("СформироватьПриОткрытии, Отбор, КлючВарианта", Истина, ОтборХ, "Основной");
        ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма", ПараметрыФормыХ, ЭтаФорма, ПолеСправочникаКонтрагенты);
    Последнее редактирование: 21 янв 2016
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну допустим только Отчет = Отчеты.РасшифровкаОтчетаПоДтКт.Создать(); можно убрать и Ключ Варианта то же не обязательный т.к у Вас вариант один.

    Ну вот так работает или что?
  17. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Формировать-то формирует - отбора только нет.
    Ни значение не подставляется, ни значение использования (галочка) не ставится.
  18. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вопрос еще вот это Вам зачем
    ПараметрыФормыХ = Новый Структура("СформироватьПриОткрытии, Отбор, КлючВарианта", Истина, ОтборХ, "Основной");

    Попробуйте просто вот так

    СтандартнаяОбработка = Ложь;

    ОтборХ = Новый Структура("Контрагент", ПолеСправочникаКонтрагенты);
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Отбор",ОтборХ);
    ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
    ОткрытьФорму("Отчет.РасшифровкаОтчетаПоДтКт.Форма", ПараметрыФормыХ);
  19. TopicStarter Overlay
    Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    Без этого тоже пробовала - но отбор не появляется.
  20. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Ну тогда надо уже так смотреть. Просто я тот код что Вам скидывал у меня все работает.

Поделиться этой страницей