Реферат Разработка информационной системы по продаже путевок
Работа добавлена на сайт bukvasha.net: 2015-10-28Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
от 25%
договор
Введение
В россии насчитывается более тысячи санаториев, лечебниц и иных курортно-лечебных учереждений. Одни из них крупные находящиеся на берегах моря, другие более маленькие на озерах, реках, лечебных скважинах, расположения различны как и степень отдаленности. Если лечебница находится где то далеко от «цивилизации», ей трудно вести компанию по привлечению отдыхающих. Поэтому независимо от размера многие лечебницы имеют свои представительства в городах к которым легче заключать договора с организациями.
В своих представительствах ведуться различные работы начиная от привлечения клиентов до непосредственной продажи путевок.
При расчетах с покупателями законом установлено следующие что, продажа товара (оказание услуг) за наличный расчет производится только с кассовым оппаратом, если данного аппарата нет то только по безналичному расчету.
В данной курсовой работе будет разработана информационная система по продаже путевок организациям и частным лицам, для НУ «Санатория им. Пржевальского» в г. Смоленске.
До принятия закона о расчетах за наличный расчет Санаторий продавал по безналичному расчету и за наличный расчет. Все это велось на бумаге без автоматизации. Но со сменой руководство санатория было принято решение вывести санатория на должный уровень. Была закуплена техника, программы. Все программы были семейства 1С:Предприятия.
Был разработан и дорабатывается в настоящие время целый комплекс программ для автоматизации ведения бухгалтерского учета в лечебнице. А с открытием представительства в г.Смоленске необходима была программа для ее автоматизации.
В данной курсовой работе подробно рассмотрено разработка информационной системой. А также ее работа.
1 Описание системы 1С-Предприятие
Система программ 1С-Предприятие разработана фирмой 1С. «Фирма "1С" специализируется на дистрибьюции, поддержке и разработке компьютерных программ и баз данных делового и домашнего назначения. Основанная в
1С-Предприятие является гибкой настраиваемой системой для решения широкого круга задач в сфере автоматизации деятельности предприятий. На рис. 1.1 приведена схема взаимодействия различных компонент 1С: Предприятия.
Рис. 1.1 Структурная схема 1С: Предприятия
Одной из характерных особенностей программ, является их масштабируемость: одна и та же конфигурация может работать на локальном компьютере, в сети и на сервере под управлением MS SQL Server 7.0.
Специальная компонента «Управление распределенными базами» позволяет производить обмен информации между удаленными рабочими местами.
1.
1
Описание встроенного языка
Программные модули в конфигурации не являются самостоятельными программами, поскольку являются частью всей конфигурации задачи. Программный модуль – это «контейнер» для размещения текстов процедур и функций, вызываемых системой во время исполнения в определенные моменты времени.
Место размещения конкретного программного модуля предоставляется конфигуратором в тех точках конфигурации задачи, которые требуют описания специфических алгоритмов функционирования.
Каждый отдельный модуль воспринимается системой как единое целое, поэтому все процедуры и функции программного модуля выполняются в одном контексте.
Глобальный контекст:
- значения системных атрибутов, системные процедуры и функции, например, функция ТекущееВремя() возвращает текущее системное время, а функция ТекущаяДата() – текущую дату на компьютере.
- значения заданных в конфигураторе констант, перечислений.
- переменные и процедуры глобального программного модуля с ключевым словом «Экспорт».
Локальный контекст образуется тем конкретным местом конфигурации задачи, для которого использован этот конкретный модуль. Текст программного модуля состоит из операторов и комментариев. Комментарии начинаются с символов «//» .
Структура программного модуля:
- Раздел определения переменных
- Раздел процедур и функций
- Раздел основной программы
// Определение переменных
Перем ЭтоПеременная;
Перем ЭтоВтораяПеременная;
// Процедуры и функции
Процедура ЭтоПроцедура()
// текст процедуры
КонецПроцедуры
Функция ЭтоФункция()
// текст функции
КонецФункции
// Раздел основной программы
ЭтоПременная = “
При написании программного модуля используются процедуры и функции.
Описание процедуры:
Процедура <Имя_проц>([Знач] <Парам1>
[=<ДефЗнач>] , …) [Экспорт]
// Объявления локальных переменных;
// Операторы;
…
[Возврат;]
// Операторы;
КонецПроцедуры
Описание функции:
Функция <Имя_функции>([[Знач] <Парам1>[=<ДефЗнач>],
...
, [Знач] <ПарамN> [=<ДефЗнач>]])[Экспорт]
//Объявления локальных переменных;
// Операторы;
...
Возврат <ВозвращаемоеЗначение>;
// Операторы;
...
КонецФункции
После ключевого слова «КонецПроцедуры» и «КонецФункции» точка с запятой не ставится. Ключевое слово «Знач» означает, что переменные передаются по значению. Ключевое слово «Экспорт» имеет смысл только в глобальном модуле и означает, что процедура будет доступна в любом программном модуле. Функция, в отличие от процедуры должна возвращать значение. Для передачи локального контекста используется ключевое слово «Контекст» в качестве параметра.
В системе поддерживаются базовые и агрегатные типы данных. К базовым типам относятся числа, строки и даты. Агрегатные типы данных – это специализированные типы данных, предназначенные для работы с объектами 1С:Предприятия. Агрегатными типами данных называются следующие типы данных:
Константа – средство работы с постоянными (или условно постоянными) значениями. В константах хранится информация, которая не изменяется или изменяется достаточно редко. Например, название организации, почтовый адрес. Перечень констант, доступный в конкретной конфигурации, их названия и тип определяются в конфигураторе.
Справочник – средство для ведения списков однородных элементов данных. Помимо наименования элементов данных, списки могут содержать различную дополнительную информацию. Физическим аналогом справочника может являться картотека. Каждая карточка – это элемент справочника, а сведения, заносимые в карточку, являются реквизитами справочника. Перечень справочников, доступных в конкретной конфигурации, их названия и реквизиты определяются в конфигураторе.
Перечисление – средство работы с элементами данных, список возможных значений которых жестко задан (например, для перечисления «ФормаОплаты» можно задать возможные значения: «Нал», «Безнал»). В отличие от справочников, списки значений в перечислении задаются в процессе их создания в конфигураторе и при выполнении задачи не могут быть изменены. Состав перечислений, доступных в конкретной конфигурации, их названия и допустимые значения определяются в конфигураторе.
Документ – средство для ввода первичной информации о совершаемых хозяйственных операциях. Перечень документов, доступных в конкретной конфигурации, их названия, реквизиты и другие свойства определяются в конфигураторе.
Таблица – средство работы с таблицами (отчетами). В программных модулях допускается создавать произвольное число объектов типа Таблица, при помощи вызова системной функции СоздатьОбъект.
ТаблицаЗначений — средство для создания списка значений каких-либо данных и возможности в дальнейшем сортировать и выбирать нужные значения из списка. При добавлении в диалоговых формах полей типа «Список» или «Поле со списком», система автоматически создает объекты СписокЗначений, доступ к которым в языке возможен по идентификатору поля. В программных модулях допускается создавать произвольное число объектов типа СписокЗначений при помощи вызова системной функции СоздатьОбъект.
В разных прикладных компонентах используются свои индивидуальные агрегатные типы данных. Так для «Бухгалтерского учета» вводится компонента «ПланСчетов», для «Оперативного учета» - «Регистры.»
Каждый агрегатный тип данных, как правило, имеет набор атрибутов и методов. Атрибуты по свойствам напоминают переменные, т. е. им можно присваивать или читать их значения. Методы – это те действия, которые может выполнять агрегатный тип данных. Методы могут иметь или не иметь возвращаемое значение. Если метод имеет возвращаемое значение, то он может размещаться в правой части оператора присваивания, в выражениях, в описании фактических параметров других вызываемых методов, процедур или функций.
С ледующие ператоры
- управляющие операторы;
Для управления логикой выполнения программы используются логические выражения и управляющие операторы. Логическое выражение записывается с помощью символов сравнения = (равно), <> (не равно), > (больше), < (меньше), <= (меньше либо равно), >=(больше или равно), при этом сравнение производится только над значениями одинаковых типов (то есть нельзя, например, сравнивать число и строку). Из нескольких сравнений можно построить более сложное условие с помощью булевых операций «и», «или», «не». Порядок сравнений можно определять с помощью круглых скобок.
- оператор ветвления
Если <Логическое_выражение> Тогда
…
ИначеЕсли <Логическое_выражение> Тогда
…
Иначе
…
КонецЕсли;
- циклы
Пока <Логическое_выражение> Цикл
…
[Прервать]
…
[Продолжить]
…
КонецЦикла;
Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл
…
[Прервать]
…
[Продолжить]
…
КонецЦикла;
Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла. [1][2]
2 Разработка информационной системы
Для того чтобы информационная система, была гибкая, легко подстраиваемая под любую версию программ 1С:Предприятия, возьмем только один стандартный элемент - Справочник.Контрагенты. Остальные элементы информационной системы спроектируем с помощью инструмента 1С, Конфигуратора. На рисунке 2.1 приведена структурная сема программы «Расчет путевок по безналичному расчету для санатория».
Из рисунка 2.1 видно, что система будет иметь четыре элемента. «Реквизиты организации» используются для задания данных таких как наименование, фамилия руководителя, главного бухгалтера и д.р., элемент «Перечисления» необходим для хранения всех перечисления которые используются в программе. «Цены на путевки» выступает в качестве справочника путевок и цен на них. «База Данных путевок» хранит массив записей по выписанным путевкам.
Теперь опишем разработку всех элементов информационной системы по отдельности.
2.1 Документ «Реквизиты организации»
На рисунке 2.2 приведено диалоговое окно документа, так как оно разработано в Конфигураторе.
Документ имеет только реквизиты шапки, основное значение строка, с разнам значением длинны. В банковских реквизитах: «БИК», «РасчСч», «КорСч»и налоговых – «ИНН», КПП длинна ограничена количеством допустимого значения так «БИК» больше 9 знаков иметь не может, «РасчСч», «КорСч» имеет только 20 символов и только цифры, тем самым предусмотрена «защита от дурака».
2.2 Документ «Перечисления»
На рисунке 2.3 приведено диалоговое окно документа, так как оно разработано в Конфигураторе.
Этот документ в отличие от предыдущего, имеет только реквизиты табличной части. «Реквизит» с типом «Строка», служит в качестве критерия отбора, по одинаковым значениям его строится массив со значением поля «Значения». Данное поле также имеет тип «строка».
2.3 Документ «ПутевкиЦены»
В данном документе создаются и хранятся все виды путевок. На рисунке 2.3 изображена форма данного документа.
К полю табличной части – «КатегНом» привязана процедура ПпКатегНом() которая связана с документом «ПутевкиПеречисления», по полю «Реквизит». Листинг процедуры приведен ниже:
Процедура ПпКатегНом()
КтгФ=КатегНом;
СпКтг=СоздатьОбъект("СписокЗначений");
Дд=СоздатьОбъект("Документ.ПутевкиПеречисления");
Дд.ВыбратьДокументы();
Пока (Дд.ПолучитьДокумент()=1) Цикл
Дд.ВыбратьСтроки();
Пока (Дд.ПолучитьСтроку()=1) Цикл
Если(СокрЛП(Дд.Реквизит)="Категория")Тогда
СпКтг.ДобавитьЗначение (Дд.Значения);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ФлКтгЪ="*";
ПозКтг=0;
Если (СпКтг.ВыбратьЗначение (КтгФ,"Выберите значение",ПозКтг)=1)Тогда
КатегНом=КтгФ;
КонецЕсли;
КонецПроцедуры
В процедуре создается стандартный объект СписокЗначений, в который добавляются все записи из документа «ПутевкиПеречисления» имеющие значение поля «Реквизит» равным - «Категория».
2.4 Документ «ПутевкиРеализация»
Этот документ является основным, в нем не только вводятся (записываются) данные, но и ведется обработка, печать отчетов. На рисунке 2.4 изображена форма документа «ПутевкиРеализация».
|
Описывая поля документа, опишем привязанные к ним процедуры и функции.
При задании количества выписываемых путевок используется два поля НомПутС и НомПутПо, это сделано, для того чтобы программа сама рассчитывала количество путевок. Расчет количества путевок а также задание значения полей Лечение,Питание, Проживание, ВремяС, ВремяПо в процедура ПпНомПутС.
Процедура ПпНомПутС()
Если (НомПутПо<>0)И(НомПутПо<>"") Тогда
КоличПут=НомПутПо-НомПутС+1;
Иначе
НомПутПо=НомПутС;
КоличПут=1;
КонецЕсли;
ДатПут=ТекущаяДата();
Лечение=1;
Питание=1;
Проживание=1;
ВремяС="Завтрак";
ВремяПо="Ужин";
КонецПроцедуры
При выборе путевки в поле КатегНом выполняется процедура ПпКатегНом(), и процедура ПпРасчет(). Данная процедура выполняет расчет стоимости путевки.
Процедура ПпРасчет()
Тбл.Очистить();
Тбл.НоваяКолонка ("КатегНом","Строка",45,,"",,,1);
Тбл.НоваяКолонка ("Лечение","Число",5,,"",,,1);
Тбл.НоваяКолонка ("Проживание","Число",5,,"",,"",1);
Тбл.НоваяКолонка ("Питание","Число",5,,"",,"",1);
Тбл.НоваяКолонка ("Завтрак","Число",5,,"",,"",1);
Тбл.НоваяКолонка ("Обед","Число",5,,"",,"",1);
Тбл.НоваяКолонка ("Ужин","Число",5,,"",,"",1);
Дд=СоздатьОбъект("Документ.ПутевкиЦены");
Дд.ВыбратьДокументы();
Пока (Дд.ПолучитьДокумент()=1) Цикл
Дд.ВыбратьСтроки();
Пока (Дд.ПолучитьСтроку()=1) Цикл
Если ((СокрЛП(Дд.ДатаПО)<>". .")И(Дд.ДатаПО<ДатаС))
Или (СокрЛП(Дд.ДатаС) <>". .")И(Дд.ДатаС>ДатаС)Тогда
Продолжить;
КонецЕсли;
Тбл.НоваяСтрока();
Тбл.КатегНом=Дд.КатегНом;
Тбл.Лечение=Дд.Лечение;
Тбл.Проживание=Дд.Проживание;
Тбл.Питание=Дд.Питание;
Тбл.Завтрак=Дд.Завтрак;
Тбл.Обед=Дд.Обед;
Тбл.Ужин=Дд.Ужин;
КонецЦикла;
КонецЦикла;
КатегНомЪ=СокрЛП(КатегНом);
Тбл.ВыбратьСтроки();
Пока (Тбл.ПолучитьСтроку()=1) Цикл
Если (СокрЛП(Тбл.КатегНом)=КатегНомЪ) Тогда ЦенаСут=(Тбл.Лечение*Лечение)
+(Тбл.Проживание*Проживание)
+(Тбл.Питание*Питание);
ЗаСутки=((Тбл.Лечение*Лечение)
+(Тбл.Проживание*Проживание)
+(Тбл.Питание*Питание)); ЗавтракЦ=Окр(Тбл.Завтрак*ЗаСутки
/(Тбл.Лечение+Тбл.Проживание
+Тбл.Питание),0,1);
ОбедЦ=Окр(Тбл.Обед*ЗаСутки
/(Тбл.Лечение+Тбл.Проживание
+Тбл.Питание),0,1);
УжинЦ=Окр(Тбл.Ужин*ЗаСутки
/(Тбл.Лечение+Тбл.Проживание
+Тбл.Питание),0,1);
ЗаОбедД=ОбедЦ;ЗаУжинД=УжинЦ;ЗаСуткиД=ЗаСутки;
КонецЕсли;
КонецЦикла;
Если (СокрЛП(ВремяС)<>"")И(СокрЛП(ВремяПо)<>"") Тогда
ДнЪ=0; ЗавтракЪ=0; ОбедЪ=0; УжинЪ=0;
ВремяСЪ=СокрЛП(ВремяС);
ВремяПоЪ=СокрЛП(ВремяПо);
Если (ВремяСЪ="Завтрак")И(ВремяПоЪ="Завтрак")Тогда
ЗавтракЪ=1; КонецЕсли;
Если (ВремяСЪ="Завтрак")И(ВремяПоЪ="Обед") Тогда
ЗавтракЪ=1;ОбедЪ=1; КонецЕсли;
Если (ВремяСЪ="Завтрак")И(ВремяПоЪ="Ужин") Тогда
ДнЪ=1; КонецЕсли;
Если (ВремяСЪ="Обед") И(ВремяПоЪ="Обед") Тогда
ОбедЪ=1; КонецЕсли;
Если (ВремяСЪ="Обед") И(ВремяПоЪ="Ужин") Тогда
ОбедЪ=1;УжинЪ=1; КонецЕсли;
Если (ВремяСЪ="Обед") И(ВремяПоЪ="Завтрак")Тогда
ДнЪ=0; КонецЕсли;
Если (ВремяСЪ="Ужин") И(ВремяПоЪ="Ужин") Тогда
УжинЪ=1; КонецЕсли;
Если (ВремяСЪ="Ужин") И(ВремяПоЪ="Завтрак")Тогда
ДнЪ=-1;УжинЪ=1;ЗавтракЪ=1; КонецЕсли;
Если (ВремяСЪ="Ужин") И(ВремяПоЪ="Обед") Тогда
ДнЪ=0; КонецЕсли;
Дней=0;
Если (ДатаГод(ДатаС)=ДатаГод(ДатаПо)) Тогда
Дней=НомерДняГода(ДатаПо)-НомерДняГода(ДатаС)+ДнЪ;
ИначеЕсли (ДатаГод(ДатаС)<ДатаГод(ДатаПо)) Тогда
Дней=НомерДняГода(КонГода(ДатаС))
-НомерДняГода(ДатаС)+НомерДняГода(ДатаПо)+ДнЪ;
КонецЕсли;
ДнейД=Дней;
ПроцНДС=0;
Если (Дней<7) Тогда
ПроцНДС=18;
КонецЕсли;
ЗаЗавтракД=ЗавтракЦ*ЗавтракЪ;
ЗаОбедД=ОбедЦ*ОбедЪ;
ЗаУжинД=УжинЦ*УжинЪ;
ЗаСуткиД=ЗаСутки;
Стоим=(ЦенаСут*Дней)+ЗаЗавтракД+ЗаОбедД+ЗаУжинД;
Сумма=Стоим*КоличПут;
НДС=Окр(Сумма*ПроцНДС/100,2,1);
Всего=Сумма+Ндс;
КонецЕсли;
КонецПроцедуры
В поле Что выбирается: продается или возвращается путевка, или это доплата за уже имеющеюся путевку. В поле ВремяС и ВремяПо выбирается время заезда и выезда (к завтраку, к обеду, или ужину). К выше перечисленным полям относятся процедуры соответственно: ППЧто(), ППВсремяС(), ППВремяПо(). Листинги данных подпрограмм похожи на листинг подпрограммы ПпКатегНом(), только выборка происходит в первом случае по полю Реквизит значению «Что», во втором и в третьем – «Время».
При установки даты пребывания в санатории – полями ДатаС ДатаПо. Происходит окончательный расчет стоимости путевки подпрограммой ПпРасчет() Листинг которой приведен выше.
При выборе плательщика в поле Организ открывается справочник Контрагентов программы 1С:Предприятия.
При нажатии кнопки Меню вызывается процедура открытия меню. Ниже приведен листинг подпрограммы ОткрытьМеню():
Процедура ОткрытьМеню()
ЗагСпМеню="Выберите";
Пока СпМеню.ВыбратьЗначение(ВыбЗнСпМеню,ЗагСпМеню,ПозСпМеню)=1 Цикл
Если (ПозСпМеню=1) Тогда НапечататьСчетВсе(); КонецЕсли;
Если (ПозСпМеню=2) Тогда НапечататьСчетФактуру(); КонецЕсли;
Если (ПозСпМеню=3) Тогда НапечататьНакладную(); КонецЕсли;
Если (ПозСпМеню=4) Тогда НапечататьАктПродажиПутевок(); КонецЕсли;
Если (ПозСпМеню=5) Тогда ЗаписатьВТекстовыйФайл(); КонецЕсли;
Если(ПозСпМеню=6)ТогдаСформироватьДокументИзТекстовогоФайла(); КонецЕсли;
Если (ПозСпМеню=7) Тогда НапечататьКнигуПродаж(); КонецЕсли;
Если (ПозСпМеню=8) Тогда НапечататьПутевкуСинию(); КонецЕсли;
Если (ПозСпМеню=9) Тогда НапечататьПутевкуКрасную(); КонецЕсли;
КонецЦикла;
КонецПроцедуры;
Р="^";
ЕстьНаДату="";ЕстьТбл="";
КаталБД=КаталогБазыДанных();
СтрЪбыл=0;
СпМеню=СоздатьОбъект("СписокЗначений");
СпМеню.ДобавитьЗначение ("1. Напечатать счет");
СпМеню.ДобавитьЗначение ("2. Напечатать СчетФактуру");
СпМеню.ДобавитьЗначение ("3. Напечатать Накладную");
СпМеню.ДобавитьЗначение ("4. Напечатать акт продажи путевок");
СпМеню.ДобавитьЗначение ("5. ЗаписатьВТекстовыйФайл");
СпМеню.ДобавитьЗначение ("6. СформироватьДокументИзТекстовогоФайла");
СпМеню.ДобавитьЗначение ("7. Напечатать Книгу Продаж");
СпМеню.ДобавитьЗначение ("8. НапечататьПутевкуСинию");
СпМеню.ДобавитьЗначение ("9. НапечататьПутевкуКрасную");
ДатПлФ=ТекущаяДата();
Рассмотрим только некоторые процедуры.
Процедурами НапечататьСчетФактуру()и НапечататьНакладную() производится выборка по активной строке, тех записей у которых совпадают значения НомСч, ДатСч, Организ, Что. Затем печатается Счет-фактура и накладная. Листинг подпрограммы НапечататьСчетФактуру() приведен ниже.
Процедура НапечататьСчетФактуру()
НомСчЪ=НомСч;
ДатСчЪ=ДатСч;
ОрганизЪ=Организ;
ЧтоЪ=Что;
ДатТ=ТекущаяДата();
ТекВремя=ТекущееВремя();
Спр=СоздатьОбъект("Справочник.Контрагенты");
Спр.ИспользоватьДату(ДатаДок);
Спр.НайтиПоНаименованию("НаименованиеЮрЛица",Организ );
Если Спр.Выбран() > 0 Тогда
Наименование=Спр.Наименование;
Сообщить(Спр.Наименование);
КонецЕсли;
Днр=СоздатьОбъект("Документ.ПутевкиНашиРеквизиты");
Днр.ВыбратьДокументы();
Если (Днр.ПолучитьДокумент()<>1)Тогда Возврат;КонецЕсли;
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("C:\TrgSkPrg\PutRealFaktura.mxl");
Таб.ВывестиСекцию("Шапка");
Итог=0;ИтСуммаЪ=0;ВсегоЪ=0;
ВыбратьСтроки();
Пока (ПолучитьСтроку()=1) Цикл
Если (НомСч=НомСчЪ)И(ДатСч=ДатСчЪ)
И(Организ=ОрганизЪ)И(Что=ЧтоЪ) Тогда
НаимТовЙ=""+"С/кур.путевка "+ " ("+дней+"д.)";
КолВо=КоличПут;
Цена=Стоим;
ИтСуммаъ=ИтСуммаЪ+Сумма;
ИтогСумма=Всего;
ВсегоО=ИтогСумма;
Таб.ВывестиСекцию("Строка");
КонецЕсли;
КонецЦикла;
ВсегоЪ=ИтСуммаЪ;
Таб.ВывестиСекцию("Подвал");
Таб.Опции(0,0,0,0,"Параметры печати");
Таб.ТолькоПросмотр(1);
Таб.Показать("СчетФактура","");
КонецПроцедуры
Для отчета за месяц в санаторий отправляется документ в котором расписано количество проданных путевок за текущий месяц, в специальной форме. Для этого в отчеты введена процедура НапечататьАктПродажиПутевок(). Листинг подпрограммы:
Процедура НапечататьАктПродажиПутевок()
ДатПутЪ=ДатаМесяц(ДатПут);
ДатТ=ТекущаяДата();
ТекВремя=ТекущееВремя();
Тпл.Очистить();
Тпл.НоваяКолонка ("ДатаС","Дата",10,,"",,,1);
Тпл.НоваяКолонка ("ДатаПо","Дата",10,,"",,,1);
Тпл.НоваяКолонка ("НомПутС","Число",6,,"",,"",1);
Тпл.НоваяКолонка ("НомПутПо","Число",6,,"",,"",1);
Тпл.НоваяКолонка ("КоличПут","Число",6,,"",,"",1);
Тпл.НоваяКолонка ("ДатПут","Дата",10,,"",,,1);
Тпл.НоваяКолонка ("МесяцТ","Строка",20,,"",,,1);
Тпл.НоваяКолонка ("МесяцС","Строка",20,,"",,,1);
Тпл.НоваяКолонка ("ДнейТМ","Число",5,,"",,"",1);
Тпл.НоваяКолонка ("ДнейСМ","Число",5,,"",,"",1);
Тпл.НоваяКолонка ("Стоим","Число",10,2,"",,"",1);
Тпл.НоваяКолонка ("Всего","Число",10,2,"",,"",1);
Тпл.НоваяКолонка ("МесяЦЦ","Строка",20,2,"",,"",1);
Тпл.НоваяКолонка ("СуммаОТ","Число",10,2,"",,"",1);
Тпл.НоваяКолонка ("СуммаОС","Число",10,2,"",,"",1);
Тпл.НоваяКолонка ("ТипПут","Строка",1,,"",,"",1);
НомСтрЪ=НомерСтроки;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если ДатаМесяц(ДатПут)=ДатПутЪ Тогда
Тпл.НоваяСтрока();
//Тпл.МесяЦЦ=ФПРасчетМесяц(ДатаМесяц(ДатПут));
Тпл.НомПутС=НомПутС;
Тпл.НомПутПо=НомПутПо;
Тпл.ДатПут=ДатПут;
Тпл.КоличПут=КоличПут;
//Тпл.Дней=Дней;
Тпл.Стоим=Стоим;
Тпл.Всего=Всего;
Тпл.ТипПут=ТипПут;
Если ДатаМесяц(ДатаС)<>ДатаМесяц(ДатаПо) Тогда
Тпл.ДатаС=ДатаС;
Тпл.ДатаПо=ДатаПо;
Тпл.ДнейТМ=(ДатаЧисло(КонМесяца(Тпл.ДатаС))-
ДатаЧисло(Тпл.ДатаС)+1)*Тпл.КоличПут;
Тпл.ДнейСМ=(ДатаЧисло(Тпл.ДатаПо)-
ДатаЧисло(НачМесяца(Тпл.ДатаПо))+1)*
Тпл.КоличПут;
Тпл.МесяцТ=ФПРасчетМесяц(ДатаМесяц(Тпл.ДатаС));
Тпл.МесяцС= ФПРасчетМесяц (ДатаМесяц(Тпл.ДатаПо));
ИначеЕсли ДатаМесяц(ДатаС)=ДатаМесяц(ДатаПо) Тогда
Тпл.ДатаС=ДатаС;
Тпл.ДатаПо=ДатаПо;
Тпл.ДнейТМ=(ДатаЧисло(Тпл.ДатаПо)-
ДатаЧисло(Тпл.ДатаС)+1)*Тпл.КоличПут;
Тпл.МесяцТ=ФПРасчетМесяц(ДатаМесяц(Тпл.ДатаС));
Тпл.МесяцС="--";
КонецЕсли;
Если СокрЛП(ФПРасчетМесяц(ДатаМесяц(Тпл.ДатПут)))=СокрЛП(Тпл.МесяцТ) Тогда
Тпл.СуммаОТ=(Тпл.ДнейТМ)*ЦенаСут;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("C:\TrgSkPrg\PutRealEd.mxl");
СтрокНаЛисте=740; ТекущСтрЛиста=1000;НомерЛиста=1;
НомСтр=0;НомПП=0;ВысСтр=22.5;
ИтСуммаЪ=0;НДСЪ=0;ВсегоЪ=0;ном=0;
Тпл.ВыбратьСтроки();
Пока (Тпл.ПолучитьСтроку()=1) Цикл
ном=ном+1;
Х="Строка";
ПечатьСтрок(ВысСтр);
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Х="Конец";
ПечатьСтрок(ВысСтр);
Таб.Опции(0,0,0,0,"Параметры печати");
Таб.ТолькоПросмотр(1);
Таб.Показать("Акт","");
Таб.ПараметрыСтраницы(1,,,1,1,1,1);
КонецПроцедуры
В данной процедуре используются функции и процедура. Функция ФПРасчетМесяц() – конвертирует месяца, процедура ПечатьСтрок(у) рассчитывает строки печати.
Функция ФПРасчетМесяц(мес) экспорт
Если СокрЛП(мес)="1" Тогда
месяц="январь";
ИначеЕсли СокрЛП(мес)="2" Тогда
месяц="февраль";
ИначеЕсли СокрЛП(мес)="3" Тогда
месяц="март";
ИначеЕсли СокрЛП(мес)="4" Тогда
месяц="апрель";
ИначеЕсли СокрЛП(мес)="5" Тогда
месяц="май";
ИначеЕсли СокрЛП(мес)="6" Тогда
месяц="июнь";
ИначеЕсли СокрЛП(мес)="7" Тогда
месяц="июль";
ИначеЕсли СокрЛП(мес)="8" Тогда
месяц="август";
ИначеЕсли СокрЛП(мес)="9" Тогда
месяц="сентябрь";
ИначеЕсли СокрЛП(мес)="10" Тогда
месяц="октябрь";
ИначеЕсли СокрЛП(мес)="11" Тогда
месяц="ноябрь";
ИначеЕсли СокрЛП(мес)="12" Тогда
месяц="декабрь";
КонецЕсли;
Возврат месяц;
КонецФункции
Процедура ПечатьСтрок(у)
Если (СтрокНаЛисте<ТекущСтрЛиста) Тогда
Если (НомерЛиста>1) Тогда
Таб.ВывестиСекцию("КонЛист");
КонецЕсли;
Таб.НоваяСтраница();
Если (НомерЛиста>=1) Тогда
Таб.ВывестиСекцию("Заглавие");
КонецЕсли;
НомерЛиста=НомерЛиста+1; ТекущСтрЛиста=50;
КонецЕсли;
НомСтр=НомСтр+1;Таб.ВывестиСекцию(Х);
ТекущСтрЛиста=ТекущСтрЛиста+У;
КонецПроцедуры
При обмене информацией между санаторием и смоленским представительством санатория используются две процедуры: ЗаписатьВТекстовыйФайл(), СформироватьДокументИзТекстовогоФайла();
В первой подпрограмме происходит выгрузка данных в текстовый файл:
Процедура ЗаписатьВТекстовыйФайл()
Спт=СоздатьОбъект("Текст");
Если ФС.ВыбратьФайл(0,Файл,Путь,"ВфберитеФайл","Текст(*.txt) | *.txt",,)=1 Тогда
СпТ.Открыть(Путь+Файл);
СпТ.Очистить();
КонецЕсли;
ВыбратьСтроки();
Пока (ПолучитьСтроку()=1) Цикл
СтрСпТ=""+ КатегНом +Р+ ДатаС +Р+ ДатаПо +Р+ ТипПут +Р+
НомПутС +Р+ НомПутПо +Р+ ДатПут +Р+
ВремяС +Р+ ВремяПо +Р+ Сумма +Р+ Фамил +Р+ (""+Организ) +Р+
Лечение +Р+ Проживание +Р+ Питание +Р+ Что +Р+ Дней +Р+
НомДов +Р+ ДатДов +Р+ ПроцНДС +Р+ НДС +Р+ Стоим +Р+ Всего +Р+
КоличПут +Р+ ЦенаСут +Р+ НомСч +Р+
НомСчФак +Р+ НомНакл +Р+ ДатСч +Р+ ДатСчФак +Р+ ДатНакл +Р+ ДатОпл +Р;
СпТ.ДобавитьСтроку(СтрСпТ);
КонецЦикла;
СпТ.Записать(Путь+Файл);
Размер=СпТ.КоличествоСтрок();
Сообщить ("Всего строк"+Размер);
КонецПроцедуры
- в втором загрузка из текстового файла в создаваемый документ:
Процедура СформироватьДокументИзТекстовогоФайла()
УдалитьСтроки();
Контр=СоздатьОбъект("Справочник.Контрагенты");
Спт=СоздатьОбъект("Текст");
Если ФС.ВыбратьФайл(0,Файл,Путь,"ВфберитеФайл","Текст(*.txt) | *.txt",,)=1 Тогда
СпТ.Открыть(Путь+Файл);
Иначе
Возврат;
КонецЕсли;
Размер=СпТ.КоличествоСтрок();
Сообщить ("Всего строк"+Размер);
Для Поз1=1 по Размер Цикл
СтрокаКолода=СпТ.ПолучитьСтроку(Поз1);
НоваяСтрока();
КатегНом=Вр(); ДатаС=Вр(); ДатаПо=Вр(); ТипПут=Вр();
НомПутС=Вр(); НомПутПо=Вр(); ДатПут=Вр(); ВремяС=Вр(); ВремяПо=Вр();
Сумма=ВрЧ(); Фамил=Вр();
ОрганизЪ=Вр();
Если(СокрЛП(ОрганизЪ)<>"")Тогда
Если (Контр.НайтиПоНаименованию(ОрганизЪ,0,1)=1) Тогда
Организ=Контр.ТекущийЭлемент();
Иначе Сообщить("Не найденаОрганиз="+ОрганизЪ);
КонецЕсли;
КонецЕсли;
Лечение=ВрЧ();
Проживание=ВрЧ(); Питание=ВрЧ();Что=Вр();
Дней=ВрЧ(); НомДов=Вр(); ДатДов=Вр(); ПроцНДС=ВрЧ(); НДС=ВрЧ();
Стоим=ВрЧ(); Всего=ВрЧ();
КоличПут=ВрЧ(); ЦенаСут=ВрЧ(); НомСч=Вр();
НомСчФак=Вр(); НомНакл=Вр();ДатСч=Вр(); ДатСчФак=Вр(); ДатНакл=Вр();
ДатОпл=Вр();
КонецЦикла;
КонецПроцедуры
В процедуре СформироватьДокументИзТекстовогоФайла() используются две функции:
Функция Вр()
ПозицРазд=Найти(СтрокаКолода,"^");
СтрИзКолоды=Лев(СтрокаКолода,ПозицРазд-1);
СтрокаКолодаТ=Сред(СтрокаКолода,ПозицРазд+1);
СтрокаКолода=СтрокаКолодаТ;
Возврат СтрИзКолоды;
КонецФункции
Функция ВрЧ()
ПозицРазд=Найти(СтрокаКолода,"^");
СтрИзКолоды=Лев(СтрокаКолода,ПозицРазд-1);
СтрокаКолодаТ=Сред(СтрокаКолода,ПозицРазд+1);
СтрокаКолода=СтрокаКолодаТ;
Возврат Число(СтрИзКолоды);
КонецФункции
В первой функции возвращается строка а во второй значение преобразуется в число, руководствуясь принятыми правилами преобразования типов и возвращает значение числа.
Остальные функции и процедуры типовые перечисленным выше. [3].
3 Работа с программой
Для улучшения эффективности работы с программой все документы привяжем к одному журналу – «Путевки», и вынесем данный журнал на панель инструментов. После запуска системы 1С:Предприятие, открываем его.
Для того чтобы непосредственно начать работу необходимо заполнить документ «ПутевкиНашиРеквизиты», в котором указываются постоянные значения об организации, такие как: Наименование, Адрес, Наименование банка и д.р.
Следующим документом по заполнению является документ «ПутевиПеречесления», как уже говорилось выше, в него заносится, перечисления, используемые в документах «ПутевкиЦены» и «ПутевкиРеализация». Можно выделить три вида, у которых значение реквизита Реквизит равны: «Время», «Что» и «Категория». Значения равные «Время» и «Что», являются стандартными и вносятся не пользователем, а программистом перед началом работы. Пользователь добавляет перечисления только со значением реквизита «Категория», а в поле Значение вписываем возможные названия путевок: Двух местный, «Люкс», «Мать и дитя» и другие.
После заполнения документа «ПутевкиПеречисления», задаем значения справочника видов путевок, путем заполнения документа «ПутевкиЦены». В этом документе в поле КатегНом выбираем наименование путевки, если такого нет, то его добавляем в документе «ПутевкиПеречисления», в остальные поля записываем соответственно стоимость: лечения, питания, проживание и задаем сроки действия путевок.
Тогда как заполнили все описанные выше документы, начинаем непосредственно заполнять документ «ПутевкиРеализация». При создании новой строки в документе (нажатием кнопки Ins
или с помощью главного меню: Действия – Новая строка) курсор автоматически устанавливается на первую позицию ТипПутевки. Существует два вида путевок на лечение это Пищевые направленные на лечение желудочно-кишечного тракта и Нервные – лечение нервной системы. Поэтому в первом поле ставим буквы п или н соответственно. Переход к следующей строке осуществляется нажатием кнопки Enter
. Каждая путевка нумеруется отдельно, ее номер записывается в поле НомПутС, если путевок больше одной то в поле НомПутПо записывается последний номер путевки. Если же путевка одна, то записывается номер первой путевки. В поле ДатаПут ставится дата продажи путевки. При получение выписанных путевок в доверенности вписывается на кого она выписана, фамилия и инициалы. Эти данные записываются в поле Фамил. При нажатие кнопки Enter
в поле КатегНом открывается меню выбора путевки. На рисунке 3.1 приведено окно выбора путевки.
Выбор значения предлагается также в следующем поле Что, указывается вид сделки по путевки. Ниже приведен рисунок выбора:
|
Поля Завтрак, Обед, Ужин остаются без изменения равными единице. Дата заезда указывается в поле ДатаС, а выезда - ДатаПо, установить можно календарем или написать от руки. Также необходимо задать время заезда в поле ВремяС, предусматривается, что за оплату по безналичному расчету время заезда ставится завтрак, а время выезда ужин. Поэтому в поле ВремяС значение «Завтрак», а в поле ВремяПо – «Ужин». Выбор происходит из окна выбора значения нажатием – Enter соответствующих полей. На рисунке 3.3 приведено окно выбора времени заезда и выезда.
По интервалу времени отдыха (ДатаС, ДатаПо) рассчитывается количество дней отдыха стоимость путевки. Количество путевок так же рассчитывается на основании номеров путевок (НомПутС, НомПутПо). Организация оплатившая путевку выбирается из «Справочника Контрагентов» и заносится в поле Организ. На рисунке 3.4 окно «Справочника Контрагентов».
|
В поля НомСч, ДатСч, НомСчФак, ДатСчФак, НомНакл, ДатНакл, вписывается номера и даты соответственно – счета, счет фактуры, накладной. Дата оплаты путевки организацией записывается в поле ДатОпл. Правильно заполненная путевка изображена на рисунке 3.5
|
После того как запись сделана можно распечатать саму путевку на бланке а так же, счет фактуру и накладную. Для этого необходимо сделать активной нужную нам строку (установить курсор на строке) и нажать кнопку «Меню». Выбрать «Напечатать путевку синею» («Красную») или «Счет фактуру» («Накладную») и нажать «Ок». За отчетный месяц можно сделать следующие отчеты:
акт продажи путевок;
книгу продаж путевок.
а также, обмен данными:
записать в текстовый файл;
сформировать документ из текстового файла.
На рисунке 3.6 изображено окно меню:
|
Все печатаемые отчеты программы приведены в Приложение А.
Заключение
В данной курсовой работе была рассмотрена одна из программ ведения бухгалтерии в Санатории им. Пржевальского. Данная программа в настоящие время применяется для расчета путевок по безналичному расчету в смоленском филиале санатория.
С применением программы менеджер почти перестал вести отчеты по продажам путевок от руки, хотя пока они ведутся, но для того, что бы проверить правильность расчетов (в начале месяц, а теперь через квартал по месяцу). Печатаемые выдаваемые документов, приобрели строгость, тем самым в глазах покупателей уровень мнения о санатории вырос. Время, затрачиваемое для выписывания путевки, сократилось.
Данные из Смоленска выгружаются в общую базу продажи путевок санатория, где ведется окончательный расчет для бухгалтерии.
Программа расчета путевок по безналичному расчету не является законченной, в ходе работы будут возникать новые вопросы, которые будут реализовываться.
Данная программа написан под систему 1С:Предприятия Оперативный учет, но также легко может быть переделана под Бухгалтерский учет. Хотя она является специализированной, но может быть переделана с минимальными затратами времени и сил, под профильные направление. Так одним из основных применений могут служить туристические фирмы, для учету продажи путевок. Поля могут быть изменены и переделаны так, например поле «Что» может быть переделано в «Отель», а поле «Организ» в фирма, которая продает непосредственно путевку (обычно это московские фирмы) и т.д.
Литература
1. Постовалов С.Н. Программирование в системе 1С:Предприятие 7.7: Курс лекций. Новосибирск, 2002.
2. Байдаков В. Введение в конфигурирование 1С:Предприятия 7.7. – М.: Фирма «1С», 2000. – 309 с.
3. Нуралиев С. 1С:Предприятие Версия 7.7 Описание встроенного языка: В 2-х частях. – М.: Фирма «1С», 2000. – 510 с.
Приложение А