Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Диплом_1 / Диплом

.pdf
Скачиваний:
81
Добавлен:
13.05.2015
Размер:
2.29 Mб
Скачать

Список источников

1.Габец А.П., Гончаров Д.И. 1С: Предприятие 8.1 Простые примеры разработки – 2008г.

2.Габец А.П., Гончаров Д.И., Козырев Д.В., Кухлевский Д.С., Радченко М.Г.

Профессиональная разработка в системе 1С: Предприятие 8 – 2006г.

3.М.Г. Радченко 1С:Предприятие 8.1 Практическое пособие разработчика –

2007г.

4.1С:Предприятие 8.1. Конфигурирование и администрирование – 2010г.

5.Хрусталева Е.Ю. Разработка сложных отчетов в 1С: Предприятие 8 –

Москва: 2008г.

6.1С: Предприятие 8 [Электронный ресурс]/ ЗАО «1С» - Электронные данные - М.,[200-?]. - Режим доступа: http://v8.1c.ru свободный - Загл. с

экрана.- Яз. рус., англ., польский.

7.Microsoft SQL Server 2008 R2 | Система управления базами данных

[Электронный ресурс] / Microsoft - Электронные данные - М., 2010 -

Режим доступа: http://www.microsoft.com/sqlserver/ru/ru/default.aspx

свободный - Загл. с экрана.

8.Windows 7, Office 2010 и другое ПО | Microsoft Россия [Электронный ресурс] / Microsoft - Электронные данные - М., 2011 - Режим доступа:

http://www.microsoft.com/ru/ru/default.aspx - Загл. с экрана.

 

9. Что

такое

PostgreSQL?

[Электронный

ресурс]

/ Олег

Бартунов, Астрономический институт имени П.К. Штернберга , МГУ -

Электронные данные - М., 2005 - Режим доступа: http://citforum.ru/database/postgres/what_is/ свободный - Загл. с экрана.

10.IBM DB2 [Электронный ресурс] / «ОЛЛИ» - Электронные данные - Санкт-

Петербург, 2010 - Режим доступа: http://www.olly.ru/products/element.php

свободный - Загл. с экрана

11.СУБД Oracle[Электронный ресурс] / Лаборатория программных продуктов - Электронные данные - Челябинск, 2008 - Режим доступа: http://www.plab.ru/software/oracle/bd/ свободный - Загл. с экрана.

50

Приложение 1. Модуль формы отчета «Сведения о причинах временной

нетрудоспособности по возрастам»

Процедура ПолеВводаПериодПриИзменении(Элемент) ТиповыеОтчеты.ОбновитьПараметрыПериодаПоФорме(Компоновщик

Настроек, ЭтаФорма);

 

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

 

Процедура ЛПУПриИзменении(Элемент)

 

ЗначениеПараметраЛПУ

=

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам

етра(Новый ПараметрКомпоновкиДанных("ЛПУ"));

 

ЗначениеПараметраЛПУ.Значение =ЛПУ;

 

ЗначениеПараметраЛПУ.Использование = Истина;

 

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

 

Процедура ОтделенияПриИзменении(Элемент)

 

ЗначениеПараметраОтделения

=

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("Отделение"));

ЗначениеПараметраОтделения.Значение =Отделения;

 

ЗначениеПараметраОтделения.Использование = Истина;

 

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

 

Процедура МестоРаботыПриИзменении(Элемент)

 

ЗначениеПараметраМестоРаботы

=

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("МестоРаботы"));

ЗначениеПараметраМестоРаботы.Значение =МестоРаботы;

 

ЗначениеПараметраМестоРаботы.Использование = Истина;

 

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

 

Процедура ПоЛПУПриИзменении(Элемент)

 

Если ПоЛПУ=Истина тогда

 

СхемаКомпановкиДанных=ПоЛПУ;

 

ЭлементыФормы.ЛПУ.Видимость=Истина;

 

