| 
 
  Авторизация
                    
                    
                    
                        
                      
                    На сайте: 
 |  | Содержание 
 Как выгрузить прайс-лист в документ программы Microsoft Word?
 
 
 
 Попытка MSWord = Новый COMОбъект("Word.Application");
 Исключение
 Сообщить("Не удалось инициализировать Microsoft Word");
 Возврат;
 КонецПопытки;
 Запрос = Новый Запрос;
 // Получить данные для формируемого прайс-листа.
 Запрос.Текст = "ВЫБРАТЬ
 |       ЦеныКомпанииСрезПоследних.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
 |        ЦеныКомпанииСрезПоследних.Цена,
 |      ЦеныКомпанииСрезПоследних.Номенклатура.Наименование КАК Номенклатура,
 |        1 КАК Количество
 |ИЗ
 |        РегистрСведений.ЦеныКомпании.СрезПоследних(&Дата, ТипЦен = &ТипЦен) КАК ЦеныКомпанииСрезПоследних
 |УПОРЯДОЧИТЬ ПО
 |   Номенклатура
 |ИТОГИ Количество(Количество) ПО
 |       ОБЩИЕ";
 Запрос.УстановитьПараметр("Дата", ТекущаяДата());
 Запрос.УстановитьПараметр("ТипЦен", ТипЦен);
 Результат = Запрос.Выполнить();
 Попытка
 // Создать новый документ
 MSWord.Documents.Add();
 Документ = MSWord.ActiveDocument();
 // Добавить новый параграф в созданный документ.
 Документ.Paragraphs.Add();
 НомерПараграфа = Документ.Paragraphs.Count();
 Параграф = Документ.Paragraphs.Item(НомерПараграфа);
 // В созданный параграф вставить новый "диапазон"
 // и разместить в нем текст "Прайс-Лист".
 Параграф.Range.InsertAfter("Прайс-Лист");
 // Установить стиль параграфа "Заголовок 1" (он должен быть определен).
 Параграф.Range.Style="Заголовок 1";
 Документ.Paragraphs.Add();
 НомерПараграфа = Документ.Paragraphs.Count();
 Параграф = Документ.Paragraphs.Item(НомерПараграфа);
 Параграф.Range.InsertAfter("Сформирован на дату: " + Строка(ТекущаяДата()));
 Параграф.Range.Style = "Обычный";
 ВыборкаКоличества = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 ВыборкаКоличества.Следующий();
 КоличествоСтрок = ВыборкаКоличества.Количество;
 Документ.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();
 КонецПопытки;
 
 |