8.х Как вставить область в ТабличныйДокумент

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

  1. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Добрый день. Надо сделать в общем-то простой отчет. Основой служит результат запроса с группировками. Все выводится как в приложении . И началась закавыка с итоговым полем КолВоПоСписанию.
    Сейчас я сначала вывожу данные группировки из запроса, а потом идут строчки детализации. Но КолВоПоСписанию рассчитывается для каждой строчки и зависит от доп.Реквизита. Можно было бы сначала выводить детализацию, а потом Итог, но пользователи уже привыкли у такому варианту.
    Поэтому попробовала ВставитьОбласть в таблДок, но .... вставляемая область не раздвигает, а заменяет уже выведенные .

    Вложения:

  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    В чем сложности посчитать сумму сразу, вывести ее, а потом выводить ее составляющие?
  3. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Чтобы подсчитать сумму - надо пройти цикл детализации, чтобы вывести строчки - надо пройти цикл. Дублировать цикл?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    ээээээ.... как минимум два варианта:
    • Если обходим выборку, то выборка должна формироваться через ИТОГИ ПО
    • Если обходим ТЗ, то все еще проще и без циклов
  5. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    у меня выборка и формируется через ИТОГИ ПО, но одно поле я не могу выбрать запросом!!! Я его получаю ручками, суммируя результат вычисления по каждой строчке.
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Строка итогов по группе содержит общую сумму, а выборка детальных записей по группе будет содержать значения, из которых сложилась сумма.

    У вас же что-то вроде этого:
    Код:
    ВыборкаОбщийИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    ВыборкаОбщийИтог.Следующий();
    
    Область = Макет.ПолучитьОбласть("ОбщиеИтоги");
    Область.Параметры.Заполнить(ВыборкаОбщийИтог);
    ТабДок.Вывести(Область);
    
    ВыборкаОрганизации = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаОрганизации.Следующий() Цикл
    
    Область = Макет.ПолучитьОбласть("Организация");
    Область.Параметры.Заполнить(ВыборкаОрганизации);
    ТабДок.Вывести(Область);
    
    ВыборкаКонтрагенты = ВыборкаОрганизации.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаКонтрагенты.Следующий() Цикл
    
    Область = Макет.ПолучитьОбласть("Контрагент");
    Область.Параметры.Заполнить(ВыборкаКонтрагенты);
    ТабДок.Вывести(Область);
    .....
    КонецЦикла
    
    КонецЦикла;
    Последнее редактирование: 2 фев 2016
  7. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    Да структура запроса похожа, но как это связано с
    ???
    Попробую объяснить еще раз: когда я перебираю детальные записи, то беру значение из запроса (к примеру Коли) и может быть с ним что-то делаю. В зависимости от дополнительного реквизита номенклатуры я могу умножить, а могу оставить без изменения. Я не знаю как получить значение доп.реквизита в запросе, поэтому я получаю его при обходе детальных записей, но ИТОГИ ПО группе уже же выведены....
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Получите запросом, используя соединения таблиц, сразу все необходимые данные и используйте агрегирующие функции для ресурсов в ИТОГИ ПО.
    Последнее редактирование: 3 фев 2016
  9. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    значит по исходной теме вариантов нет? Т.е. именно вставить, а не заменить область таблДок? Ладно.....
    Тогда вопрос трансформируется так: как запросом выбрать дополнительный реквизит? Т.е. тот самый который план видов характеристик?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    Именно вставить область в ТабДок - это только если с самим ТабДоком напрямую работать. Для работы с ТабДок напрямую необходимо знать адрес уже выведенной области в масштабах ТабДок-а.

    Вас не интересуют сами элементы плана видов характеристик, вас интересуют значения . Значения доп. реквизитов хранятся в регистре сведений ЗначенияСвойствОбъектов.
  11. TopicStarter Overlay
    Ktyf
    Offline

    Ktyf Опытный в 1С

    Регистрация:
    16 янв 2013
    Сообщения:
    457
    Симпатии:
    12
    Баллы:
    29
    это не проблема, адрес я могу получить/узнать. Проблема в том, что когда я пишу таблДок.ВставитьОбласть(Источник, Приемник), то в итоге у меня Источник ЗАМЕЩАЕТ, а не СДВИГАЕТ Приемник
    спасибо - я забыла, что они хранятся в РС

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