8.х Кросс-таблица в макете

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Mashenka_ID, 19 фев 2015.

  1. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Помогите пожалуйста кто сталкивался с созданием кросс-таблицы в макете.
    На прикрепленной картинке - как сейчас и как должно быть.
    Макет выводится из документа.
    Базу тоже прикладываю для наглядности.

    Если кто решал подобную задачу прошу помочь.

    Вложения:

    • отчет.jpg
      отчет.jpg
      Размер файла:
      135,5 КБ
      Просмотров:
      31
    • кросс.dt
      Размер файла:
      37,8 КБ
      Просмотров:
      4
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    В чем проблема это на СКД сделать?
  3. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    в макете надо без СКД
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Кому надо? Вам или преподавателю?
    пользователю с точки зрения выходного результат будет табличный документ выводиться.
    А как уже в табличном доке будет выводиться области - вы кодоми или СКД сама - это уже вопрос другой.

    + еще в вашем dt это не решимо. посмотрите на скрин Вашего документа
    Выпустили продукцию и потратили ингредиенты в каком отношении потратили ингридиенты на какую продукцию.....
    У вас даже у Продукции нет количество, что бы это хоть по пропорционально количеству разделить.

    Вложения:

    • 1111.jpg
      1111.jpg
      Размер файла:
      103,7 КБ
      Просмотров:
      25
  5. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Это база для примера. Допустим продукция 1 шт.Ничего делить в пропорциях не нужно.
    В данную продукцию входит такое-то количество ингредиентов и все. На картинке видно что в хлеб 1 сорт входит разрыхлителя 0,05кг, а этого же разрыхлителя в хлеб 2 сорт входит 0,11кг. Для проверки нажми в ТЧ Продукция на один хлеб и на другой.
    Выкладываю отчет на СКД для наглядности !!!!!!!!!!!!!!
    Но мне нужно в макете сделать программно. Если есть спецы по этой теме прошу помочь! Пожалуйста

    Вложения:

    • кросс.erf
      Размер файла:
      5,6 КБ
      Просмотров:
      4
  6. Draco
    Offline

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

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

    Т.е Вам надо будет как выводить строки, так и присоеденитяь колоки.
  7. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Вот я и ищу спеца по этой теме уже несколько дней. Но увы такое впечатление что такие отчеты никто не делал. Сколько книжек пересмотрела, тоже инфы почти никакой. Печально
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    базу не смотрела, но в принципе ничего криминального нет, по принципу у меня такой отчет примерно уже был, причем справо количество колонок было динамическое... будет время, взгляну на базу... а так смотрите в сторону присоединить, как вам Андрей уже подсказа
    --- Объединение сообщений, 19 фев 2015 ---
    а у вас платформа какая? у меня dt не загружается (((
  9. Draco
    Offline

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

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

    Просто раньше да с этим надо было мучаться писать алгоритмы в зависимости от данных. сейчас это все может СКД сама сделать
  10. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я с СКД еще не сильно подружилась, потому не могу сказать что проще, кода да - будет много, но зато на раз разберется ТС и дальше как по маслу такие отчеты будут идти...
  11. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Вот на СКД

    Вложения:

    • кросс.dt
      Размер файла:
      41 КБ
      Просмотров:
      7
  12. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    ну хорошо. добавила в форму макет с типом "схема компоновки данных"
    на форме добавила кнопку печати макета.
    как написать команду кнопки чтобы выводился макет скд?

    Вложения:

    • макет.jpg
      макет.jpg
      Размер файла:
      48,4 КБ
      Просмотров:
      22
    • форма.jpg
      форма.jpg
      Размер файла:
      78,7 КБ
      Просмотров:
      22
    • кросс1.dt
      Размер файла:
      39,8 КБ
      Просмотров:
      2
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Я же Вам выложил там все просто.Вроде все работает
    Нужны пояснения?
  14. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    никак не найду где команда вывода макета скд
  15. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    СКД не выводит макет. она его сама формирует и возвращает Табличный документ.
    Вот же код Ваш закоментил - свой написал
    Код:
    Функция ВывестиВпечатнуюФорму(Ссылка)
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
       
        СхемаКомпоновки =  Документы.ВыпускПродукции.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
       
        Настройки = СхемаКомпоновки.НастройкиПоУмолчанию;
        СхемаКомпоновки.Параметры.Ссылка.Значение=ССылка[0].ссылка;
        //Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка",ССылка[0].ссылка);
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, Настройки);
       
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; 
       
        ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,);
       
        //ДокументРезультат = Новый ТабличныйДокумент;
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        //ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
        ДокументРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
        
        //Здесь можно программно доработать табличный документ
       
        ДокументРезультат.ОтображатьЗаголовки = Ложь;
        ДокументРезультат.ОтображатьСетку = Ложь;
       
        Возврат ДокументРезультат;
    КонецФункции // ВывестиВпечатнуюФорму()
    
    //&НаКлиенте
    Процедура Печать(ТабДок, Ссылка) Экспорт
        //Макет = Документы.ВыпускПродукции.ПолучитьМакет("Печать");
        //Запрос = Новый Запрос;
        //Запрос.Текст =
        //"ВЫБРАТЬ
        //|    ВыпускПродукции.Продукция.(
        //|        Номенклатура КАК НоменклатураПродукции,
        //|        Идентификатор
        //|    ),
        //|    ВыпускПродукции.Ингредиенты.(
        //|        Номенклатура КАК НоменклатураИнгредиента,
        //|        КоличествоНетто,
        //|        Идентификатор
        //|    )
        //|ИЗ
        //|    Документ.ВыпускПродукции КАК ВыпускПродукции
        //|ГДЕ
        //|    ВыпускПродукции.Ссылка В(&Ссылка)";
        //Запрос.Параметры.Вставить("Ссылка", Ссылка);
        //Выборка = Запрос.Выполнить().Выбрать();
    
        //ШапкаГ = Макет.ПолучитьОбласть("ШапкаГ");
        //ОбластьИтогиПоВерткали = Макет.ПолучитьОбласть("ИтогиПоВерткали");
        //ОбластьПродукция = Макет.ПолучитьОбласть("Продукция");
        //ОбластьИнгредиенты = Макет.ПолучитьОбласть("Ингредиенты");
        //ОбластьИтогиПоГоризонтали = Макет.ПолучитьОбласть("ИтогиПоГоризонтали");
    
        //ТабДок.Очистить();
    
        //ТабДок.Вывести(ШапкаГ);
        //
        //Пока Выборка.Следующий() Цикл
        //   
        //    ВыборкаИнгредиенты = Выборка.Ингредиенты.Выбрать();
        //    Пока ВыборкаИнгредиенты.Следующий() Цикл
        //        ОбластьИнгредиенты.Параметры.Заполнить(ВыборкаИнгредиенты);
        //        ТабДок.Вывести(ОбластьИнгредиенты, ВыборкаИнгредиенты.Уровень());
        //    КонецЦикла;
        //   
        //    ТабДок.Вывести(ОбластьИтогиПоВерткали);
    
        //    ВыборкаПродукция = Выборка.Продукция.Выбрать();
        //    Пока ВыборкаПродукция.Следующий() Цикл
        //        ОбластьПродукция.Параметры.Заполнить(ВыборкаПродукция);
        //        ТабДок.Вывести(ОбластьПродукция, ВыборкаПродукция.Уровень());
        //    КонецЦикла;
        //    //ТабДок.Вывести(ОбластьИтогиПоГоризонтали);
        //КонецЦикла;
       
        ТабДок = ВывестиВпечатнуюФорму(Ссылка);
       
        //ТабДок.Показать();
    
       
    КонецПроцедуры
    
    Что пояснить?
  16. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Спасибо за объяснения.
    Ты уж прости только начинаю с СКД работать и отчетами, а как надпись шапки в отчете сделать? Что-то пробую во вкладке макеты и не пойму никак, все пропадает.
  17. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Заголовок можно сделать разными способами.
    1. самый банальный в СКД, на вкладке Настройки - Другие настройки - там есть Заголовок
    2. Можно конечно программно написать
    3. следать через группировку и макет оформления

    В книжке Хрусталевой все это есть. Ну или в инете наберите "Свой заголовок в СКД"
  18. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    спасибо большое )
    --- Объединение сообщений, 19 фев 2015 ---
    Платформа 8.3.5.1428. Хотелось бы программно. Отчет в итоге будет намного сложнее, просто понять принцип.
    --- Объединение сообщений, 19 фев 2015 ---
    Что-то не нравится мне СКД, лучше программно. Нашла наподобие на инфостарте, но пока не могу разобраться что к чему - http://infostart.ru/public/104689/
    Последнее редактирование: 19 фев 2015
  19. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Да не за что
  20. TopicStarter Overlay
    Mashenka_ID
    Offline

    Mashenka_ID

    Регистрация:
    8 янв 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    вот подобный макет - во вложении

    Вложения:

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