ЭлементыФормы.НадписьЛПУ.Видимость=Истина;

 

ЭлементыФормы.Отделения.Видимость=Истина;

 

ЭлементыФормы.НадписьОтделения.Видимость=Истина;

 

ЭлементыФормы.СводПоУчереждению.Видимость=Ложь;

 

ЗначениеПараметраЛПУ

=

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("ЛПУ"));

ЗначениеПараметраОтделения = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам

етра(Новый ПараметрКомпоновкиДанных("Отделение"));

 

ЗначениеПараметраОтделения.Использование = Истина;

 

ЗначениеПараметраЛПУ.Использование = Истина;

 

ЗначениеПараметраМестоРаботы

=

51

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("МестоРаботы"));

ЗначениеПараметраМестоРаботы.Использование = Ложь; Если ПоДатеЗакрытияБЛ=Истина тогда

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУЗ") иначе

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУ"); КонецЕсли;

иначе

ЭлементыФормы.ЛПУ.Видимость=Ложь; ЭлементыФормы.НадписьЛПУ.Видимость=Ложь; ЭлементыФормы.Отделения.Видимость=Ложь; ЭлементыФормы.НадписьОтделения.Видимость=Ложь; ЭлементыФормы.СводПоУчереждению.Видимость=Истина; ЗначениеПараметраЛПУ =

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("ЛПУ"));

ЗначениеПараметраОтделения = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("Отделение"));

ЗначениеПараметраМестоРаботы = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("МестоРаботы"));

ЗначениеПараметраОтделения.Использование = Ложь; ЗначениеПараметраЛПУ.Использование = Ложь; ЗначениеПараметраМестоРаботы.Использование = Ложь;

КонецЕсли; КонецПроцедуры

Процедура СводПоУчереждениюПриИзменении(Элемент) Если СводПоУчереждению=Истина тогда

ЭлементыФормы.МестоРаботы.Видимость=истина; ЭлементыФормы.НадписьМестоРаботы.Видимость=истина; ЭлементыФормы.Цех.Видимость=истина; ЭлементыФормы.НадписьЦех.Видимость=истина; ЭлементыФормы.ПоЛПУ.Видимость=ложь; ЭлементыФормы.НадписьЛПУ.Видимость=ложь; ЗначениеПараметраМестоРаботы =

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("МестоРаботы"));

ЗначениеПараметраМестоРаботы.Использование = Истина; ЗначениеПараметраЛПУ =

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("ЛПУ"));

ЗначениеПараметраОтделения = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам

52

етра(Новый ПараметрКомпоновкиДанных("Отделение")); ЗначениеПараметраОтделения.Использование = Ложь; ЗначениеПараметраЛПУ.Использование = Ложь; Если ПоДатеЗакрытияБЛ=Истина тогда

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоМРЗ") иначе

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоМР"); КонецЕсли;

иначе

ЭлементыФормы.МестоРаботы.Видимость=Ложь; ЭлементыФормы.НадписьМестоРаботы.Видимость=Ложь; ЭлементыФормы.Цех.Видимость=Ложь; ЭлементыФормы.НадписьЦех.Видимость=Ложь; ЭлементыФормы.ПоЛПУ.Видимость=Истина; ЗначениеПараметраМестоРаботы =

КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("МестоРаботы"));

ЗначениеПараметраЛПУ = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("ЛПУ"));

ЗначениеПараметраОтделения = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПарам етра(Новый ПараметрКомпоновкиДанных("Отделение"));

ЗначениеПараметраОтделения.Использование = Ложь; ЗначениеПараметраЛПУ.Использование = Ложь; ЗначениеПараметраМестоРаботы.Использование = Ложь;

КонецЕсли; КонецПроцедуры

Процедура ПоДатеЗакрытияБЛПриИзменении(Элемент) Если ПоДатеЗакрытияБЛ=Истина тогда

