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

ПРИЛОЖЕНИЕ В

Текст модулей объектов

Листинг В.1 – Общий модуль «РаботаСДокументами»

Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество *

СтрокаТабличнойЧасти.Цена; КонецПроцедуры

Листинг В.2 – Документ «ПриходнаяНакладнаяНаЗапчасти» (форма документа)

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

// Вставить содержимое обработчика.

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

КонецПроцедуры &НаКлиенте

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

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

КонецПроцедуры &НаКлиенте

Процедура СтавкаПриИзменении(Элемент) // Вставить содержимое обработчика.

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

СтрокаСпецификации.Цена+(СтрокаСпецификации.Ставка * СтрокаСпецификации.Цена)/100; КонецПроцедуры

Листинг В.3 – Документ «ПриходнаяНакладнаяНаЗапчасти» (модуль объекта)

Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

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

//регистр СкладЗапчастей Приход

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

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

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

КонецЦикла; // регистр ЦеныНаЗапчасти

63

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

Движение = Движения.ЦеныНаЗапчасти.Добавить(); Движение.Период = Дата; Движение.Запчасти = ТекСтрокаСпецификация.Запчасть;

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

КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

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

Листинг В.4 – Документ «ПриходнаяНакладнаяНаЗапчасти» (модуль менеджера)

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

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

"ВЫБРАТЬ

 

|

ПриходнаяНакладнаяНаЗапчасти.Дата,

|

ПриходнаяНакладнаяНаЗапчасти.Номер,

|

ПриходнаяНакладнаяНаЗапчасти.Организация,

|

ПриходнаяНакладнаяНаЗапчасти.Склад,

|

ПриходнаяНакладнаяНаЗапчасти.Спецификация.(

|

 

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

|

 

Поставщик,

|

 

Запчасть,

|

 

ЕдиницаИзмерения,

|

 

Цена,

|

 

ЦенаРозничная,

|

 

Количество,

|

 

Сумма

|

)

 

|ИЗ

|

Документ.ПриходнаяНакладнаяНаЗапчасти КАК

ПриходнаяНакладнаяНаЗапчасти

|ГДЕ

|

ПриходнаяНакладнаяНаЗапчасти.Ссылка В (&Ссылка)";

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

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

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

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

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

64

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

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

ВыборкаСпецификация.Уровень()); КонецЦикла;

ВставлятьРазделительСтраниц = Истина; КонецЦикла;

//}}

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

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

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

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

КонецПроцедуры &НаКлиенте

Процедура СпецификацияКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.Спецификация.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры &НаКлиенте

Процедура СпецификацияИзделиеПриИзменении(Элемент) Строка = Объект.Запчасти.Добавить();

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

Процедура ЗапчастиЦенаПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.Запчасти.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры &НаКлиенте

Процедура ЗапчастиКоличествоПриИзменении(Элемент) СтрокаТабличнойЧасти = Элементы.Запчасти.ТекущиеДанные;

РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); КонецПроцедуры &НаКлиенте

Процедура ЗапчастиЗапчастьПриИзмененииНаСервере() Элементы.Запчасти.ТекущиеДанные.Цена =

ПолучитьЦену(Элементы.Запчасти.ТекущиеДанные.Запчасть); КонецПроцедуры &НаСервере

Функция ПолучитьЦену(Запчасть) Запрос = Новый Запрос; Запрос.Текст =

"ВЫБРАТЬ | ЦеныНаЗапчастиСрезПоследних.ЦенаРозничная

65

|ИЗ

|

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

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

 

|ГДЕ

|

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

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

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

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

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

Если СтатусЗаявки = Перечисления.СтатусЗаявкиНаГарантийныйРемонт.Выполнена

Тогда

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

Движение = Движения.ГарантийныйСрок.Добавить(); Движение.Период = Дата;

66

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

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

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

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

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

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

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

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

Тогда

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

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

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

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

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

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

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

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

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

|

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

|

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

|

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

|

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

|

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

|

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

|

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

|

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

|

Изделие,

|

Серия,

67

|

 

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

|

 

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

|

 

Количество

|

),

 

|

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

|

 

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

|

 

Запчасть,

|

 

Цена,

|

 

Количество,

|

 

Сумма

|

)

 

|ИЗ

|

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

|ГДЕ

|

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

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

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

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

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

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

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

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

ВыборкаСпецификация.Уровень()); КонецЦикла;

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

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

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

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

68

КонецЦикла;

//}}

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

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

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

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

 

 

"ВЫБРАТЬ

 

 

 

|

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

 

|

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

 

|

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

|

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

|

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

|

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

|

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

|

 

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

 

|

 

Изделие,

 

 

|

 

Серия,

 

 

|

 

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

 

|

 

Количество

|

),

|

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

 

|

 

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

 

|

 

Запчасть,

 

 

|

 

Количество

|

)

|ИЗ

|

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

|ГДЕ

|

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

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

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

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

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

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

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

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

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

69

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

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

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

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

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

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

Листинг В.8 – Отчет «ВыходыИзСтроя»

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

ИЗ

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

Листинг В.9 – Отчет «РейтингТиповИзделий»

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

ИЗ

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

Листинг В.10 – Отчет «ИзделияПослеРемонта»

ВЫБРАТЬ ГарантийныйСрокСрезПоследних.Период, ГарантийныйСрокСрезПоследних.Регистратор,

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

ИЗ

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

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

70

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