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