Как выгрузить прайс-лист в документ программы Microsoft Word?
---
```1c
    Попытка
    MSWord = Новый COMОбъект("Word.Application");
    Исключение
    Сообщить("Не удалось инициализировать Microsoft Word");
    Возврат;
    КонецПопытки;

    Запрос = Новый Запрос;

    // Получить данные для формируемого прайс-листа.
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныКомпанииСрезПоследних.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    | ЦеныКомпанииСрезПоследних.Цена,
    | ЦеныКомпанииСрезПоследних.Номенклатура.Наименование КАК Номенклатура,
    | 1 КАК Количество
    |ИЗ
    | РегистрСведений.ЦеныКомпании.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК ЦеныКомпанииСрезПоследних
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура
    |ИТОГИ Количество(Количество) ПО
    | ОБЩИЕ";

    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("ТипЦен", ТипЦен);

    Результат = Запрос.Выполнить();

    Попытка

    // Создать новый документ
    MSWord.Documents.Add();
    Документ = MSWord.ActiveDocument();

    // Добавить новый параграф в созданный документ.
    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф = Документ.Paragraphs.Item(НомерПараграфа);

    // В созданный параграф вставить новый "диапазон"
    // и разместить в нем текст "Прайс-Лист".
    Параграф.Range.InsertAfter("Прайс-Лист");

    // Установить стиль параграфа "Заголовок 1" (он должен быть определен).
    Параграф.Range.St yle="Заголовок 1";

    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф = Документ.Paragraphs.Item(НомерПараграфа);
    Параграф.Range.InsertAfter("Сформирован на дату: " + Строка(ТекущаяДата()));
    Параграф.Range.St yle = "Обычный";

    ВыборкаКоличества = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ВыборкаКоличества.Следующий();
    КоличествоСтрок = ВыборкаКоличества.Количество;

    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф=Документ.Paragraphs.Item(НомерПараграфа);

    // Вставить таблицу с количеством строк равным количеству записей
    // в выборке результата запроса и с тремя колонками
    Документ.Tables.Add(Параграф.Range, КоличествоСтрок, 3);

    // Получить таблицу как объект в отдельную переменную
    // учитывая тот факт, что таблица у нас единственная
    Таблица = Документ.Tables.Item(1);

    // Записать данные в ячейку таблицы строка №1, колонка №1
    Таблица.Cell(1,1).Range().InsertAfter("Номенклатура");

    // Установить цвет фона в ячейке
    Таблица.Cell(1,1).Shading.BackgroundPatternColor = 16776960;
    Таблица.Cell(1,2).Range().InsertAfter("Цена");
    Таблица.Cell(1,2).Shading.BackgroundPatternColor = 16776960;
    Таблица.Cell(1,3).Range().InsertAfter("Ед.Изм.");
    Таблица.Cell(1,3).Shading.BackgroundPatternColor = 16776960;

    НомерСтроки = 1;

    Выборка = ВыборкаКоличества.Выбрать();
    Пока Выборка.Следующий() Цикл НомерСтроки = НомерСтроки + 1;
    Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Выборка.Номенклатура);
    Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Строка(Выборка.Цена));
    Таблица.Cell(НомерСтроки,3).Range().InsertAfter(Выборка.ЕдиницаИзмерения);
    КонецЦикла;

    MSWord.Visible = Истина;
    MSWord.Activate();

    Исключение

    // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();
    КонецПопытки;
```
---
```1c
    Попытка
    MSWord = Новый COMОбъект("Word.Application");
    Исключение
    Сообщить("Не удалось инициализировать Microsoft Word");
    Возврат;
    КонецПопытки;

    Запрос = Новый Запрос;

    // Получить данные для формируемого прайс-листа.
    Запрос.Текст = "ВЫБРАТЬ
    | ЦеныКомпанииСрезПоследних.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    | ЦеныКомпанииСрезПоследних.Цена,
    | ЦеныКомпанииСрезПоследних.Номенклатура.Наименование КАК Номенклатура,
    | 1 КАК Количество
    |ИЗ
    | РегистрСведений.ЦеныКомпании.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК ЦеныКомпанииСрезПоследних
    |УПОРЯДОЧИТЬ ПО
    | Номенклатура
    |ИТОГИ Количество(Количество) ПО
    | ОБЩИЕ";

    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("ТипЦен", ТипЦен);

    Результат = Запрос.Выполнить();

    Попытка

    // Создать новый документ
    MSWord.Documents.Add();
    Документ = MSWord.ActiveDocument();

    // Добавить новый параграф в созданный документ.
    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф = Документ.Paragraphs.Item(НомерПараграфа);

    // В созданный параграф вставить новый "диапазон"
    // и разместить в нем текст "Прайс-Лист".
    Параграф.Range.InsertAfter("Прайс-Лист");

    // Установить стиль параграфа "Заголовок 1" (он должен быть определен).
    Параграф.Range.St yle="Заголовок 1";

    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф = Документ.Paragraphs.Item(НомерПараграфа);
    Параграф.Range.InsertAfter("Сформирован на дату: " + Строка(ТекущаяДата()));
    Параграф.Range.St yle = "Обычный";

    ВыборкаКоличества = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ВыборкаКоличества.Следующий();
    КоличествоСтрок = ВыборкаКоличества.Количество;

    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф=Документ.Paragraphs.Item(НомерПараграфа);

    // Вставить таблицу с количеством строк равным количеству записей
    // в выборке результата запроса и с тремя колонками
    Документ.Tables.Add(Параграф.Range, КоличествоСтрок, 3);

    // Получить таблицу как объект в отдельную переменную
    // учитывая тот факт, что таблица у нас единственная
    Таблица = Документ.Tables.Item(1);

    // Записать данные в ячейку таблицы строка №1, колонка №1
    Таблица.Cell(1,1).Range().InsertAfter("Номенклатура");

    // Установить цвет фона в ячейке
    Таблица.Cell(1,1).Shading.BackgroundPatternColor = 16776960;
    Таблица.Cell(1,2).Range().InsertAfter("Цена");
    Таблица.Cell(1,2).Shading.BackgroundPatternColor = 16776960;
    Таблица.Cell(1,3).Range().InsertAfter("Ед.Изм.");
    Таблица.Cell(1,3).Shading.BackgroundPatternColor = 16776960;

    НомерСтроки = 1;

    Выборка = ВыборкаКоличества.Выбрать();
    Пока Выборка.Следующий() Цикл НомерСтроки = НомерСтроки + 1;
    Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Выборка.Номенклатура);
    Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Строка(Выборка.Цена));
    Таблица.Cell(НомерСтроки,3).Range().InsertAfter(Выборка.ЕдиницаИзмерения);
    КонецЦикла;

    MSWord.Visible = Истина;
    MSWord.Activate();

    Исключение

    // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();
    КонецПопытки;
```
---
Сохранить как ...Документ Word