Скачиваний:
9
Добавлен:
17.06.2023
Размер:
2.6 Mб
Скачать

Процедура СпецификацияКоличествоПриИзменении(Элемент)

 

СтрокаТабличнойЧасти = Элементы.Спецификация.ТекущиеДанные;

 

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

 

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

 

 

 

&НаКлиенте

 

 

 

 

Процедура СпецификацияИзделиеПриИзменении(Элемент)

 

Строка = Объект.Запчасти.Добавить();

 

Строка.Изделие = Элементы.Спецификация.ТекущиеДанные.Изделие;

 

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

 

 

 

&НаКлиенте

 

 

 

 

Процедура ЗапчастиЦенаПриИзменении(Элемент)

 

СтрокаТабличнойЧасти = Элементы.Запчасти.ТекущиеДанные;

 

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

 

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

 

 

 

&НаКлиенте

 

 

 

 

Процедура ЗапчастиКоличествоПриИзменении(Элемент)

 

СтрокаТабличнойЧасти = Элементы.Запчасти.ТекущиеДанные;

 

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);

 

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

 

 

 

&НаКлиенте

 

 

 

 

Процедура ЗапчастиЗапчастьПриИзмененииНаСервере()

 

Элементы.Запчасти.ТекущиеДанные.Цена

=

ПолучитьЦену(Элементы.Запчасти.ТекущиеДанные.Запчасть);

 

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

 

 

 

&НаСервере

 

 

 

 

Функция

ПолучитьЦену(Запчасть)

 

Запрос = Новый Запрос;

 

 

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

 

 

 

 

"ВЫБРАТЬ

 

 

 

|

ЦеныНаЗапчастиСрезПоследних.ЦенаРозничная

 

 

|ИЗ

|

РегистрСведений.ЦеныНаЗапчасти.СрезПоследних

КАК

ЦеныНаЗапчастиСрезПоследних

 

 

 

|ГДЕ

|

ЦеныНаЗапчастиСрезПоследних.Запчасти = &Запчасти";

 

Запрос.УстановитьПараметр("Запчасти", Запчасть);

 

РезультатЗапроса = Запрос.Выполнить();

 

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Возврат ВыборкаДетальныеЗаписи.ЦенаРозничная; КонецЦикла;

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

Листинг В.6 – Документ «ЗаявкаНаРемонт» (модуль объекта)

Процедура ОбработкаПроведения(Отказ, Режим)

Если СтатусЗаявки = Перечисления.СтатусЗаявкиНаГарантийныйРемонт.Выполнена Тогда Для Каждого ТекСтрокаЗапчасти Из Запчасти Цикл Движение = Движения.СкладЗапчастей.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата;

Движение.НаименованиеИзделия = ТекСтрокаЗапчасти.Запчасть; Движение.Количество = ТекСтрокаЗапчасти.Количество;

КонецЦикла; // регистр Реализации Расход

Движения.Реализации.Записывать = Истина; Для Каждого ТекСтрокаСпецификация Из Спецификация Цикл

Движение = Движения.Реализации.Добавить();

52

Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Изделие = ТекСтрокаСпецификация.Изделие;

Движение.Серия = ТекСтрокаСпецификация.Серия; Движение.Покупатель = Покупатель; Движение.Количество = ТекСтрокаСпецификация.Количество;

КонецЦикла; // регистр ВыходИзСтроя

Движения.ВыходИзСтроя.Записывать = Истина; Для Каждого ТекСтрокаСпецификация Из Спецификация Цикл

Движение = Движения.ВыходИзСтроя.Добавить(); Движение.Период = Дата; Движение.Изделие = ТекСтрокаСпецификация.Изделие;

Движение.Причина = ТекСтрокаСпецификация.ПричинаПоломки; Движение.ТипИзделия =

ТекСтрокаСпецификация.Изделие.ТипИзделия; Движение.Количество = ТекСтрокаСпецификация.Количество;

КонецЦикла;

// регистр ГарантийныйСрок Движения.ГарантийныйСрок.Записывать = Истина; Для Каждого ТекСтрокаСпецификация Из Спецификация Цикл

Движение = Движения.ГарантийныйСрок.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаСпецификация.Изделие; Движение.Покупатель = Покупатель;

Движение.Серия = ТекСтрокаСпецификация.Серия; Движение.ДатаРемонта = Дата; Движение.ГарантияДо =

