ТекстСообщения = "";
УправлениеАвторазбивкойАвтозаказа = Константы.УправлениеАвторазбивкойАвтозаказа.Получить();
Если УправлениеАвторазбивкойАвтозаказа = Перечисления.НастройкаАвторазбивкиАвтозаказа.ПроводитьАвтоматически
ИЛИ (((ДеньНедели(ДатаСоставленияЗаказа) = 6)ИЛИ(ДеньНедели(ДатаСоставленияЗаказа) = 7))
И(УправлениеАвторазбивкойАвтозаказа = Перечисления.НастройкаАвторазбивкиАвтозаказа.ПроводитьВВыходныеДни)) Тогда
//слить и разбить
ПараметрыСеанса.Пользователь=Справочники.Пользователи.НайтиПоКоду("Робот");
ПараметрыСеанса.исУправляемаяБлокировка=Ложь;
СлианиеАвтозаказа=Обработки.СлияниеЗаказаПоставщику.Создать();
СлианиеАвтозаказа.ОрганизацияЗаказа = Справочники.Организации.......;
СлианиеАвтозаказа.ПодразделениеЗаказа = Справочники.ПодразделенияКомпании.Магазины;
СлианиеАвтозаказа.СкладЗаказа = Справочники.СкладыКомпании.ОсновнойСкладКомпании;
//СлианиеАвтозаказа.Поставщик = Справочники.Контрагенты.ОсновнойПоставщик;
СлианиеАвтозаказа.Поставщик = Справочники.Контрагенты......;
СлианиеАвтозаказа.ДоговорЗаказа =
Справочники.ДоговорыВзаиморасчетов.НайтиПоНаименованию(
".... договор ПОСТАВКИ",Истина,,Справочники.Контрагенты......);
СлианиеАвтозаказа.НеОбъединятьПоОрганизациям = Ложь;
СлианиеАвтозаказа.УдалятьЗаказы = Истина;
ЗапросЗаказов = Новый Запрос;
ЗапросЗаказов.Текст =
"ВЫБРАТЬ
| ЗаказПоставщику.Ссылка
|ИЗ
| Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
| ЗаказПоставщику.Дата МЕЖДУ &Дата1 И &Дата2
| И ЗаказПоставщику.Контрагент В (&Контрагент)
| И ЗаказПоставщику.Проведен = ЛОЖЬ
| И ЗаказПоставщику.ПометкаУдаления = ЛОЖЬ
| И НЕ ЗаказПоставщику.Приемщик > """"
| И НЕ ЗаказПоставщику.Комментарий ПОДОБНО ""%РЕЗЕРВ%""
| И ЗаказПоставщику.ПодразделениеКомпании <> &ПодразделениеКомпанииГлавныйСклад";
ЗапросЗаказов.УстановитьПараметр("Дата1",НачалоДня(ТекущаяДата()));
ЗапросЗаказов.УстановитьПараметр("Дата2",КонецДня(ТекущаяДата()));
СписокКонтрагентов = Новый СписокЗначений;
СписокКонтрагентов.Добавить(Справочники.Контрагенты.ОсновнойПоставщик);
СписокКонтрагентов.Добавить(Справочники.Контрагенты.....);
ЗапросЗаказов.УстановитьПараметр("Контрагент",СписокКонтрагентов);
ЗапросЗаказов.УстановитьПараметр("ПодразделениеКомпанииГлавныйСклад", ОбщийМодульСКД.ВычислитьПодразделениеГлавныйСкладФирмы());
РТСлияниеАвтозаказЛогисты = ЗапросЗаказов.Выполнить().Выгрузить();
Если РТСлияниеАвтозаказЛогисты.Количество() > 0 Тогда
Для Каждого Стр Из РТСлияниеАвтозаказЛогисты Цикл
СтрЗаказ = СлианиеАвтозаказа.ТаблицаЗаказов.Добавить();
СтрЗаказ.Номер = 1;
СтрЗаказ.ЗаказПоставщику = Стр.Ссылка;
КонецЦикла;
СлианиеАвтозаказа.СлитьЗаказы();
Если СлианиеАвтозаказа.РезультатОбъединенияЗаказовУспешный = Истина Тогда
НовыйЗаказ = СлианиеАвтозаказа.ДокументыРезультат[0].НовыйЗаказ;
РазбивкаАвтозаказа=Обработки.РазбитиеЗаказаПоставщику.Создать();
РазбивкаАвтозаказа.ЗаказПоставщику = НовыйЗаказ;
РазбивкаАвтозаказа.Провести = Истина;
РазбивкаАвтозаказа.ОтправитьПисьма = Истина;
РазбивкаАвтозаказа.Заказ = Ложь;
РазбивкаАвтозаказа.Отсрочить = Ложь;
РазбивкаАвтозаказа.РазбитьЗаказ();
Иначе
Если СлианиеАвтозаказа.ТаблицаЗаказов.Количество() > 0 Тогда
Для Каждого Стр Из СлианиеАвтозаказа.ТаблицаЗаказов Цикл
ЗаказПоставщику = Стр.Ссылка;
СтарыйДок = ЗаказПоставщику.ПолучитьОбъект();
Попытка
СтарыйДок.УстановитьПометкуУдаления(Истина);
Исключение
Сообщить("Не удалось удалить заказ "+ ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецЕсли;
Если СлианиеАвтозаказа.ДокументыРезультат.Количество() > 0 Тогда
Для Каждого Стр Из СлианиеАвтозаказа.ДокументыРезультат Цикл
ЗаказПоставщику = Стр.Ссылка;
СтарыйДок = ЗаказПоставщику.ПолучитьОбъект();
Попытка
СтарыйДок.УстановитьПометкуУдаления(Истина);
Исключение
Сообщить("Не удалось удалить заказ "+ ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если РТАвтозаказЛогисты.Количество() > 0 Тогда
Для Каждого Стр Из РТАвтозаказЛогисты Цикл
ЗаказПоставщику = Стр.Ссылка;
СтарыйДок = ЗаказПоставщику.ПолучитьОбъект();
Попытка
СтарыйДок.УстановитьПометкуУдаления(Истина);
Исключение
Сообщить("Не удалось удалить заказ "+ ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецЕсли;
Если УправлениеАвторазбивкойАвтозаказа = Перечисления.НастройкаАвторазбивкиАвтозаказа.ЕдиничныйПропуск Тогда
Попытка
//Константы.УправлениеАвторазбивкойАвтозаказа.Установить(Перечисления.НастройкаАвторазбивкиАвтозаказа.ПроводитьВВыходныеДни);
Константы.УправлениеАвторазбивкойАвтозаказа.Установить(Перечисления.НастройкаАвторазбивкиАвтозаказа.ПроводитьАвтоматически);
ТекстСообщения = ТекстСообщения + "Управление ночной авторазбивкой автозаказа установлено в режим Проводить автоматически.";
Исключение
ТекстСообщения = ТекстСообщения + "НЕ КОРРЕКТНО Управление ночной авторазбивкой автозаказа, не удалось перейти в режим Проводить автоматически!";
КонецПопытки;
КонецЕсли;
КонецЕсли;