ЭлементыФормы.ПоДатеВвода.Видимость=ложь; Если (ЛПУ="")и (Отделения="")и (МестоРаботы="") тогда

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУЗ") Иначе если (МестоРаботы<>"") тогда

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоМРЗ") иначе

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУЗ") КонецЕсли;

КонецЕсли;

иначе

ЭлементыФормы.ПоДатеВвода.Видимость=истина; КонецЕсли;

КонецПроцедуры Процедура ПоДатеВводаПриИзменении(Элемент)

Если ПоДатеВвода=Истина тогда

53

ЭлементыФормы.ПоДатеЗакрытияБЛ.Видимость=ложь; Если (ЛПУ="")и (Отделения="")и (МестоРаботы="") тогда

СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУ") иначе

если (МестоРаботы<>"") тогда СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоМР")

иначе СхемаКомпоновкиДанных=Отчеты.Форма16.ПолучитьМакет("ПоЛПУ")

КонецЕсли; КонецЕсли;

иначе

ЭлементыФормы.ПоДатеЗакрытияБЛ.Видимость=истина; КонецЕсли;

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

Приложение 2. Процедура обработки проведения документа «Ввод

талонов»

Процедура ОбработкаПроведения(Отказ, Режим)

Движение = Движения.по_дате_закрытия_ЛПУ.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = ДатаЗакрытияБЛ; Движение.Диагноз = ГруппаДиагноза; Движение.Пол = Пол; Движение.Возраст = Возраст; Движение.ЛПУ = ЛПУ; Движение.Отделение = Отделение; Движение.МестоРаботы = МестоРаботы;

Движение.ДатаОткрытия = ДатаОткрытияБЛ; Движение.ДатаЗакрытия = ДатаЗакрытияБЛ; Движение.Количество = 1; Движение.ЧислоДней = ДнейНетрудоспособности;

Если Возраст>=15 и Возраст <=19 тогда Движение.от15до19 = 1;

иначе Движение.от15до19 =0; КонецЕсли; если Возраст>=20 и Возраст <=24 тогда

Движение.от20до24 = 1; иначе Движение.от20до24 = 0; КонецЕсли;

если Возраст>=25 и Возраст <=29 тогда Движение.от25до29 = 1;

иначе Движение.от25до29 = 0; КонецЕсли; если Возраст>=30 и Возраст <=24 тогда

Движение.от30до34 = 1;

54

иначе Движение.от30до34 = 0; КонецЕсли; если Возраст>=35 и Возраст <=39 тогда

Движение.от35до39 = 1; иначе Движение.от35до39 = 0; КонецЕсли;

если Возраст>=40 и Возраст <=44 тогда Движение.от40до44 = 1;

иначе Движение.от40до44 = 0; КонецЕсли; если Возраст>=45 и Возраст <=49 тогда

Движение.от45до49 = 1; иначе Движение.от45до49 = 0; КонецЕсли;

если Возраст>=50 и Возраст <=54 тогда Движение.от50до54 = 1;

иначе Движение.от50до54 = 0; КонецЕсли; если Возраст>=55 и Возраст <=59 тогда

Движение.от55до59 = 1; иначе Движение.от55до59 = 0; КонецЕсли; если Возраст>=60 тогда

Движение.старше_60_лет = 1; иначе Движение.старше_60_лет = 0; КонецЕсли; //Регистр По дате ввода

Движение = Движения.по_дате_ввода.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Диагноз = ГруппаДиагноза; Движение.Пол = Пол; Движение.Возраст = Возраст; Движение.ЛПУ = ЛПУ; Движение.Отделение = Отделение; Движение.МестоРаботы = МестоРаботы;

Движение.ДатаОткрытия = ДатаОткрытияБЛ; Движение.ДатаЗакрытия = ДатаЗакрытияБЛ; Движение.Количество = 1; Движение.ЧислоДней = ДнейНетрудоспособности;

Если Возраст>=15 и Возраст <=19 тогда Движение.от15до19 = 1;