ДобавитьМесяц(Дата,ТекСтрокаСпецификация.Изделие.СрокГарантии); КонецЦикла;

КонецЕсли; Движения.СкладЗапчастей.Записывать = Истина; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

КонецПроцедуры Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ

//Данный фрагмент построен конструктором.

//При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.РеализацияИзделий") Тогда

// Заполнение шапки Покупатель = ДанныеЗаполнения.Контрагент;

Для Каждого ТекСтрокаИзделия Из ДанныеЗаполнения.Изделия Цикл НоваяСтрока = Спецификация.Добавить(); НоваяСтрока.Количество = ТекСтрокаИзделия.Количество; НоваяСтрока.Изделие = ТекСтрокаИзделия.Номенклатура; НоваяСтрока.Серия = ТекСтрокаИзделия.Серия;

КонецЦикла; Для Каждого ТекСтрокаИзделия Из ДанныеЗаполнения.Изделия Цикл

НоваяСтрока = Запчасти.Добавить(); НоваяСтрока.Количество = ТекСтрокаИзделия.Количество; НоваяСтрока.Изделие = ТекСтрокаИзделия.Номенклатура;

КонецЦикла; КонецЕсли;

//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ КонецПроцедуры

53

Листинг В.7 – Документ «ЗаявкаНаРемонт» (модуль менеджера)

Процедура Печать(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)

Макет = Документы.ЗаявкаНаРемонт.ПолучитьМакет("ПечатьЗаявкаНаРемонт"); Запрос = Новый Запрос;

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

 

"ВЫБРАТЬ

 

|

ЗаявкаНаРемонт.Дата,

|

ЗаявкаНаРемонт.Номер,

|

ЗаявкаНаРемонт.Ответственный,

|

ЗаявкаНаРемонт.Подразделение,

|

ЗаявкаНаРемонт.Покупатель,

|

ЗаявкаНаРемонт.СтатусЗаявки,

|

ЗаявкаНаРемонт.Спецификация.(

|

 

НомерСтроки,

|

 

Изделие,

|

 

Серия,

|

 

ПричинаПоломки,

|

 

ПредполагаемаяДатаРемонта,

|

 

Количество

|

),

 

|

ЗаявкаНаРемонт.Запчасти.(

|

 

НомерСтроки,

|

 

Запчасть,

|

 

Цена,

|

 

Количество,

|

 

Сумма

|

)

 

|ИЗ

|

Документ.ЗаявкаНаРемонт КАК ЗаявкаНаРемонт

|ГДЕ

|

ЗаявкаНаРемонт.Ссылка В (&Ссылка)";

Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьСпецификацияШапка = Макет.ПолучитьОбласть("СпецификацияШапка"); ОбластьСпецификация = Макет.ПолучитьОбласть("Спецификация"); ОбластьЗапчастиШапка = Макет.ПолучитьОбласть("ЗапчастиШапка"); ОбластьЗапчасти = Макет.ПолучитьОбласть("Запчасти"); ОбластьВсего = Макет.ПолучитьОбласть("Всего"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; СуммаВсего = 0; КоличествоВсего = 0; Пока Выборка.Следующий() Цикл

Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьСпецификацияШапка);

ВыборкаСпецификация = Выборка.Спецификация.Выбрать(); Пока ВыборкаСпецификация.Следующий() Цикл

ОбластьСпецификация.Параметры.Заполнить(ВыборкаСпецификация); ТабДок.Вывести(ОбластьСпецификация, ВыборкаСпецификация.Уровень());

54

КонецЦикла; ТабДок.Вывести(ОбластьЗапчастиШапка); ВыборкаЗапчасти = Выборка.Запчасти.Выбрать(); Пока ВыборкаЗапчасти.Следующий() Цикл

ОбластьЗапчасти.Параметры.Заполнить(ВыборкаЗапчасти); ТабДок.Вывести(ОбластьЗапчасти, ВыборкаЗапчасти.Уровень()); СуммаВсего = СуммаВсего + ВыборкаЗапчасти.Сумма; КоличествоВсего = КоличествоВсего + ВыборкаЗапчасти.Количество;

КонецЦикла; ОбластьВсего.Параметры.ВсегоПоЗаявке = СуммаВсего;

ОбластьВсего.Параметры.КоличествоПоЗаявке = КоличествоВсего; ТабДок.Вывести(ОбластьВсего); ВставлятьРазделительСтраниц = Истина;

