logo
Диплом_1 / РЫБОЛОВЛЕВ_ДИПЛОМ

Приложение 2 Листинг Документ.Квитанция

//***********************************************************************

//Выбор вида обслуживания

Процедура ПереключательВО()

Если Гарантия = 1 Тогда

ИначеЕсли Гарантия = 2 Тогда

КонецЕсли;

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

//*****************************************************************

//Выбор исполнителя

Процедура ПереключательИсп()

Если ВыпТО = 1 Тогда

Форма.РемФирма.Видимость(0);

РемФирма = "";

ИначеЕсли ВыпТО = 2 Тогда

Форма.РемФирма.Видимость(1);

КонецЕсли;

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

//*******************************************************************

//Ввод на основании

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

ДокОсн = СоздатьОбъект("Документ");

Если ДокОсн.ВыбратьПодчиненныеДокументы(,,ДокументОснование) <> 0 Тогда

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

Возврат;

КонецЕсли;

Если ДокументОснование.Проведен() = 0 Тогда

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

Возврат;

КонецЕсли;

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

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

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

СерийныйНомер = ДокументОснование.СерийныйНомер;

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

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

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

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

ТипОбслуживания=ДокументОснование.ТипОбслуживания;

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

Если Спр.НайтиЭлемент(СерийныйНомер)=1 Тогда

Если ДобавитьМесяц(Спр.ДатаПрихода,Спр.СрокГарантии)<РабочаяДата() Тогда

Спр.СтатусГарантии=Перечисление.СтатусыГарантии.ГарантияЗакончилась;

Гарантия=2; // негарантийное обслуживание

Иначе// если случайно изменили, во время отката даты

Спр.СтатусГарантии=Перечисление.СтатусыГарантии.Гарантия;

Гарантия=1; // гарантийное обслуживание

КонецЕсли;

Спр.Записать();

СтатусГарантии=Спр.СтатусГарантии;

Иначе

Предупреждение("Не найден серийный номер!");

КонецЕсли;

ВыпТО = 1;

Автор=глАвтор;

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

//**************************************************************************

//Открытие бланка техническое обслуживание

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

Если ПустоеЗначение(ДокОснование) = 1 Тогда

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

Возврат;

КонецЕсли;

ПереключательВО();

ПереключательИсп();

Если Проведен() = 1 Тогда

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

Форма.ИККвит.Видимость(1);

Форма.ИКВып.Видимость(0);

Иначе

Форма.ТолькоПросмотр(0);

Форма.ИККвит.Видимость(0);

Если (НазваниеИнтерфейса() = "Техник") ИЛИ (НазваниеИнтерфейса() = "Администратор") Тогда

Форма.ИКВып.Видимость(1);

Иначе

Форма.ИКВып.Видимость(0);

КонецЕсли;

КонецЕсли;

ПриЗаписиПерепроводить(0);

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

//

//Перечень Работ

Процедура ПоКнЗИП()

Если Выбран() = 1 Тогда

ЗМ = СоздатьОбъект("Документ");

ЗМ.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());

Если ЗМ.ПолучитьДокумент() = 1 Тогда

Если Проведен() = 0 Тогда

ОткрытьФорму(ЗМ.ТекущийДокумент(),,0);

Возврат;

Иначе

ОткрытьФорму(ЗМ.ТекущийДокумент(),,1);

Возврат;

КонецЕсли;

Иначе

ОткрытьФорму("Документ.ТОЗИП",Контекст,ТекущийДокумент());

КонецЕсли;

Иначе

ФлагВ = Вопрос("Записать документ Выполнение техническое обслуживание в базу данных?",1,0);

Если ФлагВ = 1 Тогда

Записать();

ОткрытьФорму("Документ.ТОЗИП",Контекст,ТекущийДокумент());

ИначеЕсли ФлагВ = 2 Тогда

Возврат;

КонецЕсли;

КонецЕсли;

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

//

//Завершение ТО

Процедура ПоКнВыполнено()

Если ПустоеЗначение(Неисправность) = 1 Тогда

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

Возврат;

КонецЕсли;

Если (ВыпТО = 2) И (ПустоеЗначение(РемФирма) = 1) Тогда

Предупреждение("Не выбрана обслуживающая фирма!");

Возврат;

КонецЕсли;

ДатаДок = ТекущаяДата();

Записать();

Провести();

//

Если Проведен() = 1 Тогда

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

Форма.ИККвит.Видимость(1);

Форма.ИКВып.Видимость(0);

Иначе

Форма.ТолькоПросмотр(0);

Форма.ИККвит.Видимость(0);

Форма.ИКВып.Видимость(1);

КонецЕсли;

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

//

//Возможность сохранения

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

Если Проведен() = 0 Тогда

Если (ВыпТО = 2) И (ПустоеЗначение(РемФирма) = 1) Тогда

Предупреждение("Не выбрана обслуживающая фирма!");

Возврат;

КонецЕсли;

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

Если ККР.НайтиЭлемент(СерийныйНомер) = 1 Тогда

ККР.Клиент = Клиент;

ККР.Записать();

Иначе

Предупреждение("Оборудование с серийным номером "+СерийныйНомер+" не найдено!");

Возврат;

КонецЕсли;

Записать();

КонецЕсли;

Форма.Закрыть(0);

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

//

//*********************************************************

//

//Печать квитанции

Процедура ПоКнКвитанция()

//Печать

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

Таб.ИсходнаяТаблица("Таблица1");

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

Если ВыпТО = 1 Тогда

//Если работы выполнял Сервисный центр

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

ДЗ = СоздатьОбъект("Документ");

ДЗ.ВыбратьПодчиненныеДокументы(,,ТекущийДокумент());

Если ДЗ.ПолучитьДокумент() = 1 Тогда

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

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

Ном1 = ДЗ.НомерСтроки;

ЗИП = ДЗ.ЗИП;

ЕдИзм = ДЗ.ЕдИзм;

Количество = ДЗ.Количество;

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

КонецЦикла;

КонецЕсли;

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

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

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

Ном2 = НомерСтроки;

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

КонецЦикла;

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

ИначеЕсли ВыпТО = 2 Тогда

//Если работы выполняла сторонняя ремонтная фирма

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

КонецЕсли;

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

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

Таб.Показать("Квитанция на техническое обслуживание","");

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

//*****************************************************

Процедура ВводНового()

Автор=глАвтор;

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