Обеспечение автоматизации работы с клиентами при помощи информационной подсистемы "ЮГСтрой-Заказ"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
t;=");
Если ПозицияСимволаРавно <> 0 тогда
Шаблон = "";
Значение = СокрЛП(Сред(ТекущаяСтрока,ПозицияСимволаРавно + 1,СтрДлина(ТекущаяСтрока)));
Попытка
Замена = WordДокумент.Content.Find;
//Если ТипЗнч(ЗначениеПараметра) = Тип("Дата") Тогда
//ЗначениеРеквизитаДокумента = Формат(ЗначениеПараметра,"ДФ=dd.MM.yyyy");
//Иначе
//ЗначениеРеквизитаДокумента = Строка(ЗначениеПараметра);
//КонецЕсли;
Замена.Execute(Шаблон, Ложь, Ложь, Ложь,Ложь , Ложь, Истина, 1, Истина, Значение, wdReplaceAll);
Исключение
// Если произойдет ошибка выводятся данные об ошибке
//Сообщить(ОписаниеОшибки());
Сообщить("В документе не найден реквизит [" + Шаблон + "]");
// Если принудительно закрываем MSWord то необходимо присвоть
// ОДР_СтруктураПараметровШаблона.WordДокумент = Неопределено
// или просто оставить открытым документ MSWord, тогда всо обработется корректно при закрытии
// MSWord пользователем
//MSWord.Application.Quit();
КонецПопытки;
КонецЕсли;
КонецЦикла;
// Делаем видимым приложение и активизируем его.
MSWord.Application.Visible = Истина;
MSWord.Activate();
КонецПроцедуры.
Процедура ШаблонДоговораПриИзменении(Элемент)
РеквизитыШаблона = ПолучитьРеквизитыШаблона(Объект.Шаблон);
Для Каждого Ключ из РеквизитыШаблона цикл
ПолеДокумента.Добавить(Ключ.Ключ + " = " + Символы.ПС);
КонецЦикла;
КонецПроцедуры.
Б.2 - Листинг модуля справочника ШаблоныДокументов
Функция ПолучитьСтруктуруРеквизитов(ПутьКФайлу)
MSWord = Новый COMОбъект("Word.Application");
//MSWord.Visible = Истина;
WordДокумент = MSWord.Documents.Open(ПутьКФайлу);
// достанем расширение
Расширение = Прав(ПутьКФайлу,5);
ПозицияТочки = Найти(Расширение,".");
Если ПозицияТочки <> 0 тогда
Расширение = Сред(Расширение,ПозицияТочки + 1, СтрДлина(Расширение));
ЗаписатьРасширение(Расширение);
КонецЕсли;
//загружаем реквизиты
КоличествоСлов= WordДокумент.Words.Count;
Слова = WordДокумент.Words;
НомерСлова = 0;
НомерПозицииПараметра = 0;
НомерОткрывающейСкобки = 0;
НомерЗакрывающейСкобки = 0;
СтруктураРеквизитов = Новый Структура();
Для Каждого Слово из Слова цикл
НомерСлова = НомерСлова + 1;
ТекстСлова = Слово.Text;
Если Найти(ТекстСлова," 0 тогда
НомерОткрывающейСкобки = НомерСлова;
КонецЕсли;
Если Найти(ТекстСлова,"#>") > 0 тогда
НомерЗакрывающейСкобки = НомерСлова;
КонецЕсли;
Если НомерЗакрывающейСкобки - НомерОткрывающейСкобки = 2 тогда //значит между ними параметр
НомерПозицииПараметра = НомерОткрывающейСкобки + 1;
ПараметрШаблона = WordДокумент.Words(НомерПозицииПараметра).Text;
СтруктураРеквизитов.Вставить(ПараметрШаблона,"");
НомерОткрывающейСкобки = 0;
НомерЗакрывающейСкобки = 0;
КонецЕсли;
//Сообщить(""+НомерСлова+" - "+Слово.Text);
КонецЦикла;
// Делаем видимым приложение и активизируем его.
//MSWord.Application.Visible = Истина;
//MSWord.Activate();
WordДокумент.Close();
MSWord.Quit();
Возврат СтруктураРеквизитов;
КонецФункции
Процедура ПутьКФайлуШаблонаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл шаблона...";
Диалог.Фильтр = "Документ Microsoft Word (*.doc)|*.doc|Текст в формате rtf (*.rtf)|*.rtf|";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.ПроверятьСуществованиеФайла = Истина;
Диалог.МножественныйВыбор = Ложь;
Если Не Диалог.Выбрать() Тогда
Возврат;
КонецЕсли;
Объект.ПутьКФайлуШаблона = Диалог.ВыбранныеФайлы[0];
АдресВХранилище = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ПутьКФайлуШаблона),УникальныйИдентификатор);
РеквизитыШаблона=ПолучитьСтруктуруРеквизитов(Объект.ПутьКФайлуШаблона);
СтруктураПараметров = Новый Структура("Адрес,РеквизитыШаблона",АдресВХранилище,РеквизитыШаблона);
Записать(СтруктураПараметров);
КонецПроцедуры;
Процедура ПутьКФайлуШаблонаОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПутьВрФайл = ПолучитьИмяВременногоФайла(Объект.РасширениеФайлаШаблона);
Шаблон = ПолучитьШаблон();
Шаблон.Записать(ПутьВрФайл);
MSWord = Новый COMОбъект("Word.Application");
MSWord.Visible = Истина;
WordДокумент = MSWord.Documents.Open(ПутьВрФайл);
MSWord.Application.Visible = Истина;
MSWord.Activate();
КонецПроцедуры.
Б.3 - Листинг модуля документа АктОбОказанииУслуг
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
|АктОбОказанииУслугУслуги.Ссылка,
|СУММА(АктОбОказанииУслугУслуги.Сумма * (Проценты.Процент / 100)) КАК Сумма
|ИЗ
|Документ.АктОбОказанииУслуг.Услуги КАК АктОбОказанииУслугУслуги
|ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПроцентыОтПродажУслуг.СрезПоследних(
|&НаДату,
|Сотрудник = &Сотрудник
|И ВидНачисления = ЗНАЧЕНИЕ (Перечисление.ВидНачисления.Услуга)) КАК Проценты
|ПО АктОбОказанииУслугУслуги.Ссылка.Сотрудник = Проценты.Сотрудник
|ГДЕ
|АктОбОказанииУслугУслуги.Ссылка = &ВыбДокумент
|
|СГРУППИРОВАТЬ ПО
|АктОбОказанииУслугУслуги.Ссылка";
Запрос.УстановитьПарам?/p>