Загрузка данных


Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	Если Не ЗначениеЗаполнено(Клиент) Тогда
		Сообщить("Не выбран клиент.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Мастер) Тогда
		Сообщить("Не выбран мастер.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Услуга) Тогда
		Сообщить("Не выбрана услуга.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(ДатаЗаписи) Тогда
		Сообщить("Не указана дата записи.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если ПустаяСтрока(Статус) Тогда
		Статус = "Запланирована";
	КонецЕсли;

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	ИтоговаяСумма = 0;

	Если Материалы.Количество() = 0 Тогда
		Сообщить("Не заполнена табличная часть материалов.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Для Каждого СтрокаМатериалов Из Материалы Цикл

		Если Не ЗначениеЗаполнено(СтрокаМатериалов.Материал) Тогда
			Сообщить("В строке поступления не выбран материал.");
			Отказ = Истина;
			Возврат;
		КонецЕсли;

		Если СтрокаМатериалов.Количество <= 0 Тогда
			Сообщить("Количество материала должно быть больше нуля.");
			Отказ = Истина;
			Возврат;
		КонецЕсли;

		Если СтрокаМатериалов.Цена < 0 Тогда
			Сообщить("Цена материала не может быть отрицательной.");
			Отказ = Истина;
			Возврат;
		КонецЕсли;

		СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
		ИтоговаяСумма = ИтоговаяСумма + СтрокаМатериалов.Сумма;

	КонецЦикла;

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


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

	Движения.ОстаткиМатериалов.Записывать = Истина;

	Для Каждого СтрокаМатериалов Из Материалы Цикл

		Движение = Движения.ОстаткиМатериалов.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
		Движение.Период = Дата;
		Движение.Материал = СтрокаМатериалов.Материал;
		Движение.Количество = СтрокаМатериалов.Количество;
		Движение.Сумма = СтрокаМатериалов.Сумма;

	КонецЦикла;

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	Если Не ЗначениеЗаполнено(Клиент) Тогда
		Сообщить("Не выбран клиент.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Мастер) Тогда
		Сообщить("Не выбран мастер.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Услуга) Тогда
		Сообщить("Не выбрана услуга.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если СуммаУслуги <= 0 Тогда
		СуммаУслуги = Услуга.Цена;
	КонецЕсли;

	Если СуммаУслуги <= 0 Тогда
		Сообщить("Сумма услуги должна быть больше нуля.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Для Каждого СтрокаМатериалов Из Материалы Цикл
		СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
	КонецЦикла;

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


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

	Движения.ОстаткиМатериалов.Записывать = Истина;
	Движения.Продажи.Записывать = Истина;
	Движения.ВзаиморасчетыСКлиентами.Записывать = Истина;

	Для Каждого СтрокаМатериалов Из Материалы Цикл

		Движение = Движения.ОстаткиМатериалов.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;
		Движение.Материал = СтрокаМатериалов.Материал;
		Движение.Количество = СтрокаМатериалов.Количество;
		Движение.Сумма = СтрокаМатериалов.Сумма;

	КонецЦикла;

	Движение = Движения.Продажи.Добавить();
	Движение.Период = Дата;
	Движение.Клиент = Клиент;
	Движение.Сотрудник = Мастер;
	Движение.ВидПродажи = "Услуга";
	Движение.Сумма = СуммаУслуги;

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

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	Себестоимость = 0;

	Если Не ЗначениеЗаполнено(Парик) Тогда
		Сообщить("Не выбран парик.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Мастер) Тогда
		Сообщить("Не выбран мастер.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Количество <= 0 Тогда
		Сообщить("Количество изготовленных париков должно быть больше нуля.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Для Каждого СтрокаМатериалов Из Материалы Цикл
		СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
		Себестоимость = Себестоимость + СтрокаМатериалов.Сумма;
	КонецЦикла;

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


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

	Движения.ОстаткиМатериалов.Записывать = Истина;
	Движения.ОстаткиПариков.Записывать = Истина;

	Для Каждого СтрокаМатериалов Из Материалы Цикл

		Движение = Движения.ОстаткиМатериалов.Добавить();
		Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
		Движение.Период = Дата;
		Движение.Материал = СтрокаМатериалов.Материал;
		Движение.Количество = СтрокаМатериалов.Количество;
		Движение.Сумма = СтрокаМатериалов.Сумма;

	КонецЦикла;

	Движение = Движения.ОстаткиПариков.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
	Движение.Период = Дата;
	Движение.Парик = Парик;
	Движение.Количество = Количество;
	Движение.Сумма = Себестоимость;

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

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	Если Не ЗначениеЗаполнено(Клиент) Тогда
		Сообщить("Не выбран клиент.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Сотрудник) Тогда
		Сообщить("Не выбран сотрудник.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Не ЗначениеЗаполнено(Парик) Тогда
		Сообщить("Не выбран парик.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Количество <= 0 Тогда
		Сообщить("Количество париков должно быть больше нуля.");
		Отказ = Истина;
		Возврат;
	КонецЕсли;

	Если Цена <= 0 Тогда
		Цена = Парик.ЦенаПродажи;
	КонецЕсли;

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

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


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

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

	Движение = Движения.ОстаткиПариков.Добавить();
	Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
	Движение.Период = Дата;
	Движение.Парик = Парик;
	Движение.Количество = Количество;
	Движение.Сумма = Сумма;

	Движение = Движения.Продажи.Добавить();
	Движение.Период = Дата;
	Движение.Клиент = Клиент;
	Движение.Сотрудник = Сотрудник;
	Движение.ВидПродажи = "Парик";
	Движение.Сумма = Сумма;

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

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