// @strict-types
#Область СлужебныеПроцедурыИФункции
// Выполнить команду.
//
// Параметры:
// ИдентификаторКоманды - Строка
// ОбъектыНазначения - Массив из ДокументСсылка.РасходныйОрдерНаТовары
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
ОтчетОбИтогахРаботы = ПерекинутьРасходныеОрдераНаСегодня(ОбъектыНазначения);
Для Каждого Элемент Из ОтчетОбИтогахРаботы Цикл
ОбщегоНазначенияКлиент.СообщитьПользователю(Элемент);
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПерекинутьРасходныеОрдераНаСегодня(ОбъектыНазначения)
ОтчетОбИтогахРаботы = Новый Массив; // Массив из Строка
ТекущаяДата = ТекущаяДатаСеанса();
Для Каждого РасходныйОрдерСсылка Из ОбъектыНазначения Цикл
РасходныйОрдерОбъект = РасходныйОрдерСсылка.ПолучитьОбъект();
НадоПерекидывать = Истина;
Если РасходныйОрдерОбъект.Статус = Перечисления.СтатусыРасходныхОрдеров.Отгружен Тогда
ТекстСообщения = СтрШаблон("Расходный ордер № %1 от %2 не изменен т. к. он уже отгружен",РасходныйОрдерОбъект.Номер, РасходныйОрдерОбъект.Дата);
ОтчетОбИтогахРаботы.Добавить(ТекстСообщения);
НадоПерекидывать = Ложь;
КонецЕсли;
Если РасходныйОрдерОбъект.Проведен = Ложь Тогда
ТекстСообщения = СтрШаблон("Расходный ордер № %1 от %2 не изменен т. к. он не проведен.",РасходныйОрдерОбъект.Номер, РасходныйОрдерОбъект.Дата);
ОтчетОбИтогахРаботы.Добавить(ТекстСообщения);
НадоПерекидывать = Ложь;
КонецЕсли;
Если НадоПерекидывать Тогда
РасходныйОрдерОбъект.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения", Истина);
РасходныйОрдерОбъект.Дата = ТекущаяДата;
РасходныйОрдерОбъект.ДатаОтгрузки = ТекущаяДата;
РасходныйОрдерОбъект.Записать(РежимЗаписиДокумента.Проведение);
ТекстСообщения = СтрШаблон("Расходный ордер № %1 от %2 перенесен на текущий день",РасходныйОрдерОбъект.Номер, РасходныйОрдерОбъект.Дата);
ОтчетОбИтогахРаботы.Добавить(ТекстСообщения);
КонецЕсли;
КонецЦикла;
Возврат ОтчетОбИтогахРаботы;
КонецФункции
#КонецОбласти