Присоединить колонки справа и сгруппировать детали

Учебные задачи

Вывести располагает новый блок снизу; Присоединить — справа от последнего выведенного блока. Две детальные колонки входят в группу, итог остаётся отдельно.

Где и как запускать

Полный модуль управляемой формы собственной учебной внешней обработки. Построение выполняется на сервере без контекста; показ — на клиенте. Вставляйте на уровне модуля.

Подготовка

  1. Создайте новую внешнюю обработку с управляемой основной формой в учебной базе. Каждый урок — отдельная копия модуля.

  2. На форме создайте команду УчебныйПример и перетащите её на форму как кнопку. В действии команды выберите процедуру УчебныйПример(Команда).

  3. Вставьте весь модуль из примера: УчебныйПример, ПостроитьУчебныйДокумент и УчебнаяТаблица. Серверный вызов возвращает собственный табличный документ клиенту; директивы не удаляйте.

  4. Никакие макеты, документы и справочники конфигурации не нужны. Всё построение — в памяти, без печати, записи файлов и отправки в сервисы.

  5. Показ и ручную проверку выполняйте в тонком клиенте Windows 8.5.1.1343. Каждый урок — отдельная копия формы с пустым модулем до вставки.

&НаКлиенте
Процедура УчебныйПример(Команда)
    ТабДок = ПостроитьУчебныйДокумент();

    ТабДок.Показать("Учебный документ — без печати и сохранения");
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПостроитьУчебныйДокумент()
    ТабДок = Новый ТабличныйДокумент;
    Левая = Новый ТабличныйДокумент;
    Левая.Область(1, 1).Текст = "Показатель";
    Левая.Область(2, 1).Текст = "Продажи";
    Детали = Новый ТабличныйДокумент;
    Детали.Область(1, 1).Текст = "Книга";
    Детали.Область(1, 2).Текст = "Ручка";
    Детали.Область(2, 1).Текст = "750";
    Детали.Область(2, 2).Текст = "50";
    Итог = Новый ТабличныйДокумент;
    Итог.Область(1, 1).Текст = "Итого";
    Итог.Область(2, 1).Текст = "800";
    ТабДок.Вывести(Левая);
    ТабДок.НачатьГруппуКолонок("Товарные суммы", Истина);
    ТабДок.Присоединить(Детали);
    ТабДок.ЗакончитьГруппуКолонок();
    ТабДок.Присоединить(Итог);
    ТабДок.ИтогиСправа = Истина;
    ТабДок.ОтображатьГруппировки = Истина;
    ТабДок.ТолькоПросмотр = Истина;
    Сообщить(ТабДок.КоличествоУровнейГруппировокКолонок() = 1);
    Сообщить(ТабДок.Область(2, 4).Текст = "800");
    ТабДок.ПоказатьУровеньГруппировокКолонок(0);
    Возврат ТабДок;
КонецФункции

Разбор по шагам

  1. Все три блока по две строки; это делает горизонтальное присоединение наглядным. Итог занимает четвёртую колонку.

  2. Между началом и концом группы присоединяем только две колонки детализации. Колонка Итого присоединяется после закрытия группы.

  3. ИтогиСправа меняет сторону маркера секции. ПоказатьУровеньГруппировокКолонок(0) показывает свернутый уровень.

Как проверить результат

  1. Две проверки дают Истина.

  2. В показе разверните группу сверху: появятся Книга/750 и Ручка/50; Итого/800 уже находится снаружи справа.

  3. У результата четыре колонки, хотя при сворачивании видна только их часть.

Ожидаемый результат

Горизонтальная компоновка с явной группой и отдельной итоговой колонкой.

На что обратить внимание

  1. Присоединить не пересчитывает 750+50: итог здесь подготовлен явно.

  2. ИтогиСправа не гарантирует сохранение положения маркеров при сохранении документа в файл; в уроке файлов нет.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.