Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
удали, как прочитаешь.doc
Скачиваний:
7
Добавлен:
19.09.2019
Размер:
6.98 Mб
Скачать

3 Разработка алгоритма работы информационной системы

В информационной системе «Предприятие LADA-сервис» представлены следующие справочники: «Автомобили», «Сотрудники», «Контрагенты», «Банки», «БанковскиеСчета», «БанковскийСчетФирмы», «Наценки», «ОбъемДвигателя», «КПП», «ТипКузова», «ТипТоплива», «Цвет», «Авто», «Должность», «Кассы», «Склады», «Филиалы», «ИнфоПоФирме».

В справочнике «Автомобили» хранится номенклатура товаров, а именно автомобилей, с которыми работает предприятие. Алгоритм создания справочника «Автомобили»:

 в режиме конфигуратора открыть диалоговое окно конфигурации с помощью кнопки на панели инструментов «Конфигурация»;

Рисунок 4 – Окно нового справочника

– в открывшемся окне выбрать элемент «Справочники», вызвать контекстное меню, выбрать «Новый справочник»;

– появится окно нового справочника, он представлен на рисунке 4. Ввести в поле «Идентификатор» наименование справочника, установить длину наименования – 100. В поле «Реквизиты» создать с помощью кнопки «Новый» следующие реквизиты: «Марка» (тип значения: «Строка», длина – 50), «Модель» (тип значения: «Справочник.Авто»), «ЛС» (тип значения: «Строка», длина – 10), «ОбъемДвигателя» (тип значения: «Справочник. ОбъемДвигателя»), «КПП» (тип значения: «Справочник.КПП»), «ТипКузова» (тип значения: «Справочник.ТипКузова»), «ТипТоплива» (тип значения: «Справочник.ТипТоплива»), «ГодВыпуска» (тип значения: «Строка», длина – 14), «Цвет» (тип значения: «Справочник.Цвет»), «Цена» (тип значения: «Число», длина – 15, точность – 2);

Рисунок 5 – Форма элемента справочника «Автомобили»

– открыть форму элемента с помощью кнопки «Форма элемента». Откроется окно «Размещение реквизитов справочника», выбрать все поля, кроме поля «Марка». Далее нажать кнопку «Вставить» и оформить форму как показано на рисунке 5, предварительно создав «Поле со списком» с идентификатором «МаркаАвто»;

– к кнопкам «+» и «О» в свойствах на вкладе «Дополнительно» в поле «Формула» ввести «ОткрытьСпр()» и «ПриОткрытии()» соответственно;

– в вкладку «Модуль» ввести следующий код:

перем prov;

Процедура ОткрытьСпр()

ОткрытьФорму("Справочник.Авто");

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

Процедура ПриОткрытии()

МаркаАвто.УдалитьВсе();

Спр = СоздатьОбъект("Справочник.Авто");

Спр.ВыбратьЭлементы();

Пока Спр.ПолучитьЭлемент() = 1 Цикл

Если Спр.ЭтоГруппа() = 1 Тогда

МаркаАвто.ДобавитьЗначение(Спр.ТекущийЭлемент());

КонецЕсли

КонецЦикла;

МаркаАвто.ВставитьЗначение(1, Марка);

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

Процедура ПриЗаписи()

Результат=0;

НомерСтр=0;

НомерСтр=МаркаАвто.ТекущаяСтрока();

Результат = МаркаАвто.ПолучитьЗначение(НомерСтр);

Наименование=0;

Наименование = СокрЛП(Результат)+" "+Модель+" "+"("+ОбъемДвигателя+" "+ТипТоплива+" "+КПП+" "+ТипКузова+" "+ СокрЛП(ГодВыпуска)+"г. "+Цвет+")";

Марка = СокрЛП(Результат);

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

В информационной системе «Предприятие LADA-сервис» предусмотрены следующие документы для хранения основной информации о всех событиях, происходящих на предприятии: «ЗаказАвто», «ПоступлениеАвто», «СчетФактураПолученный», «ПлатежноеПоручение», «СтрокаВыпискиРасход», «Реализация», «СчетФактураВыданный», «СтрокаВыпискиПриход», «ПКО», «РКО», «ЗаявкаКлиента», «ВводОстатков».

Документ «ЗаказАвто» нужен для фиксации в системе факта заказа автомобилей поставщику и для автоматического формирования документа для печати.

