Содержание 2 введение 3




Скачать 0.53 Mb.
Название Содержание 2 введение 3
страница 9/9
Дата публикации 29.05.2014
Размер 0.53 Mb.
Тип Реферат
literature-edu.ru > Информатика > Реферат
1   2   3   4   5   6   7   8   9

ПРИЛОЖЕНИЕ 3

ЛИСТИНГ ПРОГРАММЫ


Функция ПолучитьНазваниеГруппы () Экспорт

Возврат Константы.НазваниеГруппы.Получить();

КонецФункции

Функция ПолучитьТекущийКурс () Экспорт

Возврат Константы.ТекущийКурс.Получить();

КонецФункции

Функция ПолучитьПодгруппу () Экспорт

Возврат Константы.Подгруппа.Получить();

КонецФункции

//Получение почтовых констант

Функция ПолучитьПочтовыйАдрес() Экспорт

Возврат Константы.ПочтовыйАдрес.Получить();

КонецФункции

Функция ПолучитьИмя() Экспорт

Возврат Константы.Имя.Получить();

КонецФункции

Функция ПолучитьЛогин() Экспорт

Возврат Константы.Логин.Получить();

КонецФункции

Функция ПолучитьСерверИсходящейПочты() Экспорт

Возврат Константы.СерверИсходящейПочты.Получить();

КонецФункции

Функция ПолучитьПортSMTP() Экспорт

Возврат Константы.SMTPсервер.Получить();

КонецФункции

Функция ПолучитьПароль() Экспорт

Возврат Константы.Пароль.Получить();

КонецФункции

//Для ПРОКСИ

Функция ПолучитьПроксиЛогин() Экспорт

Возврат Константы.ПроксиЛогин.Получить();

КонецФункции

Функция ПолучитьПроксиПароль() Экспорт

Возврат Константы.ПроксиПароль.Получить();

КонецФункции

Функция ПолучитьФлагИспользоватьПрокси() Экспорт

Возврат Константы.ИспользоватьПрокси.Получить();

КонецФункции

Функция ПолучитьСерверПрокси() Экспорт

Возврат Константы.СерверПрокси.Получить();

КонецФункции

Функция ПолучитьПортПрокси() Экспорт

Возврат Константы.ПортПрокси.Получить();

КонецФункции

//Для Обмена данными с сайтом

Функция ПолучитьПрефиксНумерации() Экспорт

//Префикс= Константы.ПрефиксНумерации.Получить();

Префикс=Константы.НазваниеГруппы.Получить()+"-"+Константы.ТекущийКурс.Получить()+"0"+Константы.Подгруппа.Получить();

Возврат Префикс;

КонецФункции

&НаСервереБезКонтекста

Процедура ОткрытьФормуИзображения(ФормаВладелец, ОсновноеИзображение, Сотрудник) Экспорт

Если ОсновноеИзображение = Неопределено ИЛИ ОсновноеИзображение.Пустая() Тогда

Режим = РежимДиалогаВыбораФайла.Открытие;

ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

ДиалогОткрытияФайла.Заголовок = "Выберите файл с изображением";

ДиалогОткрытияФайла.ПолноеИмяФайла = "";

ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;

//ДиалогОткрытияФайла.Фильтр = ПолучитьФильтрИзображений();

Если ДиалогОткрытияФайла.Выбрать() Тогда

ВыбранноеИзображение = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);

Иначе

Возврат;

КонецЕсли;

НовыйОбъект = Справочники.ХранилищеКартинок.СоздатьЭлемент();

НовыйОбъект.Фото= Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);

НовыйОбъект.Сотрудник= Номенклатура;

ФормаИзображения = НовыйОбъект.ПолучитьФорму("ФормаЭлемента");

Иначе

ФормаИзображения = ОсновноеИзображение.ПолучитьФорму("ФормаЭлемента");

КонецЕсли;

ФормаИзображения.ВладелецФормы = ФормаВладелец;

ФормаИзображения.РежимВыбора = Истина;

ФормаИзображения.ЗакрыватьПриВыборе = Ложь;

ФормаИзображения.Открыть();

КонецПроцедуры

Функция ВключитьПрокси() Экспорт

Если ((ПолучитьФлагИспользоватьПрокси())=1)Тогда

ПроксиСервер = Новый ИнтернетПрокси;

ПроксиСервер.Пользователь = СерверныеМеханизмы.ПолучитьПроксиЛогин();

ПроксиСервер.Пароль = СерверныеМеханизмы.ПолучитьПроксиПароль();

ПроксиСервер.Порт(СерверныеМеханизмы.ПолучитьПортПрокси());

ПроксиСервер.Сервер(СерверныеМеханизмы.ПолучитьСерверПрокси());

Возврат ПроксиСервер;

КонецЕсли;

КонецФункции