иначе Движение.от15до19 =0; КонецЕсли; если Возраст>=20 и Возраст <=24 тогда

55

Движение.от20до24 = 1; иначе Движение.от20до24 = 0; КонецЕсли;

если Возраст>=25 и Возраст <=29 тогда Движение.от25до29 = 1;

иначе Движение.от25до29 = 0; КонецЕсли; если Возраст>=30 и Возраст <=24 тогда

Движение.от30до34 = 1; иначе Движение.от30до34 = 0; КонецЕсли;

если Возраст>=35 и Возраст <=39 тогда Движение.от35до39 = 1;

иначе Движение.от35до39 = 0; КонецЕсли; если Возраст>=40 и Возраст <=44 тогда

Движение.от40до44 = 1; иначе Движение.от40до44 = 0; КонецЕсли;

если Возраст>=45 и Возраст <=49 тогда Движение.от45до49 = 1;

иначе Движение.от45до49 = 0; КонецЕсли; если Возраст>=50 и Возраст <=54 тогда

Движение.от50до54 = 1; иначе Движение.от50до54 = 0; КонецЕсли;

если Возраст>=55 и Возраст <=59 тогда Движение.от55до59 = 1;

иначе Движение.от55до59 = 0; КонецЕсли; если Возраст>=60 тогда

Движение.старше_60_лет = 1; иначе Движение.старше_60_лет = 0; КонецЕсли; // регистр ЧислоРаботающих Приход

Движение = Движения.ЧислоРаботающих.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.ЛПУ = ЛПУ; Движение.Предприятие = МестоРаботы; Движение.Диагноз = Диагноз; Движение.Случаи = 1;

Движение.Дни = ДнейНетрудоспособности; КонецПроцедуры

56

Приложение 3. Запрос отчета «Сведения о причинах временной

нетрудоспособности по возрастам»

ВЫБРАТЬ ГруппыДиагнозов.Ссылка КАК Причина_нетрудоспособности,

ГруппыДиагнозов.НачалныйКод КАК Код_по_МКБ_9_пересмотра, ГруппыДиагнозов.КонечныйКод КАК код, ГруппыДиагнозов.НаимГрДиаг, по_дате_вводаОбороты.КоличествоОборот, по_дате_вводаОбороты.Пол КАК Пол, по_дате_вводаОбороты.ЧислоДнейОборот, по_дате_вводаОбороты.Отделение КАК Отделение, по_дате_вводаОбороты.ЛПУ КАК ЛПУ, по_дате_вводаОбороты.МестоРаботы КАК МестоРаботы, по_дате_вводаОбороты.от15до19Оборот, по_дате_вводаОбороты.от20до24Оборот, по_дате_вводаОбороты.от25до29Оборот, по_дате_вводаОбороты.от30до34Оборот, по_дате_вводаОбороты.от35до39Оборот, по_дате_вводаОбороты.от40до44Оборот, по_дате_вводаОбороты.от45до49Оборот, по_дате_вводаОбороты.от50до54Оборот, по_дате_вводаОбороты.от55до59Оборот, по_дате_вводаОбороты.старше_60_летОборот

ИЗ

РегистрНакопления.по_дате_ввода.Обороты КАК по_дате_вводаОбороты

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГруппыДиагнозов КАК ГруппыДиагнозов

ПО по_дате_вводаОбороты.Диагноз = ГруппыДиагнозов.НаимГрДиаг ГДЕ

(по_дате_вводаОбороты.ЛПУ = &ЛПУ

 

 

И по_дате_вводаОбороты.Отделение = &Отделение

 

ИЛИ

по_дате_вводаОбороты.МестоРаботы

=

&МестоРаботы) СГРУППИРОВАТЬ ПО

