Добрый день.

Изучаю Хрусталеву (скд).
Набор данных-объект.
Предлагается конструктором выбрать данные (выбраны), задать имя макета (задано)

Далее предлагается в форме документа вынести кнопку-нажатие и прописать приложенный код.
Это же для обычных форм?

Вопрос:
Как вызвать данные макета скд из документа, адаптировав код под управляемые?

1. Создаю команду и выношу на форму
2. Вешаю обработчик на клиенте и сервере
3. создаю серверную функцию "получить макет"

дальше каша где что прописывать и то ли делаю

Намекните. Спасибо
---
```1c
    &НаКлиенте
    Процедура СформироватьОтчет()
    ДокументРезультат = СформироватьОтчетНаСервере();
    ДокументРезультат.Показать();
    КонецПроцедуры

    &НаСервере
    Функция СформироватьОтчетНаСервере()
    // весь код, как у хрусталевой, кроме последней строки
    Возврат ДокументРезультат;
    КонецФункции
```

Попробуй так
---
Далее предлагается в форме документа вынести кнопку-нажатие и прописать приложенный код.
Это же для обычных форм?
Почему? Для управляемых. Этот код для формы документа РасходнаяНакладная. Нужно сделать команду Продажи, разместить её на этой форме. Этот код для отработки события Нажатие.
---
```1c
    &НаКлиенте
    Процедура СформироватьОтчет()
    ДокументРезультат = СформироватьОтчетНаСервере();
    ДокументРезультат.Показать();
    КонецПроцедуры

    &НаСервере
    Функция СформироватьОтчетНаСервере()
    // весь код, как у хрусталевой, кроме последней строки
    Возврат ДокументРезультат;
    КонецФункции
```

Попробуй так
---
Меня смутило добавление именно Кнопки с процедурой для элемента КнопкаНажатие
В УФ вместо рисования кнопок команды. но я только учусь.

(3) Получилось! Спасибо. Только еще надо было получить Макет. Весь код по заданию Хрусталевой выглядит так:
(отображает суммировано все продажи по конкретному поставщику). Выделены коррекции листинга - иначе ругалось

Скрытый текст
```1c
    &НаКлиенте
    Процедура Продажи(Команда)
    ДокументРезультат = ПродажиНаСервере();
    ДокументРезультат.Показать();
    КонецПроцедуры

    &НаСервере
    Функция ПродажиНаСервере()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РасходнаяНакладнаяМатериалы.Материал КАК Материал,
    | РасходнаяНакладнаяМатериалы.Количество КАК Количество,
    | РасходнаяНакладнаяМатериалы.Сумма КАК Сумма,
    | РасходнаяНакладнаяМатериалы.Цена КАК Цена,
    | РасходнаяНакладная.Ссылка КАК Ссылка
    |ИЗ
    | Документ.РасходнаяНакладная.Материалы КАК РасходнаяНакладнаяМатериалы
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная
    | ПО РасходнаяНакладнаяМатериалы.Ссылка = РасходнаяНакладная.Ссылка
    |ГДЕ
    | РасходнаяНакладная.Поставщик = &Поставщик";

    Запрос.УстановитьПараметр("Поставщик", Объект.Поставщик);

    Результат = Запрос.Выполнить();
    СписокПродаж = Результат.Выгрузить();

    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("Продажи", СписокПродаж);

    СхемаКомпоновкиДанных = ПолучитьМакет("ПродажиКонтрагента");
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);

    ДокументРезультат = Новый ТабличныйДокумент;
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    ДокументРезультат.ОтображатьСетку = Ложь;
    ДокументРезультат.ОтображатьЗаголовки = Ложь;

    Возврат ДокументРезультат;

    КонецФункции

    &НаСервере
    Функция ПолучитьМакет(ПродажиКонтрагента)
    Обработка=РеквизитФормыВЗначение("Объект");
    Макет = Обработка.ПолучитьМакет(ПродажиКонтрагента);
    Возврат Макет;
    КонецФункции
```