Загрузка данных
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(Клиент) Тогда
Сообщить("Не выбран клиент.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Мастер) Тогда
Сообщить("Не выбран мастер.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Услуга) Тогда
Сообщить("Не выбрана услуга.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаЗаписи) Тогда
Сообщить("Не указана дата записи.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если ПустаяСтрока(Статус) Тогда
Статус = "Запланирована";
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
ИтоговаяСумма = 0;
Если Материалы.Количество() = 0 Тогда
Сообщить("Не заполнена табличная часть материалов.");
Отказ = Истина;
Возврат;
КонецЕсли;
Для Каждого СтрокаМатериалов Из Материалы Цикл
Если Не ЗначениеЗаполнено(СтрокаМатериалов.Материал) Тогда
Сообщить("В строке поступления не выбран материал.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если СтрокаМатериалов.Количество <= 0 Тогда
Сообщить("Количество материала должно быть больше нуля.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если СтрокаМатериалов.Цена < 0 Тогда
Сообщить("Цена материала не может быть отрицательной.");
Отказ = Истина;
Возврат;
КонецЕсли;
СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
ИтоговаяСумма = ИтоговаяСумма + СтрокаМатериалов.Сумма;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиМатериалов.Записывать = Истина;
Для Каждого СтрокаМатериалов Из Материалы Цикл
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = СтрокаМатериалов.Материал;
Движение.Количество = СтрокаМатериалов.Количество;
Движение.Сумма = СтрокаМатериалов.Сумма;
КонецЦикла;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(Клиент) Тогда
Сообщить("Не выбран клиент.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Мастер) Тогда
Сообщить("Не выбран мастер.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Услуга) Тогда
Сообщить("Не выбрана услуга.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если СуммаУслуги <= 0 Тогда
СуммаУслуги = Услуга.Цена;
КонецЕсли;
Если СуммаУслуги <= 0 Тогда
Сообщить("Сумма услуги должна быть больше нуля.");
Отказ = Истина;
Возврат;
КонецЕсли;
Для Каждого СтрокаМатериалов Из Материалы Цикл
СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Движения.ВзаиморасчетыСКлиентами.Записывать = Истина;
Для Каждого СтрокаМатериалов Из Материалы Цикл
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = СтрокаМатериалов.Материал;
Движение.Количество = СтрокаМатериалов.Количество;
Движение.Сумма = СтрокаМатериалов.Сумма;
КонецЦикла;
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Клиент = Клиент;
Движение.Сотрудник = Мастер;
Движение.ВидПродажи = "Услуга";
Движение.Сумма = СуммаУслуги;
Если Не Оплачено Тогда
Движение = Движения.ВзаиморасчетыСКлиентами.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Клиент = Клиент;
Движение.Сумма = СуммаУслуги;
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Себестоимость = 0;
Если Не ЗначениеЗаполнено(Парик) Тогда
Сообщить("Не выбран парик.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Мастер) Тогда
Сообщить("Не выбран мастер.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Количество <= 0 Тогда
Сообщить("Количество изготовленных париков должно быть больше нуля.");
Отказ = Истина;
Возврат;
КонецЕсли;
Для Каждого СтрокаМатериалов Из Материалы Цикл
СтрокаМатериалов.Сумма = СтрокаМатериалов.Количество * СтрокаМатериалов.Цена;
Себестоимость = Себестоимость + СтрокаМатериалов.Сумма;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.ОстаткиПариков.Записывать = Истина;
Для Каждого СтрокаМатериалов Из Материалы Цикл
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = СтрокаМатериалов.Материал;
Движение.Количество = СтрокаМатериалов.Количество;
Движение.Сумма = СтрокаМатериалов.Сумма;
КонецЦикла;
Движение = Движения.ОстаткиПариков.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Парик = Парик;
Движение.Количество = Количество;
Движение.Сумма = Себестоимость;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(Клиент) Тогда
Сообщить("Не выбран клиент.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Сотрудник) Тогда
Сообщить("Не выбран сотрудник.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(Парик) Тогда
Сообщить("Не выбран парик.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Количество <= 0 Тогда
Сообщить("Количество париков должно быть больше нуля.");
Отказ = Истина;
Возврат;
КонецЕсли;
Если Цена <= 0 Тогда
Цена = Парик.ЦенаПродажи;
КонецЕсли;
Сумма = Количество * Цена;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ОстаткиПариков.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
Движения.ВзаиморасчетыСКлиентами.Записывать = Истина;
Движение = Движения.ОстаткиПариков.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Парик = Парик;
Движение.Количество = Количество;
Движение.Сумма = Сумма;
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Клиент = Клиент;
Движение.Сотрудник = Сотрудник;
Движение.ВидПродажи = "Парик";
Движение.Сумма = Сумма;
Если Не Оплачено Тогда
Движение = Движения.ВзаиморасчетыСКлиентами.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Клиент = Клиент;
Движение.Сумма = Сумма;
КонецЕсли;
КонецПроцедуры