&НаСервере

Функция ПолучитьСтатусИзПеречислений(Статус) Экспорт

Если Статус="Учится" Тогда

Возврат Перечисления.СтатусыСтудентов.Учится;

ИначеЕсли Статус="Отчислен" Тогда

Возврат Перечисления.СтатусыСтудентов.Отчислен;

ИначеЕсли Статус="Повторно" Тогда

Возврат Перечисления.СтатусыСтудентов.Повторно;

ИначеЕсли Статус="Академ" Тогда

Возврат Перечисления.СтатусыСтудентов.Академ;

КонецЕсли;

КонецФункции

Процедура ОтправитьСообщенияОбмена(ИмяСервера,Порт,ИмяПользователя,ПарольПользователя,Таймаут,ЛогинНаСайте,ПарольНаСайте,Поддомен,ИспользоватьПоддомен) Экспорт

//Далее выбираем все узлы из плана обмена, за исключением текущего,

//у которых установлен реквизит ВыполнятьОбмен.

ВыборкаУзлов = ПланыОбмена.ОбменССайтом.Выбрать();

Пока ВыборкаУзлов.Следующий() Цикл

Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменССайтом.ЭтотУзел() Тогда

Продолжить;

КонецЕсли;

//С помощью объектов ЗаписьXML и ЗаписьСообщения выполняем запись изменений

//для выбранного узла в xml-файл.

Сообщить("Создаю файл обмена.");

Узел = ВыборкаУзлов.Ссылка;

ЗаписьXML = Новый ЗаписьXML();

ИмяФайлаСообщения = КаталогВременныхФайлов() + "messagefromklient_"+ЛогинНаСайте+".xml";

ЗаписьXML.ОткрытьФайл(ИмяФайлаСообщения);

ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();

ЗаписьСообщения.НачатьЗапись(ЗаписьXML,Узел);

ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);

ЗаписьСообщения.ЗакончитьЗапись();

ЗаписьXML.Закрыть();

//Cоздаем новое соединение с ФТП, передаем ему полученный xml-файл и отправляем

Файл = Новый Файл(ИмяФайлаСообщения);

Сообщить("Соединяюсь с сервером...");

Попытка

Сервер = Новый FTPСоединение(ИмяСервера,Порт,ИмяПользователя,ПарольПользователя,СерверныеМеханизмы.ВключитьПрокси(),Истина,Таймаут);

Если ИспользоватьПоддомен=Истина Тогда

Папка="/www/"+Поддомен+"/obmen/";

Иначе

Папка="/www/obmen/";

КонецЕсли;

Попытка

Сервер.УстановитьТекущийКаталог(Папка);

Исключение

Сообщить("Ошибка: Неправильно задан каталог на сервере!");

КонецПопытки;

Попытка

Сервер.Записать(Файл.ПолноеИмя,Файл.Имя);

Исключение

Сообщить("Ошибка при записи файла обмена на сервер!");

КонецПопытки;

Сообщить("Выгрузка выполнена успешно! ");

Исключение

Сообщить("ОБМЕН: Ошибка при подключении по FTP! Обмен не выполнен! " +

ОписаниеОшибки(), СтатусСообщения.ОченьВажное);

Возврат;

КонецПопытки;

УдалитьФайлы(ИмяФайлаСообщения);

// --------- СОЕДИНИМСЯ И ЗАПУСТИМ СКРИПТ ОБМЕНА-------------

// Попытка

// Соединение=Новый HTTPСоединение(ИмяСервера,,ЛогинНаСайте,ПарольНаСайте,,);

// //Соединение=Новый HTTPСоединение("kurator.delphicomponent.ru");

// Исключение

// Сообщить("Не удалось установить соединение с сервером:"

// + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);

// Возврат;

//КонецПопытки;

//

// //посылаем запрос выполнения скрипта обмена

// ФайлРезультата = ПолучитьИмяВременногоФайла();

// ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла();

//

////Будут проблемы при передаче параметра названиеГруппы из за того что можно использовать только латинские буквы

// СтрокаВыполненияСкрипта="/read.php";

// Попытка

// Соединение.Получить(СтрокаВыполненияСкрипта,КаталогВременныхФайлов() + "temp___.xml");

// Соединение = Неопределено;

// Сообщить("На сервере произведено обновление БД!");

// Сообщить("Смотри ответ во временном файле: "+КаталогВременныхФайлов() + "temp___.xml");

// Исключение

// Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное);

// КонецПопытки;

КонецЦикла;

КонецПроцедуры

Процедура ПолучитьСообщенияОбмена(ИмяСервера,Порт,ИмяПользователя,ПарольПользователя,Таймаут,ЛогинНаСайте,ПарольНаСайте,Поддомен,ИспользоватьПоддомен) Экспорт