Алгоритм создания документа «ЗаказАвто»:

–  в режиме конфигуратора открыть диалоговое окно конфигурации с помощью кнопки на панели инструментов «Конфигурация»;

– в открывшемся окне выбрать элемент «Документы», вызвать контекстное меню, выбрать «Новый документ». Появится окно нового документа;

– ввести данные согласно рисунку 6. В область реквизитов шапки добавить следующие реквизиты: «Поставщик» (тип значения: «Справочник.Поставщики»), «ДатаОтгрузки» (тип значения: «Дата»), «ДатаОплаты» (тип значения: «Дата»), «Филиал» (тип значения: «Справочник.Филиалы»), «ИнфоПоФирме» (тип значения: «Справочник.ИнфоПоФирме»).

Рисунок 6 – Окно редактирования документа «ЗаказАвто»

В область «Реквизиты табличной части» ввести следующие реквизиты: «НаименованиеАвто» (тип значения: «Справочник.НаименованиеАвто»), «Количество» (тип значения: «Число», длина – 15), «Цена» (тип значения: «Число», длина – 15), «Сумма» (тип значения: «Число», длина – 15);

– зайти в форму документа с помощью кнопки «Форма», вставить предлагаемые поля и разместить их согласно рисунку 7. С помощью инструмента «Кнопка» создать кнопки «Основание», «Подбор», «Печать». В свойствах этих кнопок на вкладке «Дополнительно» в поле «Формула» ввести «КнПоОсн()», «Подбор()», «Печать()» соответственно. Далее создаем с помощью инструмента «Текст» надписи, в свойствах которых в поле «Формула» пишем «Итог("Сумма")», «док»;

Рисунок 7 – Форма документа «ЗаказАвто»

– в модуль формы пишем следующий код:

перем сумм;

перем rez;

перем док;

Процедура ВводНаОсновании(ДокОснование)

док = ДокОснование;

Если ДокОснование.Вид() = "ЗаказАвто" Тогда

Поставщик = ДокОснование.Поставщик;

ДатаОтгрузки = ДокОснование.ДатаОтгрузки;

ДатаОплаты = ДокОснование.ДатаОплаты;

СуммаПоДок = ДокОснование.СуммаПоДок;

ИнфоПоФирме = ДокОснование.ИнфоПоФирме;

Филиал = ДокОснование.Филиал;

ИнфоПоФирме = ДокОснование.ИнфоПоФирме;

ДокОснование.ВыбратьСтроки();

Пока ДокОснование.ПолучитьСтроку() = 1 Цикл

НоваяСтрока();

НаименованиеАвто = ДокОснование.НаименованиеАвто;

Количество = ДокОснование.Количество;

Цена = ДокОснование.Цена;

Сумма = ДокОснование.Сумма;

КонецЦикла;

ИначеЕсли ДокОснование.Вид() = "ПоступлениеАвто" Тогда

КонецЕсли;

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

Процедура КнПоОсн()

ОткрытьПодбор("Журнал.Общий");

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

Процедура Подбор()

Если ПустаяСтрока(Поставщик) = 1 Тогда

Предупреждение("Не указано наименование поставщика!", 60);

Активизировать("Поставщик");

СтатусВозврата(0); Возврат;

КонецЕсли;

ОткрытьПодбор("Справочник.Автомобили", "ДляПодбора");

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

процедура ОбработкаПодбора(ВыбЗнач, КонтФормыПодбора)

Перем ТаблЧасть, ТаблицаПодбора;

ТипЗнач = ТипЗначенияСтр(ВыбЗнач);

Если ТипЗнач = "Документ" Тогда

ВводНаОсновании(ВыбЗнач);

Возврат;

КонецЕсли;

ТипЗнач = ТипЗначенияСтр(ВыбЗнач);

Если ТипЗнач = "СписокЗначений" Тогда

ТаблицаПодбора = ВыбЗнач.Получить("ТаблицаПодбора");

Иначе

Возврат;

КонецЕсли;

ВыгрузитьТабличнуюЧасть(ТаблЧасть);

ТаблицаПодбора.ВыбратьСтроки();

Пока ТаблицаПодбора.ПолучитьСтроку() = 1 Цикл

НоваяСтрока();

НаименованиеАвто = ТаблицаПодбора.Наименование;

Количество = ТаблицаПодбора.Количество;

