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