Консультация № 171197
10.08.2009, 10:46
0.00 руб.
17.08.2009, 21:22
0 10 1
Здравствуйте, уважаемые эксперты. 1С:Предприятие 8.1
1. Как получить данные одной формы, находясь на другой? Например, на 1 форме есть полев вода. Как поместить данные этого поля ввода на форму 2, используя внешние обработки?
2. Подскажите, пожалуйста, как создать макет для вывода на печать данных из справочника и его табличных частей. Есть Шаблон в MicrosoftWord. Слышал, что можно его использовать как ActiveDocument. В нужные поля вставить данные из 1С и потом вывести на печать. Еще нужна возможность редактирования созданного отчета при выводе на печать. И сохранение отчета в doc. или xls. Спасибо заранее за помощь. Очень жду.

Обсуждение

Неизвестный
10.08.2009, 14:01
общий
Роман Андреевич:
Похоже, тут больше, чем 2 вопроса. Иногда я не отвечаю на такие множественные вопросы, т.к. считаю, что ответ будет неполный, за что могу получить соответсвующую оценку.

1. Как получить данные одной формы, находясь на другой? Например. на 1 форме есть полев вода. Как поместить данные этого поляввода на форму 2, используя внешние обработки?
2. Подскажите, пожалуйста, как создать макет для вывода на печать данных из справочника и его табличных частей.
3. Есть Шаблон в MicrosoftWord. Слышал, что можно его использовать как ActiveDocument. В нужные поля вставить данные из 1С и потом вывести на печать.
4. Еще нужна возможность редактирования созданного отчета при выводе на печать. И сохранение отчета в doc. или xls. Спасибо заранее за помощь. Очень жду.

Предполагаемые ответы:

1. Если данные на обной форме связаны с объектом конфигурации и уже записаны - можно на второй форме их прочитать.
2. Можно запустить конструктор макета печати этого справочника и посмотреть готовый результат. В общем случае подключается макет, читается из него область, заполняются значения этой области и присоединяется к печатной форме. Также и с табличными частяи - к каждой табличной части обращаются по её наименованию и перебираются элементы.
3. --- не сталкивался, можно посмотреть чужие обработки
4. Редактирование отчета перед печатью - достаточно не включать запрет на редактирование. Что касается сохранения в документы Офиса - тоже неоднозначно: можно вручную "Сохранить как", можно программно сформировать документ, н я не стлкивался.

P.S. Я только начал изучать восьмерку.
Неизвестный
10.08.2009, 15:39
общий
это ответ
Здравствуйте, Роман Андреевич.

1. Самый простой способ - инициировать открытие формы программно и программно получить данные с нее после закрытия:

Форма = Справочники.Номенклатура.ПолучитьФормуСписка();
Форма.ОткрытьМодально();
Сообщить(Форма.ПолеВВода1);

Второй вариант - переподключить обработчик событий:

Форма = Справочники.Номенклатура.ПолучитьФормуСписка();
Форма.ПодключитьОбработчикИзмененияДанных("РеквизитФормы","ПриНоменклатуре");
Форма.ОткрытьМодально();

Но в этом случае процедура ПриНоменклатуре(РасшифровкаСобытия) должна находиться в модуле открываемой формы.

Стандартных способов 1с для других видов обработки сабытий не существует. ТК в 1с все процедуры-обработчики событий должны находиться в модуле этого элемента и никак иначе. Те из внешней обработки процедуру не подуключишь.

Что касается редактирования - на самом макете при выводе - не устраивает?


2. По поводу MicrosoftWord

С Вордом работаем через механизм COM/OLE

Word=Новый COMОбъект("Word.Application");
Word.Visible=Истина; //Делаем страницу видимой на экране
Word.Documents.Add();
Документ = Word.ActiveDocument();
Документ.Paragraphs.Add(); //Добавляем параграф
Документ.Paragraphs(1).Range().InsertAfter("Наш документ");
Документ.Paragraphs(2).Range().Style="Заголовок 2";
Документ.Save();
Документ.Close();
Word.Quit();

Остальные методы - ДОСТУПНЫ ВСЕ МЕТОДЫ WORD - читать в документации по Word программирование в VisualBasic
4
спасибо за пояснение создания документов. самое главное мне нужно было узнать как применять шаблоны Word.
Неизвестный
10.08.2009, 21:02
общий
Владимир Лазурко:
Спасибо за ответы, но мне нужно конкретное пояснение. Можете рассказать подробнее?
Неизвестный
10.08.2009, 21:08
общий
Anton Devitsin:
о WOrd. мне нужно из задействовать созданный шаблон в Word'e, подставив в него параметры из 1С. Допустим имя из справочника и т.д. Чтобы при выводе на печать данные подставлялись в него, редактировались и выводились.
Неизвестный
10.08.2009, 21:26
общий
Владимир Лазурко:
Подскажите, как снять запрет на редактирование макета??? В его св-вах не нашел.
Неизвестный
10.08.2009, 21:43
общий
Владимир Лазурко:
Нашел как снять запрет на редактирование. У ячейки макета есть св-во защита. Просто снял галку.
Неизвестный
11.08.2009, 00:30
общий
Роман Андреевич:
Template.AutoTextEntries("Name").Value = "Текст"

Где - Template - Word шаблон
Name - Имя текстового поля
Текст - Значение которое надо внести в шаблон.

Думаю все уже понятно. Удачи.
Неизвестный
11.08.2009, 09:33
общий
Роман Андреевич:
Вот методы таблицы:

ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;


Соответственно, если установить флаги Истина в Ложь, то Вы получите незащищенную таблицу, которую можно реактировать.
Неизвестный
11.08.2009, 21:17
общий
Anton Devitsin:
Спасибо, сейчас понятно, буду пробовать
Неизвестный
11.08.2009, 21:18
общий
Владимир Лазурко:
Спасибо с этим разобрался.
Форма ответа