Цена = ТаблицаПодбора.Цена;

Сумма = Количество*Цена;

КонецЦикла;

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

Процедура ПриОкончанииРедактированияСтроки()

Сумма = Цена*Количество;

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

Процедура Печать()

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("Печать");

Таб.ВывестиСекцию("Шапка");

Таб.Опции(0,0,0,0);

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

Таб.ВывестиСекцию("Строка");

КонецЦикла;

Таб.ВывестиСекцию("Подвал");

Таб.ТолькоПросмотр(1);

Таб.Показать("Печать ЗаказАвто","");

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

Функция Фирма(rez)

СпрФирм = СоздатьОбъект("Справочник.ИнфоПоФирме");

СпрФирм.ВыбратьЭлементы();

Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл

Фирма = СпрФирм.ПолнНаим;

КонецЦикла;

Возврат(Фирма);

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

Функция ФиоРуковод(rez)

СпрФирм = СоздатьОбъект("Справочник.ИнфоПоФирме");

СпрФирм.ВыбратьЭлементы();

Пока СпрФирм.ПолучитьЭлемент() = 1 Цикл

ФиоРуковод = СпрФирм.ФИОруковод;

КонецЦикла;

Возврат(ФиоРуковод);

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

Функция ГлБух(REZ)

СпрФирм2 = СоздатьОбъект("Справочник.Должность");

СпрФирм2.ВыбратьЭлементы();

СпрФирм2.НайтиПоКоду(2);

Услов = СпрФирм2.ТекущийЭлемент();

СпрСотр = СоздатьОбъект("Справочник.Сотрудники");

СпрСотр.ВыбратьЭлементы();

Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл

Если (СпрСотр.Должность = услов) Тогда

Если (СпрСотр.Филиал = Филиал) Тогда

РЕЗ = СпрСотр.ТекущийЭлемент();

КонецЕсли;

КонецЕсли;

КонецЦикла;

Возврат(РЕЗ);

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

Также в информационной системе представлены отчеты, предоставляющая различную информацию: «ПоГруппамАвто», «ОстаткиНаСкладе», «ПоЗаказамПоставщику», «БанковскиеДвижения», «КассовыеДвиежения», «РеализАвт», «Реализация», «ЗаявкиКлиентов».

Отчет «ПоГруппеАвто» предоставляет информацию клиенту перечень автомобилей поддержанных, либо новых. Алгоритм разработки:

–  в режиме конфигуратора открыть диалоговое окно конфигурации с помощью кнопки на панели инструментов «Конфигурация»;

– в открывшемся окне выбрать элемент «Отчеты», вызвать контекстное меню, выбрать «Конструктор отчета»;

– вызвать конструктор, добавить переменные «Справочник.Автомобили.Родитель», «Справочник.Автомобили.Наименование», «Справочник.Автомобили.Цена». Далее, выбрать группировку по наименованию автомобиля, указать условие «Родитель в ВыбРодитель»;

– добавить в отчет с помощью инструмента «Реквизит диалога» поле с идентификатором «ВыбРодитель» и оформить форму;

– оформить таблицу «Сформировать» согласно рисунку 8;

Рисунок 8 – Таблица отчета «ПоГруппамАвто»

– отредактировать в модуле отчета процедуру «Сформировать()» так, чтобы он был идентичен коду:

Процедура Сформировать()

Перем Запрос, ТекстЗапроса, Таб;

//Создание объекта типа Запрос

Запрос = СоздатьОбъект("Запрос");

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

"//{{ЗАПРОС(Сформировать)

|Родитель = Справочник.Автомобили.Родитель;

|Наименование = Справочник.Автомобили.Наименование;

|Цена = Справочник.Автомобили.Цена;

|Группировка Наименование;

|Условие(Родитель в ВыбРодитель);

|"//}}ЗАПРОС

;

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда

Возврат;

КонецЕсли;

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("Сформировать");

// Заполнение полей "Заголовок"

Таб.ВывестиСекцию("Заголовок");

Состояние("Заполнение выходной таблицы...");

Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

Пока Запрос.Группировка(1) = 1 Цикл

Таб.ВывестиСекцию("Строка");

КонецЦикла;

Таб.ВывестиСекцию("Подвал");

Таб.ТолькоПросмотр(1);

Таб.Показать("Сформировать", "");

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

Все листинги документов и отчетов представлены в приложении Б.