КонецЦикла;

//}}

КонецПроцедуры Процедура Печать1(ТабДок, Ссылка) Экспорт

//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать1)

Макет = Документы.ЗаявкаНаРемонт.ПолучитьМакет("ПечатьГарантийногоТалона"); Запрос = Новый Запрос;

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

 

 

 

"ВЫБРАТЬ

 

 

 

|

ЗаявкаНаРемонт.Дата,

 

 

|

ЗаявкаНаРемонт.Номер,

 

|

ЗаявкаНаРемонт.Ответственный,

|

ЗаявкаНаРемонт.Подразделение,

|

ЗаявкаНаРемонт.Покупатель,

 

|

ЗаявкаНаРемонт.СтатусЗаявки,

|

ЗаявкаНаРемонт.Спецификация.(

|

 

НомерСтроки,

 

 

|

 

Изделие,

 

 

|

 

Серия,

 

 

|

 

ПричинаПоломки,

 

|

 

Количество

|

),

|

ЗаявкаНаРемонт.Запчасти.(

 

|

 

НомерСтроки,

 

 

|

 

Запчасть,

 

 

|

 

Количество

|

)

|ИЗ

|

Документ.ЗаявкаНаРемонт КАК ЗаявкаНаРемонт

|ГДЕ

|

ЗаявкаНаРемонт.Ссылка В (&Ссылка)";

Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка");

ОбластьСпецификацияШапка = Макет.ПолучитьОбласть("СпецификацияШапка"); ОбластьСпецификация = Макет.ПолучитьОбласть("Спецификация"); ОбластьЗапчастиШапка = Макет.ПолучитьОбласть("ЗапчастиШапка"); ОбластьЗапчасти = Макет.ПолучитьОбласть("Запчасти"); Подвал = Макет.ПолучитьОбласть("Подвал");

ОбластьТекст = Макет.ПолучитьОбласть("Текст"); ОбластьТекст2 = Макет.ПолучитьОбласть("Текст2"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл

Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

55

КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьСпецификацияШапка);

ВыборкаСпецификация = Выборка.Спецификация.Выбрать(); Пока ВыборкаСпецификация.Следующий() Цикл

ОбластьСпецификация.Параметры.Заполнить(ВыборкаСпецификация); ТабДок.Вывести(ОбластьСпецификация, ВыборкаСпецификация.Уровень());

КонецЦикла; ТабДок.Вывести(ОбластьТекст); ТабДок.Вывести(ОбластьЗапчастиШапка);

ВыборкаЗапчасти = Выборка.Запчасти.Выбрать(); Пока ВыборкаЗапчасти.Следующий() Цикл

ОбластьЗапчасти.Параметры.Заполнить(ВыборкаЗапчасти); ТабДок.Вывести(ОбластьЗапчасти, ВыборкаЗапчасти.Уровень());

КонецЦикла; ТабДок.Вывести(ОбластьТекст2); Подвал.Параметры.Заполнить(Выборка); ТабДок.Вывести(Подвал); ВставлятьРазделительСтраниц = Истина;

КонецЦикла; //}} КонецПроцедуры

ВЫБРАТЬ ВыходИзСтроя.Регистратор, ВыходИзСтроя.Изделие, ВыходИзСтроя.Причина, ВыходИзСтроя.Количество, ВыходИзСтроя.Период, ВыходИзСтроя.ТипИзделия

ИЗ

РегистрСведений.ВыходИзСтроя КАК ВыходИзСтроя ВЫБРАТЬ

ВыходИзСтроя.ТипИзделия, ВыходИзСтроя.Количество

ИЗ

РегистрСведений.ВыходИзСтроя КАК ВыходИзСтроя ЫБРАТЬ

ГарантийныйСрокСрезПоследних.Период, ГарантийныйСрокСрезПоследних.Регистратор, ГарантийныйСрокСрезПоследних.Номенклатура, ГарантийныйСрокСрезПоследних.Покупатель, ГарантийныйСрокСрезПоследних.Серия, ГарантийныйСрокСрезПоследних.ГарантияДо, ГарантийныйСрокСрезПоследних.ДатаРемонта

ИЗ

РегистрСведений.ГарантийныйСрок.СрезПоследних КАК ГарантийныйСрокСрезПоследних

ГДЕ

ГарантийныйСрокСрезПоследних.ДатаПокупки = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

56

Соседние файлы в папке Курсовые работы