3.2 Разработка документов
Любая совершаемая хозяйственная операция отображается в системе в виде документа. При его заполнении данные вводятся с бумажного документа и только те, которые необходимы для проведения учета. Документ должен быть в обязательном порядке сохранен, а затем проведен.
Документы формируются на основе входных данных и выходных данных.
При открытии нового документа появляется форма. В полях номер и дата, информация заносится автоматически. Номер присваивается на единицу больше, чем предыдущий, а дата – текущая дата. Любой документ состоит из шапки и табличной части. Любое поле шапочной части заполняется путем выбора из справочника, перечисления или автоматически.
В курсовой работе были разработаны три документа, показанных ниже. На рисунке 19 показан документ «ПриемкаРемонт» в режиме конфигуратора.
Рисунок 19 – Документ «ПриемкаРемонт» в режиме конфигуратора
На рисунке 20 показана форма документа «ПриемкаРемонт».
Рисунок 20 – Форма документа «ПриемкаРемонт»
На рисунке 21 показана печатная форма документа «ПриемкаРемонт», если в состоянии заказа установлено значение “не готов”.
Рисунок 21 – Печатная форма документа «ПриемкаРемонт»
На рисунке 22 показана печатная форма документа «ПриемкаРемонт», если в состоянии заказа установлено значение “готов”.
Рисунок 22 – Печатная форма документа «ПриемкаРемонт»
После печати данной формы значение в поле “Cостояние заказа” будет автоматически изменено с “готов” на “выдан”.
Программный код для документа «ПриемкаРемонт»:
//*****************************
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
КонецПроцедуры
//*****************************
Процедура ПриВыбореНаименования()
Если (ВидРемонта=Перечисление.ВидРемонта.П) //платный
Тогда Цена=Наименование.Цена;
//Иначе ВидРемонта=Перечисление.ВидРемонта.Г
//т.е. гарантийный и цена = 0
Иначе Цена=0;
КонецЕсли;
КонецПроцедуры
Процедура Печать()
Перем N; //для отображения номера услуги
N=1;
//Печать квитанции
Если (СостояниеЗаказа=Перечисление.СостояниеЗаказа.Н) //не готов
Тогда
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Квитанция");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Строка");
Таб.ТолькоПросмотр(1);
Таб.Показать();
КонецЕсли;
//Печать акта
Если (СостояниеЗаказа=Перечисление.СостояниеЗаказа.Г) //готов
Тогда
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Акт");
Таб.ВывестиСекцию("Шапка");
Таб.ВывестиСекцию("Строка");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("ЧтоСделано");
N=N+1;
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ВывестиСекцию("Строка2");
Таб.ТолькоПросмотр(1);
Таб.Показать();
СостояниеЗаказа=Перечисление.СостояниеЗаказа.В //присвоить значение выдан
КонецЕсли;
Если (СостояниеЗаказа=Перечисление.СостояниеЗаказа.В) //выдан
Тогда Сообщить("ОАУ уже выдано заказчику!");
КонецЕсли;
КонецПроцедуры
В следующих двух документах будет использоваться регистр. На рисунке 23 показан документ «ПриходЗапчастей» в режиме конфигуратора.
Рисунок 23 – Документ «ПриходЗапчастей» в режиме конфигуратора
На рисунке 24 показана форма документа «ПриходЗапчастей».
Рисунок 24 – Форма документа «ПриходЗапчастей»
На рисунке 25 показана печатная форма документа «ПриходЗапчастей»
Рисунок 25 – Печатная форма документа «ПриходЗапчастей»
Программный код для документа «ПриходЗапчастей»:
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
КонецПроцедуры
Процедура ЦенаЗаВсе()
ЦенаЗаВсе=ЦенаЗаШт*Количество;
КонецПроцедуры
Процедура Печать()
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("АктПриемаЗапчастей");
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("ЧтоКуплено");
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.Показать()
КонецПроцедуры
На рисунке 26 показан документ «РасходЗапчастей» в режиме конфигуратора.
Рисунок 26 – Документ «РасходЗапчастей» в режиме конфигуратора
На рисунке 27 показана форма документа «РасходЗапчастей».
Рисунок 27 – Форма документа «РасходЗапчастей»
На рисунке 28 показана печатная форма документа «РасходЗапчастей».
Рисунок 28 – Печатная форма документа «РасходЗапчастей»
Программный код для документа «РасходЗапчастей»:
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
КонецПроцедуры
Процедура ЦенаЗаВсе()
ЦенаЗаВсе=ЦенаЗаШт*Количество;
КонецПроцедуры
Процедура Печать()
Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("АктРасходаЗапчастей");
Таб.ВывестиСекцию("Шапка");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("ЧтоРасходовано");
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.Показать()
КонецПроцедуры