ВыборкаУзлов = ПланыОбмена.ОбменССайтом.Выбрать();

Пока ВыборкаУзлов.Следующий() Цикл

Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменССайтом.ЭтотУзел() Тогда

Продолжить;

КонецЕсли;

НазваниеГруппыНаКлиенте=СерверныеМеханизмы.ПолучитьНазваниеГруппы()+"-"+СерверныеМеханизмы.ПолучитьТекущийКурс()+"0"+СерверныеМеханизмы.ПолучитьПодгруппу();

//------------Скачиваем файл с сайта по FTP -------------------------

ИмяФайлаСообщения ="messagefromserver_"+ЛогинНаСайте+".xml";

ПринятыйФайл= КаталогВременныхФайлов() + "messagefromserver_"+ЛогинНаСайте+".xml";

//Временно отключим, т.к. медленно для отладки

Файл = Новый Файл(ИмяФайлаСообщения);

Попытка

Сервер = Новый FTPСоединение(ИмяСервера,Порт,ИмяПользователя,ПарольПользователя,СерверныеМеханизмы.ВключитьПрокси(),Истина,Таймаут);

Если ИспользоватьПоддомен=Истина Тогда

Папка="/www/"+Поддомен+"/obmen/";

Иначе

Папка="/www/obmen/";

КонецЕсли;

Сервер.УстановитьТекущийКаталог(Папка);

Сервер.Получить(Файл.ПолноеИмя,ПринятыйФайл);

Сообщить("Прием файла обмена завершен! "+ПринятыйФайл);

Исключение

Сообщить("Перед обменом не забудьте записать файл обмена на сайте!");

Сообщить("ОБМЕН: Ошибка при подключении по FTP! Обмен не выполнен! " +

ОписаниеОшибки(), СтатусСообщения.ОченьВажное);

Возврат;

КонецПопытки;

УдалитьФайлы(ИмяФайлаСообщения);

//------------Считываем полученный файл-------------------------------

НазваниеГруппы = Новый Массив; НазваниеГруппы=ПрочитатьСтудентов(ПринятыйФайл,"To","Строка",НазваниеГруппы);

НазваниеГруппыВФайлеОбмена =НазваниеГруппы[0];

Если НЕ НазваниеГруппыВФайлеОбмена=НазваниеГруппыНаКлиенте Тогда

