8.х Вывод в Word

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем GabrielGrey, 14 май 2010.

  1. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Помогите пожалуйста, не получается вывести прайс-лист в ворд. В чем моя ошибка?

    Код:
     Процедура ОсновныеДействияФормыПрайс(Кнопка)
    Попытка
    MSWord = Новый COMОбъект("Word.Application");
    Исключение 
    Сообщить("Не удалось инициализировать Microsoft Word");
    Возврат;
    КонецПопытки;
    Запрос = Новый Запрос;
    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |	ЦеныСрезПоследних.Номенклатура КАК Номенклатура,
    |	ЦеныСрезПоследних.Цена
    |ИЗ
    |	РегистрСведений.Цены.СрезПоследних(&Дата) КАК ЦеныСрезПоследних
    |
    |УПОРЯДОЧИТЬ ПО
    |	Номенклатура";
    
    Запрос.УстановитьПараметр("Дата"  , ТекущаяДата());
    Результат = Запрос.Выполнить();			 
    Попытка
    MSWord.Documents.Add();
    Документ = MSWord.ActiveDocument();
    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф 	   = Документ.Paragraphs.Item(НомерПараграфа);
    Параграф.Range.InsertAfter("Прайс");
    Параграф.Range.Style = "Заголовок 1";
    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф 	   = Документ.Paragraphs.Item(НомерПараграфа);
    Параграф.Range.InsertAfter("Сформирован на дату: " + Строка(ТекущаяДата()));
    Параграф.Range.Style = "Обычный";
    ВыборкаКоличества = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ВыборкаКоличества.Следующий();
    КоличествоСтрок = ВыборкаКоличества.Количество();
    Документ.Paragraphs.Add();
    НомерПараграфа = Документ.Paragraphs.Count();
    Параграф 	   = Документ.Paragraphs.Item(НомерПараграфа);
    Документ.Tables.Add(Параграф.Range, КоличествоСтрок, 2);
    Таблица = Документ.Tables.Item(1);
    Таблица.Cell(1,1).Range().InsertAfter("Номенклатура");
    Таблица.Cell(1,1).Shading.BackgroundPatternColor = 16776960;
    Таблица.Cell(1,2).Range().InsertAfter("Цена");
    Таблица.Cell(1,2).Shading.BackgroundPatternColor = 16776960;
    НомерСтроки = 1;
    Выборка = ВыборкаКоличества.Выбрать();
    Пока Выборка.Следующий() Цикл
    НомерСтроки = НомерСтроки + 1;
    Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Выборка.Номенклатура);
    Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Строка(Выборка.Цена));
    КонецЦикла;	
    MSWord.Visible = Истина;
    MSWord.Activate();
    Исключение
    Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();
    КонецПопытки;
    КонецПроцедуры 
    
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    А что вообще ничего не выводит? или на что ругается и зачем прайс лист в Ворд? почему бы не в Эксель?
  3. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Надо именно в ворд. Создает таблицу, заполняет название столбцов, а дальше пустые строки
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Попробуйте вот тут

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

    Код:
    Пока Выборка.Следующий() Цикл
    НомерСтроки = НомерСтроки + 1;
    Таблица.Cell(НомерСтроки,1).Range().InsertAfter("ааа");
    Таблица.Cell(НомерСтроки,2).Range().InsertAfter("ааа");	
    КонецЦикла;
    
    Таблицу буквами ааа заполнятет?
  5. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    заполнило 1ю строку
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    А остальные строки вывел и они пустые или их нет?Просто при таком раскладе если вы правильно обход по группировкам написали то должна вывестисб вся талица заполненнаая ааа..
  7. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    выводится тока 2 строки первая заполненая 2я пустая, до этого выводились все но пустые
  8. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    т.е. как толко вписали "ааа" таблица из 10 строк превратилась в 2 строки...?

    У Вас есть описании функции из MSDN InsertAfter, которую вы используете, потому как по переводу можно судить что типа вставь после.. просто MSDN сейчас под рукой нет
  9. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    не всёже я не туда аа вставил) там всё также строки есть но не заполненые
  10. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Вставили "ааа" куда надо, строки все но пустые т.е есть пустая таблица...
  11. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
  12. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Вот статейка хорошая почитайте....

    range1 := WordDocument1.Range;
    a := 5;
    b := 15;
    range2 := WordDocument1.Range(a, :unsure:;
    range3 := WordDocument1.Range(a);




    Первый наш объект включает в себя весь текст документа, у второго мы ограничили пределы 5-м и 15-м символами, третий представляет из себя весь последующий текст документа, начиная с 5-го символа.

    Просто насколько я понимаю тут область в символах а не в строках и колонках. Как в Экселе
  13. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    всеже прайс не получился))) решил поробовать вывести табличную часть документа в ворд тоже не получилось, выводит правильное количество строк даже заполняет, но заполняет все строки как первую т.е. 1я строка из табличной части документа всё время повторяется. Не подскажите как сделать чтобы в каждую следующую строку в ворде выводилась следующая строка из табличной части документа?
    что тут не правильно?
    Код:
    	Для Каждого СтрокаТЧ Из Состав Цикл
    НомерСтроки = НомерСтроки+1;
    
    Выборка = ЭлементыФормы.Состав.ТекущиеДанные;
    
    Номенклатура=Выборка.Номенклатура;
    Сумма=Выборка.Сумма;
    
    Таблица.Cell(НомерСтроки,1).Range().InsertAfter(Строка(Номенклатура));
    Таблица.Cell(НомерСтроки,2).Range().InsertAfter(Сумма);
    
    КонецЦикла;
    
    
  14. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Заполняет не как первую строку а как ту которая выделена.
  15. TopicStarter Overlay
    GabrielGrey
    Offline

    GabrielGrey

    Регистрация:
    14 май 2010
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    проблема решена)
  16. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.631
    Симпатии:
    946
    Баллы:
    204
    Отлично.....Рады были хоть чемто помочь
  17. XPsihopaTX
    Offline

    XPsihopaTX

    Регистрация:
    24 фев 2013
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    А решение скинуть слабо было?
Похожие темы
  1. Abeke
    Ответов:
    3
    Просмотров:
    924
  2. Siddy
    Ответов:
    6
    Просмотров:
    1.667
Загрузка...

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