Автор: Пользователь скрыл имя, 18 Апреля 2013 в 13:30, курсовая работа
В данном курсовом проекте разработана конфигурация, позволяющая автоматизировать простейший бюджетный процесс во франчайзинговой компании, продающей программные продукты «1С» и оказывающей услуги по внедрению.
Система позволяет совершать следующие операции:
добавление, изменение, удаление и хранение информации об отделах организации и статьях доходов и расходов;
ввод, изменение и удаление плановых и фактических цифр доходов и расходов по каждому отделу;
формирование отчетности по исполнению бюджета компании.
1 ВВЕДЕНИЕ 3
2 Предварительный анализ 4
2.1 Обзор состояния вопроса 4
2.2 Формулировка задач проектирования 4
2.3 Требования к составу и параметрам технических средств 7
3 Описание программного продукта 9
3.1 Принципы разработки в среде «1С: Предприятие 8.2» 9
3.2 Структура проектируемой системы 9
3.2.1 Справочники 9
3.2.2 Документы 10
3.2.3 Перечисления 12
3.2.4 Отчеты 12
3.2.5 Регистры накопления 12
4 Инструкции по пользованию системой 13
4.1 Руководство пользователю 13
4.1.1 Работа со справочниками 13
4.1.2 Работа с документами 15
4.1.3 Работа с отчетами 18
4.2 Руководство системному администратору (программисту) 19
Если Документ = Объект.Ссылка Тогда
Отказ = Ложь;
Иначе
Отказ = Истина;
Предупреждение("Для данного отдела на указанный период план по доходам и расходам уже заполнен", , "Документ не может быть записан");
КонецЕсли;
Иначе Отказ = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасчетДефицитаПрофицита()
ДефПрЯнварь = Объект.ТабличнаяЧастьДоходы.
ДефПрФевраль =
Объект.ТабличнаяЧастьДоходы.
ДефПрМарт = Объект.ТабличнаяЧастьДоходы.
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьДоходыПриИзменен
Строка = Элементы.ТабличнаяЧастьДоходы.
Если Строка.СтатьяДоходов = ПродажиПП Тогда
АвтоматическийРасчетСебестоимо
КонецЕсли;
АвтоматическийРасчетАдминистра
РасчетДефицитаПрофицита();
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьРасходыПриИзмене
РасчетДефицитаПрофицита();
КонецПроцедуры
&НаКлиенте
Процедура АвтоматическийРасчетСебестоимо
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("
Стр = Объект.ТабличнаяЧастьРасходы.
Для Каждого Эл Из Стр Цикл
Эл.Январь = Строка.Январь * 0.45;
Эл.Февраль = Строка.Февраль * 0.45;
Эл.Март = Строка.Март * 0.45;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура АвтоматическийРасчетАдминистра
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("
Стр = Объект.ТабличнаяЧастьРасходы.
Для Каждого Эл Из Стр Цикл
Эл.Январь = 0.1 *
(Объект.ТабличнаяЧастьДоходы.
Эл.Февраль = 0.1
* (Объект.ТабличнаяЧастьДоходы.
Эл.Март = 0.1 * (Объект.ТабличнаяЧастьДоходы.
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПродажиПП = Справочники.
СебестоимостьПП
= Справочники.
АдминистративныеРасходы
= Справочники.
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьРасходыПриАктиви
Строка = Элементы.
Если (Строка.СтатьяРасходов = СебестоимостьПП) ИЛИ (Строка.СтатьяРасходов = АдминистративныеРасходы) Тогда
Элементы.
Иначе
Элементы.
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Проверка(Период, Отдел)
Если (Период <> "") и Не(Отдел.Пустая()) Тогда
Документ = ПроверкаДокумента(Период, Отдел);
КонецЕсли;
Если Документ <> Неопределено Тогда
Если Документ = Объект.Ссылка Тогда
Отказ = Ложь;
Иначе
Отказ = Истина;
Предупреждение("Для данного отдела на указанный период план по доходам и расходам уже заполнен", , "Документ не может быть записан");
Отдел = Неопределено;
КонецЕсли;
Иначе Отказ = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтделПриИзменении(Элемент)
Проверка(Объект.Период, Объект.Отдел);
КонецПроцедуры
&НаКлиенте
Процедура ПериодПриИзменении(Элемент)
Строка = Строка(Формат(ТекущаяДата(), "ДФ = гггг"));
Если Период = "1 квартал "+ Строка тогда
Объект.Период = Строка + "0102";
иначе
Если Период = "2 квартал "+ Строка тогда
Объект.Период = Строка + "0402";
Иначе
Если Период = "3 квартал "+ Строка тогда
Объект.Период = Строка + "0702";
Иначе
Если Период = "4 квартал "+ Строка тогда
Объект.Период = Строка + "1002";
Иначе
Строка1 = Формат(Число(Строка)+1, "ЧГ = 0 ");
Объект.Период = Строка(Строка1) + "0102";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Проверка(Объект.Период, Объект.Отдел);
КонецПроцедуры
Модуль объекта документа «Ввод плановых бюджетных цифр»
Процедура ЗаписьДанных()
Таб = Новый ТаблицаЗначений;
СпрПланПоДоходам = Справочники.ПланПоДоходам.
СпрПланПоРасходам
= Справочники.ПланПоРасходам.
Таб.Очистить();
Если Месяц(Период) = 1 тогда
Строка = "1 квартал ";
Иначе
Если Месяц(Период) = 4 тогда
Строка = "2 квартал ";
Иначе
Если Месяц(Период) = 7 тогда
Строка = "3 квартал ";
Иначе
Строка = "4 квартал ";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Таб = ТабличнаяЧастьДоходы.
СпрПланПоДоходам.Владелец = Отдел;
СпрПланПоДоходам.Документ = Ссылка;
СпрПланПоДоходам.Наименование = "План по доходам для отдела " + Отдел + " на " + Строка + " " + Формат(Период, "ДФ = гггг") + " года";
СпрПланПоДоходам.Период = Период;
СпрПланПоДоходам.
СпрПланПоДоходам.Записать();
Таб.Очистить();
Таб = ТабличнаяЧастьРасходы.
СпрПланПоРасходам.Владелец = Отдел;
СпрПланПоРасходам.Документ = Ссылка;
СпрПланПоРасходам.Наименование = "План по расходам для отдела " + Отдел + " на " + Строка + " " + Формат(Период, "ДФ = гггг") + " года";
СпрПланПоРасходам.Период = Период;
СпрПланПоРасходам.
СпрПланПоРасходам.Записать();
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
ОбработкаУдаленияПроведения();
ЗаписьДанных();
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения()
ЗапросДоход = Новый Запрос;
ЗапросДоход.Текст = "ВЫБРАТЬ
|ПланПоДоходам.Ссылка
|ИЗ
|Справочник.ПланПоДоходам КАК ПланПоДоходам
|ГДЕ
|КВАРТАЛ(ПланПоДоходам.Период) = КВАРТАЛ(&Период)
|И ПланПоДоходам.Владелец = &Отдел
|И ПланПоДоходам.Документ = &Документ
|И ГОД(ПланПоДоходам.Период) = ГОД(&Период)
|";
ЗапросДоход.
ЗапросДоход.
ЗапросДоход.
РезультатДоход
= ЗапросДоход.Выполнить().
Пока РезультатДоход.Следующий(
ЭлементДоход =
РезультатДоход.Ссылка.
ЭлементДоход.Удалить();
КонецЦикла;
ЗапросРасход = Новый Запрос;
ЗапросРасход.Текст = "ВЫБРАТЬ
|ПланПоРасходам.Ссылка
|ИЗ
|Справочник.ПланПоРасходам КАК ПланПоРасходам
|ГДЕ
|КВАРТАЛ(ПланПоРасходам.
|И ПланПоРасходам.Владелец = &Отдел
|И ПланПоРасходам.Документ = &Документ
|И ГОД(ПланПоРасходам.Период) = ГОД(&Период)
|";
ЗапросРасход.
ЗапросРасход.
ЗапросРасход.
РезультатРасход
= ЗапросРасход.Выполнить().
Пока РезультатРасход.
ЭлементРасход
= РезультатРасход.Ссылка.
ЭлементРасход.Удалить();
КонецЦикла;
КонецПроцедуры
Модуль формы документа «Движение денежных средств»
&НаКлиенте
Процедура ТабличнаяЧастьПриходПриИзменен
ТекущаяСтрока
= Элементы.ТабличнаяЧасть.
Если ТекущаяСтрока.Приход <> 0 Тогда
ТекущаяСтрока.Расход = 0;
ТекущаяСтрока.СтатьяРасходов = Неопределено;
Элементы.
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьРасходПриИзменен
ТекущаяСтрока
= Элементы.ТабличнаяЧасть.
Если ТекущаяСтрока.Расход <> 0 Тогда
ТекущаяСтрока.Приход = 0;
ТекущаяСтрока.СтатьяДоходов = Неопределено;
Элементы.
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличнаяЧастьПриАктивизацииСт
Попытка
Элементы.
Элементы.
ТекущаяСтрока
= Элементы.ТабличнаяЧасть.
Если ТекущаяСтрока.Приход <> 0 Тогда
ТекущаяСтрока.Расход = 0;
ТекущаяСтрока.СтатьяРасходов = Неопределено;
Элементы.
Иначе
Если ТекущаяСтрока.Расход <> 0 Тогда
ТекущаяСтрока.Приход = 0;
ТекущаяСтрока.СтатьяДоходов = Неопределено;
Элементы.
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;
КонецПроцедуры
Модуль объекта документа «Движение денежных средств»
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ФактДоходы
Движения.ФактДоходы.Записывать = Истина;
Для Каждого ТекСтрокаТабличнаяЧасть Из ТабличнаяЧасть Цикл
Если ТекСтрокаТабличнаяЧасть.
Движение = Движения.ФактДоходы.Добавить()
Движение.Период = Дата;
Движение.СтатьяДоходов
= ТекСтрокаТабличнаяЧасть.
Движение.Отдел = ТекСтрокаТабличнаяЧасть.Отдел;
Движение.Сумма
= ТекСтрокаТабличнаяЧасть.
КонецЕсли;
Если ТекСтрокаТабличнаяЧасть.
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
//Сообщение.КлючДанных = Объект.Ссылка;
Сообщение.Текст = "Не заполнена колонка ""Статья доходов"" в строке списка ""Табличная часть""";
//Сообщение.ПутьКДанным = "Объект";
//Сообщение.Поле = "СтатьяРасходов"
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
Движения.ФактРасходы.
Для Каждого ТекСтрокаТабличнаяЧасть Из ТабличнаяЧасть Цикл
Если ТекСтрокаТабличнаяЧасть.
Движение = Движения.ФактРасходы.Добавить(
Движение.Период = Дата;
Движение.СтатьяРасходов
= ТекСтрокаТабличнаяЧасть.
Движение.Отдел = ТекСтрокаТабличнаяЧасть.Отдел;
Движение.Сумма
= ТекСтрокаТабличнаяЧасть.
КонецЕсли;
Если ТекСтрокаТабличнаяЧасть.
Отказ = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не заполнена колонка ""Статья расходов"" в строке списка ""Табличная часть""";
Сообщение.Сообщить();
КонецЕсли;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_
КонецПроцедуры
Информация о работе Принципы разработки в среде «1С: Предприятие 8.2»