Сообщить("Не совпадает название группы! Обмен невозможен!

|(на клиенте "+ НазваниеГруппыНаКлиенте+

",а в файле обмена "+НазваниеГруппыВФайлеОбмена+")");

Иначе

МассивКодов = Новый Массив;

МассивФамилий = Новый Массив;

МассивИмен = Новый Массив;

МассивОтчеств = Новый Массив;

МассивСтатусов = Новый Массив;

МассивРейтингов = Новый Массив; МассивКодов=ПрочитатьСтудентов(ПринятыйФайл,"Code","Строка",МассивКодов); МассивФамилий=ПрочитатьСтудентов(ПринятыйФайл,"Description","Строка",МассивФамилий); МассивИмен=ПрочитатьСтудентов(ПринятыйФайл,"Имя","Строка",МассивИмен); МассивОтчеств=ПрочитатьСтудентов(ПринятыйФайл,"Отчество","Строка",МассивОтчеств); МассивСтатусов=ПрочитатьСтудентов(ПринятыйФайл,"Статус","Строка",МассивСтатусов); МассивРейтингов=ПрочитатьСтудентов(ПринятыйФайл,"Рейтинг","Число",МассивРейтингов);

КоличествоСтудентов=МассивКодов.Количество();

//-------------------Обновляем БД где надо -------------------------------

Счетчик=0;

Пока Счетчик<�КоличествоСтудентов Цикл

Код=МассивКодов[Счетчик];

Фамилия=МассивФамилий[Счетчик];

Имя=МассивИмен[Счетчик];

Отчество=МассивОтчеств[Счетчик];

Статус=МассивСтатусов[Счетчик];

Рейтинг=МассивРейтингов[Счетчик];

Счетчик=Счетчик+1;

ОбновлениеБД(Код,Фамилия,Имя,Отчество,Рейтинг,Статус);

КонецЦикла;

УдалениеНеНужныхСтудентовИзСправочника(МассивКодов,Код);

КонецЕсли; //Сравнение Названия Группы

КонецЦикла; //Конец узла

КонецПроцедуры

Функция ПрочитатьСтудентов(ПринятыйФайл,НужноеЛокальноеИмя,НужныйТип,Массив)

ЧтениеXML = Новый ЧтениеXML();

ЧтениеXML.ИгнорироватьПробелы=Истина;

ЧтениеXML.ОткрытьФайл(ПринятыйФайл);

Пока ЧтениеXML.Прочитать() Цикл

Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

Если ЧтениеXML.ЛокальноеИмя = НужноеЛокальноеИмя Тогда

ЧитаемНужныйАтрибут = Истина;

Иначе

ЧитаемНужныйАтрибут = Ложь;

КонецЕсли;

ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда

Если ЧитаемНужныйАтрибут Тогда

НужныйАтрибут = XMLЗначение(Тип(НужныйТип), ЧтениеXML.Значение);

Массив.Добавить(НужныйАтрибут);

КонецЕсли;

КонецЕсли;

КонецЦикла;

ЧтениеXML.Закрыть();

Возврат Массив;

КонецФункции // ПрочитатьСтудентов()

&НаСервере

Процедура ОбновлениеБД(Код,Фамилия,Имя,Отчество,Рейтинг,Статус)

СсылкаНаСтудента=Справочники.Студенты.НайтиПоКоду(Код);

Если НЕ СсылкаНаСтудента.Пустая() Тогда

Студент=СсылкаНаСтудента.ПолучитьОбъект();

Студент.Наименование=Фамилия;

Студент.Имя=Имя;

Студент.Отчество=Отчество;

Студент.Рейтинг=Рейтинг;

Студент.Статус=СерверныеМеханизмы.ПолучитьСтатусИзПеречислений(Статус);

Студент.Записать();

Сообщить("Успешно изменили студента: "+Студент.Наименование);

Иначе

Сообщить("Студент не найден!");

НовыйСтудент=Справочники.Студенты.СоздатьЭлемент();

НовыйСтудент.Код=Код;

НовыйСтудент.Наименование=Фамилия;

НовыйСтудент.Имя=Имя;

НовыйСтудент.Отчество=Отчество;

НовыйСтудент.Рейтинг=Рейтинг;

НовыйСтудент.Статус=СерверныеМеханизмы.ПолучитьСтатусИзПеречислений(Статус);

НовыйСтудент.Записать();

Сообщить("Добавлен новый студент: "+Фамилия);

КонецЕсли;

КонецПроцедуры

&НаСервере

Процедура УдалениеНеНужныхСтудентовИзСправочника(МассивКодов,Код) //Теперь удалим Всех студентов, которых нет в файле обмена

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Студенты.Наименование,

| Студенты.Код,

| Студенты.Имя,

| Студенты.Отчество,

| Студенты.Рейтинг,

| Студенты.Статус

|ИЗ

| Справочник.Студенты КАК Студенты";

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

Код=Выборка.Код;

Если (МассивКодов.Найти(Код)=Неопределено) Тогда

Сообщить("Студент с кодом: "+Код +"- отсутствует в файле обмена!");

СсылкаНаСтудента=Справочники.Студенты.НайтиПоКоду(Код);

Студент=СсылкаНаСтудента.ПолучитьОбъект();

Студент.ПометкаУдаления=Истина;

Студент.Записать();

Сообщить("Пометили на удаление студента: "+Студент.Наименование);

КонецЕсли;

КонецЦикла;

КонецПроцедуры

1   2   3   4   5   6   7   8   9

Похожие:

Содержание 2 введение 3 icon 1. Требования к выполнению и структуре рефератов выполнению индивидуальных...
Содержание (содержание включает: введение; наименования всех разделов, подразделов, пунктов и подпунктов основной части задания;...
Содержание 2 введение 3 icon 1. Требования к выполнению и структуре рефератов выполнению индивидуальных...
Содержание (содержание включает: введение; наименования всех разделов, подразделов, пунктов и подпунктов основной части задания;...
Содержание 2 введение 3 icon 1. Требования к выполнению и структуре рефератов выполнению индивидуальных...
Содержание (содержание включает: введение; наименования всех разделов, подразделов, пунктов и подпунктов основной части задания;...
Содержание 2 введение 3 icon Содержание 2 введение 3
Снижение интенсивности движения, улучшение конструкции дорог и регламентирование землепользования 7
Содержание 2 введение 3 icon Содержание введение
Мистерия смерти и воскресеhия: страдающие боги древhего востока и аhтичhого мира
Содержание 2 введение 3 icon Содержание Введение
Тема: Организация потребительского кредитования без обеспечения в коммерческом банке. Банк Сбербанк
Содержание 2 введение 3 icon Содержание предупреждение благодарности введение
Причины болезней: нарушения во внутренних органах и закупорка энергетических каналов в брюшной полости
Содержание 2 введение 3 icon Творчество великих философов, тема на выбор
Введение, Содержание, каждая новая глава реферата, Заключение, Список литературы и Приложения
Содержание 2 введение 3 icon Пояснительная записка введение «Содержание образования в конкретном...

Содержание 2 введение 3 icon Книга Содержание Введение: Раскрытие скрытого за завесой для искателей Истины
Охватывает ужас, а те, кто видит и Красоту Его, достигают единения с Ним
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции