Обеспечение автоматизации работы с клиентами при помощи информационной подсистемы "ЮГСтрой-Заказ"

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

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>