ГруппыДиагнозов.НачалныйКод, ГруппыДиагнозов.КонечныйКод, ГруппыДиагнозов.Ссылка, ГруппыДиагнозов.НаимГрДиаг, по_дате_вводаОбороты.КоличествоОборот, по_дате_вводаОбороты.Пол, по_дате_вводаОбороты.ЧислоДнейОборот, по_дате_вводаОбороты.Отделение,

57

по_дате_вводаОбороты.ЛПУ, по_дате_вводаОбороты.МестоРаботы, по_дате_вводаОбороты.от15до19Оборот, по_дате_вводаОбороты.от20до24Оборот, по_дате_вводаОбороты.от25до29Оборот, по_дате_вводаОбороты.от30до34Оборот, по_дате_вводаОбороты.от35до39Оборот, по_дате_вводаОбороты.от40до44Оборот, по_дате_вводаОбороты.от45до49Оборот, по_дате_вводаОбороты.от50до54Оборот, по_дате_вводаОбороты.от55до59Оборот, по_дате_вводаОбороты.старше_60_летОборот

Приложение 4. Модуль формы документа «Ввод талонов»

Процедура ДатаРожденияПриИзменении(Элемент) // Вставить содержимое обработчика. гр=год(ДатаРождения); др=день(ДатаРождения); мр=месяц(ДатаРождения); лет=Год(ТекущаяДата())-гр;

Если месяц(ТекущаяДата())<мр тогда лет=лет-1; КонецЕсли; Если месяц(ТекущаяДата())=мр тогда

если День(ТекущаяДата())<др тогда лет=лет-1; КонецЕсли;

КонецЕсли; Возраст=лет;

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

Процедура ДатаЗакрытияБЛПриИзменении(Элемент) // Вставить содержимое обработчика.

Если месяц(ДатаЗакрытияБЛ)=месяц(ДатаОткрытияБЛ)тогда КолДней=День(ДатаЗакрытияБЛ)-День(ДатаОткрытияБЛ)+1

иначе

м1=День(КонецМесяца(ДатаОткрытияБЛ)); КолДней=м1-

день(ДатаОткрытияБЛ)+день(ДатаЗакрытияБЛ); КонецЕсли;

ДнейНетрудоспособности=КолДней;

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

Процедура ДатаОткрытияБЛПриИзменении(Элемент) // Вставить содержимое обработчика.

Если ДатаЗакрытияБЛ<>0 тогда Если месяц(ДатаЗакрытияБЛ)=месяц(ДатаОткрытияБЛ)тогда

58

КолДней=День(ДатаЗакрытияБЛ)-День(ДатаОткрытияБЛ)+1

иначе

м1=День(КонецМесяца(ДатаОткрытияБЛ)); КолДней=м1-

день(ДатаОткрытияБЛ)+день(ДатаЗакрытияБЛ); КонецЕсли;

ДнейНетрудоспособности=КолДней;

КонецЕсли;

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

Приложение 5. Модуль формы отчета «Причина временной

нетрудоспособности»

Процедура КнопкаСформироватьНажатие(Кнопка)

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; СформироватьОтчет(ТабДок);

КонецПроцедуры Процедура СформироватьОтчет(ТабДок)

Макет = ПолучитьМакет("Макет"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); ТабДок.Очистить();

ОбластьЗаголовок.Параметры.ДатаНач = ДатаНач; ОбластьЗаголовок.Параметры.ДатаКон = ДатаКон;

ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапка);

МенеджерВТ = Новый МенеджерВременныхТаблиц;

 

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

 

Запросформы1.МенеджерВременныхТаблиц

=

МенеджерВТ;

Запросформы1.УстановитьПараметр("НачПериода",ДатаНач);

Запросформы1.УстановитьПараметр("КонПериода",ДатаКон); ЗапросФормы1.Текст =

"ВЫБРАТЬ РАЗЛИЧНЫЕ

|

СУММА(ЧислоРаботающихОбороты.СлучаиОборот) КАК СлучаиОборот,

|

СУММА(ЧислоРаботающихОбороты.ДниОборот) КАК ДниОборот,

59