#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ИнициироватьНастройкиДинамическихСписков();
ОбщегоНазначенияУТ.НастроитьПодключаемоеОборудование(ЭтаФорма);
Если ПустаяСтрока(Параметры.КлючНазначенияФормы) Тогда
КлючНазначенияИспользования = КлючНазначенияФормыПоУмолчанию();
Иначе
КлючНазначенияИспользования = Параметры.КлючНазначенияФормы;
КонецЕсли;
Если КлючНазначенияИспользования = КлючНазначенияФормыПоУмолчанию() Тогда
КлючНастроек = "";
Иначе
КлючНастроек = КлючНазначенияИспользования;
КонецЕсли;
НавигационнаяСсылка = "e1cib/app/Обработка.ЖурналДокументовПродажи";
ВосстановитьНастройки(Параметры);
ТЗХозОперацииИТипыДокументов = ОбщегоНазначенияУТ.ДоступныеХозяйственныеОперацииИДокументы(ОписаниеОперацийИТиповДокументов(),
ОтборХозяйственныеОперации, ОтборТипыДокументов, КлючНастроек);
ЗаголовокФормы = Параметры.ЗаголовокФормы;
Если Не ЗначениеЗаполнено(ЗаголовокФормы) Тогда
ЗаголовокФормы = НСтр("ru = 'Документы продажи (все)'");
КонецЕсли;
Заголовок = ЗаголовокФормы;
ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамХранителю = ПолучитьФункциональнуюОпцию(
"ИспользоватьАктыРасхожденийПослеОтгрузки");
ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямТоваровОтХранителя = ПолучитьФункциональнуюОпцию(
"ИспользоватьАктыРасхожденийПослеПриемки");
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеОтгрузки") Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента",Метаданные.Документы.АктОРасхожденияхПослеОтгрузки.ПолноеИмя()));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
Если СтрокаКУдалению.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи Тогда
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамХранителю Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента, ХозяйственнаяОперация",
Метаданные.Документы.АктОРасхожденияхПослеОтгрузки.ПолноеИмя(),
Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЦикла;
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеПриемки") Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента",
Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя()));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
Если СтрокаКУдалению.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтХранителя Тогда
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямТоваровОтХранителя Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента, ХозяйственнаяОперация",
Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя(),
Перечисления.ХозяйственныеОперации.ВозвратОтХранителя));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЦикла;
КонецЕсли;
ХозяйственныеОперацииИДокументы.Загрузить(ТЗХозОперацииИТипыДокументов);
ОбщегоНазначенияУТ.ЗаполнитьОтборыПоТаблицеХозОперацийИТиповДокументов(ТЗХозОперацииИТипыДокументов, ОтборХозяйственныеОперации, ОтборТипыДокументов);
ПрослеживаемостьОтбор();
НастроитьФормуПоВыбраннымОперациямИДокументам(ТЗХозОперацииИТипыДокументов);
ИспользуемыеТипыДокументов = ТЗХозОперацииИТипыДокументов.ВыгрузитьКолонку("ТипДокумента");
ПроверкаКонтрагентов.ПриСозданииНаСервереСписокДокументов(СписокДокументыПродажи);
Если ПроверкаКонтрагентовВызовСервера.ИспользованиеПроверкиВозможно() Тогда
Элементы.ЕстьОшибкиПроверкиКонтрагентов.Видимость = Истина;
КонецЕсли;
ИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтаФорма, Элементы.ГруппаГлобальныеКоманды);
ПараметрыПриСозданииНаСервере = ОбменСКонтрагентами.ПараметрыПриСозданииНаСервере_ФормаСписка();
ПараметрыПриСозданииНаСервере.Форма = ЭтотОбъект;
ПараметрыПриСозданииНаСервере.МестоРазмещенияКоманд = Элементы.ПодменюЭДО;
ПараметрыПриСозданииНаСервере.КолонкаСостоянияЭДО = Элементы.ПредставлениеСостояния;
ОбменСКонтрагентами.ПриСозданииНаСервере_ФормаСписка(ПараметрыПриСозданииНаСервере);
ТорговыеПредложения.ПриСозданииПодсказокФормы(ЭтотОбъект, Элементы.ПодсказкиБизнесСеть);
ДополнительныеПараметры = Новый Структура("МестоРазмещенияДанныхПроверкиРегл", Элементы.ГруппаРеглПроверка);
СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка, ДополнительныеПараметры);
Если ЗначениеЗаполнено(ИспользуемыеТипыДокументов) Тогда
ИспользуемыеТипыДокументов.Добавить(Тип("ДокументСсылка.Сторно"));
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.Источники = Новый ОписаниеТипов(ИспользуемыеТипыДокументов);
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокДокументыПродажиКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
КонецЕсли;
Если Элементы.ПредставлениеСостояния.Родитель = Элементы.СписокДокументыПродажи Тогда
Расположение = Элементы.ПредставлениеСостояния;
Иначе
Расположение = Элементы.ПредставлениеСостояния.Родитель;
КонецЕсли;
УчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаСписка(ЭтотОбъект,Элементы.СписокДокументыПродажи, Расположение);
ВыполнятьЗамерыПроизводительности = ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности();
УстановитьСоответствиеТиповДокументовИФорм(ТЗХозОперацииИТипыДокументов);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
МенеджерОборудованияКлиент.НачатьПодключениеОборудованиеПриОткрытииФормы(Неопределено, ЭтаФорма, "СканерШтрихкода");
ОбменСКонтрагентамиКлиент.ПриОткрытии(ЭтотОбъект);
ТорговыеПредложенияКлиент.ОбновитьПодсказкуФормы(ЭтотОбъект);
УстановитьПараметрыОбновленияСписковДокументов(Ложь, 0);
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Если Не ЗавершениеРаботы Тогда
СохранитьНастройки();
КонецЕсли;
МенеджерОборудованияКлиент.НачатьОтключениеОборудованиеПриЗакрытииФормы(Неопределено, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Источник = "ПодключаемоеОборудование" И ВводДоступен() Тогда
Если ИмяСобытия = "ScanData" И МенеджерОборудованияУТКлиент.ЕстьНеобработанноеСобытие() Тогда
ОбработатьШтрихкоды(МенеджерОборудованияУТКлиент.ПреобразоватьДанныеСоСканераВСтруктуру(Параметр));
КонецЕсли;
КонецЕсли;
ПараметрыОповещенияЭДО = ОбменСКонтрагентамиКлиент.ПараметрыОповещенияЭДО_ФормаСписка();
ПараметрыОповещенияЭДО.Форма = ЭтотОбъект;
ПараметрыОповещенияЭДО.ИмяДинамическогоСписка = "СписокДокументыПродажи";
ПараметрыОповещенияЭДО.ЕстьОбработчикОбновленияВидимостиСостоянияЭДО = Истина;
ОбменСКонтрагентамиКлиент.ОбработкаОповещения_ФормаСписка(ИмяСобытия, Параметр, Источник, ПараметрыОповещенияЭДО);
Если (ИмяСобытия = "Запись_РеализацияТоваровУслуг"
ИЛИ ИмяСобытия = "Запись_РеализацияУслугПрочихАктивов"
ИЛИ ИмяСобытия = "Запись_ВыкупТоваровХранителем"
ИЛИ ИмяСобытия = "Запись_ПередачаТоваровХранителю"
ИЛИ ИмяСобытия = "Запись_ПоступлениеТоваровОтХранителя"
ИЛИ ИмяСобытия = "Запись_ОприходованиеИзлишковОтгруженныхТоваров"
ИЛИ ИмяСобытия = "Запись_СписаниеОтгруженныхТоваров"
ИЛИ ИмяСобытия = "Запись_ПересортицаТоваровУХранителя"
ИЛИ ИмяСобытия = "Запись_ПорчаТоваровУХранителя"
ИЛИ ИмяСобытия = "Запись_КорректировкаРеализации"
ИЛИ ИмяСобытия = "Запись_СчетФактураВыданный"
ИЛИ ИмяСобытия = "Запись_АктОРасхожденияхПослеОтгрузки"
ИЛИ ИмяСобытия = "Запись_АктОРасхожденияхПослеПоступления"
ИЛИ ИмяСобытия = "Запись_АктВыполненныхРабот"
ИЛИ ИмяСобытия = "Запись_ЗаявкаНаВозвратТоваровОтКлиента"
ИЛИ ИмяСобытия = "Запись_ВозвратТоваровОтКлиента"
ИЛИ ИмяСобытия = "Запись_АктОРасхожденияхПослеПриемки"
ИЛИ ИмяСобытия = "Запись_ОтчетКомиссионера"
ИЛИ ИмяСобытия = "Принять_ФормаСозданныхДокументов"
ИЛИ ИмяСобытия = "Проведение_Сторно"
Или ИмяСобытия = "Запись_Сторно") Тогда
ОбновитьСписокДокументовСобытиеОбработкаОповещения("СписокДокументыПродажи", Параметр);
ОбновитьГиперссылкуКОформлению();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецЕсли;
УчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаСписка(ИмяСобытия, ЭтотОбъект, Элементы.СписокДокументыПродажи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура МенеджерПриИзменении(Элемент)
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(СписокДокументыПродажи,
"Менеджер",
Менеджер,
ВидСравненияКомпоновкиДанных.Равно,,
ЗначениеЗаполнено(Менеджер));
РаботаСЖурналамиДокументовКлиент.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокДокументыПродажи");
КонецПроцедуры
&НаКлиенте
Процедура СкладПриИзменении(Элемент)
СкладПриИзмененииСервер();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
УстановитьОтборПоОрганизации();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура ИнформационнаяНадписьОтборОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ДоступныеХозяйственныеОперацииИДокументы", ПоместитьВоВременноеХранилищеХозяйственныеОперацииИДокументы());
ПараметрыФормы.Вставить("КлючНастроек", КлючНазначенияИспользования);
ПараметрыФормы.Вставить("КлючФормы", КлючНазначенияФормыПоУмолчанию());
ОткрытьФорму("Справочник.НастройкиХозяйственныхОпераций.Форма.ФормаУстановкиОтбора",
ПараметрыФормы,,,,,
Новый ОписаниеОповещения("УстановитьОтборыПоХозОперациямИДокументам",
ЭтотОбъект));
КонецПроцедуры
&НаКлиенте
Процедура УстановитьОтборыПоХозОперациямИДокументам(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ВыбранноеЗначение) = Тип("Строка") Тогда
АдресДоступныхХозяйственныхОперацийИДокументов = ВыбранноеЗначение;
ОтборОперацияТипОбработкаВыбораСервер(АдресДоступныхХозяйственныхОперацийИДокументов);
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КОформлениюОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
СтруктураБыстрогоОтбора = Новый Структура;
СтруктураБыстрогоОтбора.Вставить("Организация",Организация);
СтруктураБыстрогоОтбора.Вставить("Склад",Склад);
ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
ПараметрыФормы.Вставить("ОтображатьСтраницуКОформлению", Истина);
Если НавигационнаяСсылкаФорматированнойСтроки = "Обработка.ЖурналДокументовПродажи.Форма.КОформлениюНакладных" Тогда
ОценкаПроизводительностиКлиент.НачатьЗамерВремени(Истина,
"Обработка.ЖурналДокументовПродажи.Команда.НакладныеКОформлению");
КонецЕсли;
ПозицияРазделителяПараметра = СтрНайти(НавигационнаяСсылкаФорматированнойСтроки, "%");
Если ПозицияРазделителяПараметра > 0 Тогда
ПараметрНавигационнойСсылки =
Сред(НавигационнаяСсылкаФорматированнойСтроки, ПозицияРазделителяПараметра + 1);
НавигационнаяСсылкаФорматированнойСтроки =
Сред(НавигационнаяСсылкаФорматированнойСтроки, 1, ПозицияРазделителяПараметра - 1);
ПараметрыФормы.Вставить("КлючНазначенияФормы", ПараметрНавигационнойСсылки);
ПараметрыФормы.Вставить("КлючВарианта", ПараметрНавигационнойСсылки);
КонецЕсли;
ПараметрыФормы.Вставить("УникальныйИдентификаторФормы", Ложь);
ИнтеграцияСМаркетплейсамиКлиент.ДополнитьПараметрыФормы(ПараметрыФормы,
СписокДокументыПродажи.КомпоновщикНастроек.Настройки.ДополнительныеСвойства, НавигационнаяСсылкаФорматированнойСтроки);
ОткрытьФорму(НавигационнаяСсылкаФорматированнойСтроки, ПараметрыФормы,, ПараметрыФормы.УникальныйИдентификаторФормы);
КонецПроцедуры
&НаКлиенте
Процедура СмТакжеВРаботеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
СтруктураБыстрогоОтбора = Новый Структура;
СтруктураБыстрогоОтбора.Вставить("Организация",Организация);
СтруктураБыстрогоОтбора.Вставить("Склад",Склад);
ПараметрыФормы.Вставить("СтруктураБыстрогоОтбора", СтруктураБыстрогоОтбора);
Если НавигационнаяСсылкаФорматированнойСтроки = "Документ.ДоверенностьВыданная.Форма.ФормаСпискаДокументов" Тогда
ПараметрыФормы.Вставить("ДоступностьРаспоряженийНаПолучениеДС", Истина);
ПараметрыФормы.Вставить("ДоступностьРаспоряженийТовары", Ложь);
ПараметрыФормы.Вставить("ЗаголовокФормы", НСтр("ru = 'Доверенности на получение денежных средств'"));
КонецЕсли;
ПараметрыФормы.Вставить("ВладелецОткрываемойФормы", ЭтотОбъект);
ПараметрыФормы.Вставить("УникальныйИдентификаторФормы", УникальныйИдентификатор);
ИнтеграцияСМаркетплейсамиКлиент.ДополнитьПараметрыФормы(ПараметрыФормы,
СписокДокументыПродажи.КомпоновщикНастроек.Настройки.ДополнительныеСвойства, НавигационнаяСсылкаФорматированнойСтроки);
ВладелецОткрываемойФормы = ПараметрыФормы.ВладелецОткрываемойФормы;
ПараметрыФормы.Удалить("ВладелецОткрываемойФормы");
ОткрытьФорму(НавигационнаяСсылкаФорматированнойСтроки, ПараметрыФормы, ВладелецОткрываемойФормы,
ПараметрыФормы.УникальныйИдентификаторФормы);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписокОформлено
&НаКлиенте
Процедура СписокДокументыПродажиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Элементы.ГруппаСоздатьГенерируемая.ПодчиненныеЭлементы.Количество() <> 0 Тогда
Если Копирование Тогда
ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элемент);
ИначеЕсли ОтборТипыДокументов.Количество() = 1 И ОтборХозяйственныеОперации.Количество() = 1 Тогда
ПодчиненныеЭлементыФормы = Элементы.ГруппаСоздатьГенерируемая.ПодчиненныеЭлементы[0];
СтруктураКоманды = Новый Структура("Имя", ПодчиненныеЭлементыФормы.Имя);
Подключаемый_СоздатьДокумент(СтруктураКоманды);
Иначе
Подключаемый_СоздатьДокументЧерезФормуВыбора(Неопределено);
КонецЕсли;
КонецЕсли;
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СписокДокументыПродажиПриАктивизацииСтроки(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(ВыбраннаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Действие недоступно для строки группировки списка!'"));
Возврат;
КонецЕсли;
Если Поле.Имя = "СостояниеОригиналаПервичногоДокумента" Или Поле.Имя = "СостояниеОригиналПолучен" Тогда
УчетОригиналовПервичныхДокументовКлиент.СписокВыбор(Поле.Имя,ЭтотОбъект,Элементы.СписокДокументыПродажи, СтандартнаяОбработка);
Возврат;
КонецЕсли;
Если ВыполнятьЗамерыПроизводительности Тогда
ИмяКлючевойОперацииОткрытияФормы = ПолучитьКлючевуюОперациюОткрытияФормыДокументаПоСсылке(Элемент.ТекущиеДанные.Ссылка);
Если Не ПустаяСтрока(ИмяКлючевойОперацииОткрытияФормы) Тогда
ОценкаПроизводительностиКлиент.ЗамерВремени(ИмяКлючевойОперацииОткрытияФормы);
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияУТКлиент.ИзменитьЭлемент(Элемент);
Если Поле = Элементы.ПредставлениеСостояния Тогда
ОбменСКонтрагентамиКлиент.СостояниеЭДОНажатие_ФормаСписка(Элемент.ТекущиеДанные.Ссылка, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокСкопировать(Команда)
ОбщегоНазначенияУТКлиент.СкопироватьЭлемент(Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаКлиенте
Процедура СписокИзменить(Команда)
ОбщегоНазначенияУТКлиент.ИзменитьЭлемент(Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаКлиенте
Процедура СписокОтменаПроведения(Команда)
ОбщегоНазначенияУТКлиент.ОтменаПроведения(Элементы.СписокДокументыПродажи, Заголовок,
РаботаСЖурналамиДокументовКлиент.ПараметрыОбновленияСпискаДокументов(ЭтотОбъект, "СписокДокументыПродажи"));
СписокОтменаПроведенияСервер();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура СписокПровести(Команда)
ОбщегоНазначенияУТКлиент.ПровестиДокументы(Элементы.СписокДокументыПродажи, Заголовок,
РаботаСЖурналамиДокументовКлиент.ПараметрыОбновленияСпискаДокументов(ЭтотОбъект, "СписокДокументыПродажи"));
СписокПровестиСервер();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура СписокУстановитьСнятьПометкуУдаления(Команда)
ОбщегоНазначенияУТКлиент.УстановитьПометкуУдаления(Элементы.СписокДокументыПродажи, Заголовок, Неопределено,
РаботаСЖурналамиДокументовКлиент.ПараметрыОбновленияСпискаДокументов(ЭтотОбъект, "СписокДокументыПродажи"));
СписокПометкаУдаленияСервер();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаКлиенте
Процедура СписокПередНачаломИзменения(Элемент, Отказ)
Отказ = Истина;
ОбщегоНазначенияУТКлиент.ИзменитьЭлемент(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура СписокПередУдалением(Элемент, Отказ)
Отказ = Истина;
ОбщегоНазначенияУТКлиент.УстановитьПометкуУдаления(Элемент, Заголовок);
СписокПометкаУдаленияСервер();
ПодключитьОбработчикОжиданияГиперссылкиКОформлению();
КонецПроцедуры
&НаСервереБезКонтекста
Процедура СписокДокументыПродажиПриПолученииДанныхНаСервере(ИмяЭлемента, Настройки, Строки)
УчетОригиналовПервичныхДокументов.ПриПолученииДанныхНаСервере(Строки);
СоответствиеТребованиямГИСМТ.ПриПолученииДанныхНаСервереДокумента(Строки);
КонецПроцедуры
&НаСервере
Процедура СписокДокументыПродажиПриОбновленииСоставаПользовательскихНастроекНаСервере(Элемент, СтандартнаяОбработка)
РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокДокументыПродажи");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.СписокДокументыПродажи, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(Команда, ЭтаФорма, Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЭДО(Команда)
ТекущиеДанные = Элементы.СписокДокументыПродажи.ТекущиеДанные;
ДоступныКомандыЭДО = Истина;
ЭтоКомандаТекущиеДелаЭДО = СтрНайти(Команда.Имя, "ТекущиеДелаЭДО");
ЭтоКомандаПроизвольныйДокумент = СтрНайти(Команда.Имя, "ПроизвольныйДокумент");
ЭтоКомандаОтправитьЧерезБизнесСеть = СтрНайти(Команда.Имя, "ОтправитьЧерезБизнесСеть");
Если Не ЭтоКомандаТекущиеДелаЭДО и Не ЭтоКомандаПроизвольныйДокумент Тогда
Если ТекущиеДанные <> Неопределено Тогда
ТекущийДокумент = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ТекущиеДанные, "Ссылка");
Если ЗначениеЗаполнено(ТекущийДокумент) Тогда
РезультатыПроверки = ЭлектронноеВзаимодействиеУТВызовСервера.ПроверитьНаличиеПараметровЭДПоИсточнику(ТекущийДокумент);
ДоступныКомандыЭДО = РезультатыПроверки.Получить("ЕстьЭДО");
Направление = РезультатыПроверки.Получить("Направление");
Если ЭтоКомандаОтправитьЧерезБизнесСеть И Направление = "Входящий" Тогда
ДоступныКомандыЭДО = Ложь;
КонецЕсли;
КонецЕсли;
Иначе
ДоступныКомандыЭДО = Ложь;
КонецЕсли;
КонецЕсли;
Если ДоступныКомандыЭДО Тогда
Если ТекущиеДанные <> Неопределено Тогда
Если ТекущиеДанные.Свойство("ХозяйственнаяОперация") Тогда
ДоступныКомандыЭДО =
(ТекущиеДанные.ХозяйственнаяОперация <>
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности"));
ИначеЕсли ТекущиеДанные.Свойство("Ссылка")
И (ТипЗнч(ТекущиеДанные.Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг")
Или ТипЗнч(ТекущиеДанные.Ссылка) = Тип("ДокументСсылка.КорректировкаРеализации")) Тогда
ХозяйственнаяОперация =
ОбщегоНазначенияУТВызовСервера.ЗначениеРеквизитаОбъекта(ТекущиеДанные.Ссылка, "ХозяйственнаяОперация");
ДоступныКомандыЭДО =
(ХозяйственнаяОперация <>
ПредопределенноеЗначение("Перечисление.ХозяйственныеОперации.ПереходПраваСобственности"));
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Не ДоступныКомандыЭДО Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Для данного типа документов отправка/получение по ЭДО не предусмотрено.'"));
Возврат;
КонецЕсли;
ЭлектронноеВзаимодействиеКлиент.ВыполнитьПодключаемуюКомандуЭДО(Команда, ЭтаФорма, Элементы.СписокДокументыПродажи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработчикОжиданияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОжиданияЭДО(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьВидимостьСостоянияЭДО()
ОбменСКонтрагентамиКлиент.ОбработчикОбновленияВидимостьСостоянияЭДО(ЭтотОбъект, Элементы.ПредставлениеСостояния);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодсказкиБизнесСетьНажатие(Команда)
ТорговыеПредложенияКлиент.ОткрытьФормуПодсказок(ЭтаФорма);
КонецПроцедуры
#Область КнопкаСоздать
&НаКлиенте
Процедура Подключаемый_СоздатьДокумент(Команда)
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация",Организация);
СтруктураОтбора.Вставить("Склад",Склад);
ОбщегоНазначенияУТКлиент.СоздатьДокументЧерезКоманду(Команда.Имя, СтруктураОтбора);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СоздатьДокументЧерезФормуВыбора(Команда)
КлючФормы = КлючНазначенияФормыПоУмолчанию();
АдресХозяйственныеОперацииИДокументы = ПоместитьВоВременноеХранилищеХозяйственныеОперацииИДокументы();
СтруктураОтбора = Новый Структура;
СтруктураОтбора.Вставить("Организация",Организация);
СтруктураОтбора.Вставить("Склад",Склад);
ОбщегоНазначенияУТКлиент.СоздатьДокументЧерезФормуВыбора(АдресХозяйственныеОперацииИДокументы,
КлючФормы, КлючНазначенияИспользования, СтруктураОтбора);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура УстановитьИнтервал(Команда)
Оповещение = Новый ОписаниеОповещения("УстановитьИнтервалЗавершение", ЭтотОбъект);
ОбщегоНазначенияУтКлиент.РедактироватьПериод(Период, , Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьИнтервалЗавершение(ВыбранноеЗначение, ДополнительныеПараметры) Экспорт
Если ВыбранноеЗначение = Неопределено Тогда
Возврат;
КонецЕсли;
Период = ВыбранноеЗначение;
УстановитьОтборПоПериоду();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_УстановитьСтатус(Команда)
ОбщегоНазначенияУТКлиент.УстановитьСтатус(Команда.Имя, СоответствиеКомандСтатусам, Элементы.СписокДокументыПродажи,
РаботаСЖурналамиДокументовКлиент.ПараметрыОбновленияСпискаДокументов(ЭтотОбъект,
"СписокДокументыПродажи"));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКомандыСостоянияОригинала()
ОбновитьКомандыСостоянияОригинала()
КонецПроцедуры
&НаСервере
Процедура ОбновитьКомандыСостоянияОригинала()
Если КлючНазначенияИспользования = КлючНазначенияФормыПоУмолчанию() Тогда
КлючНастроек = "";
Иначе
КлючНастроек = КлючНазначенияИспользования;
КонецЕсли;
ТЗХозОперацииИТипыДокументов = ОбщегоНазначенияУТ.ДоступныеХозяйственныеОперацииИДокументы(ОписаниеОперацийИТиповДокументов(),
ОтборХозяйственныеОперации, ОтборТипыДокументов, КлючНастроек);
ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамХранителю = ПолучитьФункциональнуюОпцию(
"ИспользоватьАктыРасхожденийПослеОтгрузки");
ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямТоваровОтХранителя = ПолучитьФункциональнуюОпцию(
"ИспользоватьАктыРасхожденийПослеПриемки");
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеОтгрузки") Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента",Метаданные.Документы.АктОРасхожденияхПослеОтгрузки.ПолноеИмя()));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
Если СтрокаКУдалению.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи Тогда
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не ИспользоватьАктыРасхожденийПослеОтгрузкиПоПередачамХранителю Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента, ХозяйственнаяОперация",
Метаданные.Документы.АктОРасхожденияхПослеОтгрузки.ПолноеИмя(),
Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЦикла;
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьАктыРасхожденийПослеПриемки") Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента",
Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя()));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
Если СтрокаКУдалению.ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ВозвратОтХранителя Тогда
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не ИспользоватьАктыРасхожденийПослеПриемкиПоПоступлениямТоваровОтХранителя Тогда
СтрокиКУдалению = ТЗХозОперацииИТипыДокументов.НайтиСтроки(Новый Структура("ПолноеИмяДокумента, ХозяйственнаяОперация",
Метаданные.Документы.АктОРасхожденияхПослеПриемки.ПолноеИмя(),
Перечисления.ХозяйственныеОперации.ВозвратОтХранителя));
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЦикла;
КонецЕсли;
ИспользуемыеТипыДокументов = ТЗХозОперацииИТипыДокументов.ВыгрузитьКолонку("ТипДокумента");
Если ЗначениеЗаполнено(ИспользуемыеТипыДокументов) Тогда
ИспользуемыеТипыДокументов.Добавить(Тип("ДокументСсылка.Сторно"));
ПараметрыРазмещения = ПодключаемыеКоманды.ПараметрыРазмещения();
ПараметрыРазмещения.Источники = Новый ОписаниеТипов(ИспользуемыеТипыДокументов);
ПараметрыРазмещения.КоманднаяПанель = Элементы.СписокДокументыПродажиКоманднаяПанель;
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыРазмещения);
КонецЕсли;
УстановитьСоответствиеТиповДокументовИФорм(ТЗХозОперацииИТипыДокументов);
КонецПроцедуры
&НаКлиенте
Процедура СписокДокументыПродажиОбновить(Команда)
ОбновитьДанныеСпискаДокументовСЗамеромВремени("СписокДокументыПродажи");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ШтрихкодыИТорговоеОборудование
&НаСервере
Функция ДанныеПоШтрихКодуПечатнойФормы(Штрихкод, ИмяСписка = "")
ЕстьОсновнаяТаблицаСписка = РаботаСЖурналамиДокументов.ЕстьОсновнаяТаблицаСписка(ЭтотОбъект, ИмяСписка);
ДанныеПоШтрихКоду = ОбщегоНазначенияУТ.ДанныеПоШтрихКодуПечатнойФормы(Штрихкод, ХозяйственныеОперацииИДокументы.Выгрузить(), ЕстьОсновнаяТаблицаСписка);
Возврат ДанныеПоШтрихКоду;
КонецФункции
&НаКлиенте
Процедура ОбработатьШтрихкоды(Данные)
Если Не ШтрихкодированиеНоменклатурыКлиент.ШтрихкодыВалидны(Данные) Тогда
Возврат;
КонецЕсли;
Состояние(НСтр("ru = 'Выполняется поиск документа по штрихкоду...'"));
ДанныеПоШтрихКоду = ДанныеПоШтрихКодуПечатнойФормы(Данные.Штрихкод, "СписокДокументыПродажи");
ОбщегоНазначенияУТКлиент.ОбработатьШтрихкоды(Данные.Штрихкод, ДанныеПоШтрихКоду, ЭтаФорма, "СписокДокументыПродажи");
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура СписокПометкаУдаленияСервер()
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
ОбновитьГиперссылкуКОформлению();
КонецПроцедуры
&НаСервере
Процедура СписокОтменаПроведенияСервер()
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
ОбновитьГиперссылкуКОформлению();
КонецПроцедуры
&НаСервере
Процедура СписокПровестиСервер()
ОбеспечениеВДокументахСервер.ПроверитьЗапуститьФоновоеЗаданиеРаспределенияЗапасов();
ОбновитьГиперссылкуКОформлению();
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
СтандартныеПодсистемыСервер.УстановитьУсловноеОформлениеПоляДата(ЭтотОбъект, "СписокДокументыПродажи.Дата", "СписокДокументыПродажиДата");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция КлючНазначенияФормыПоУмолчанию()
Возврат "ДокументыПродажи";
КонецФункции
&НаСервере
Процедура ВосстановитьНастройки(Параметры)
СписокДокументыПродажиРежимАвтообновления = Истина;
Если Параметры.Свойство("СтруктураБыстрогоОтбора") Тогда
СтруктураБыстрогоОтбора = Параметры.СтруктураБыстрогоОтбора;
СтруктураБыстрогоОтбора.Свойство("Организация",Организация);
СтруктураБыстрогоОтбора.Свойство("Склад",Склад);
СтруктураБыстрогоОтбора.Свойство("Менеджер",Менеджер);
СтруктураБыстрогоОтбора.Свойство("Период",Период);
ИспользоватьЗагрузкуНастроек = Параметры.ИспользоватьЗагрузкуСохраненныхНастроек;
ЗаполнитьБыстрыйОтборИзНастроек = Ложь;
Иначе
ИспользоватьЗагрузкуНастроек = Истина;
ЗаполнитьБыстрыйОтборИзНастроек = Истина;
КонецЕсли;
Если ИспользоватьЗагрузкуНастроек Тогда
Настройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("Обработка.ЖурналДокументовПродажи.Форма.ФормаСписка", КлючНазначенияИспользования);
Если ТипЗнч(Настройки) = Тип("Структура") Тогда
Если ЗаполнитьБыстрыйОтборИзНастроек Тогда
Склад = Настройки.Склад;
Менеджер = Настройки.Менеджер;
Период = Настройки.Период;
Организация = Настройки.Организация;
КонецЕсли;
ОтборТипыДокументов = Настройки.ОтборТипыДокументов;
ОтборХозяйственныеОперации = Настройки.ОтборХозяйственныеОперации;
Если Настройки.Свойство("СписокДокументыПродажиРежимАвтообновления") Тогда
СписокДокументыПродажиРежимАвтообновления = Настройки.СписокДокументыПродажиРежимАвтообновления;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СохранитьНастройки()
ИменаСохраняемыхРеквизитов =
"Склад,
|ОтборХозяйственныеОперации,
|ОтборТипыДокументов,
|Менеджер,
|Период,
|Организация,
|СписокДокументыПродажиРежимАвтообновления";
Настройки = Новый Структура(ИменаСохраняемыхРеквизитов);
ЗаполнитьЗначенияСвойств(Настройки, ЭтаФорма);
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("Обработка.ЖурналДокументовПродажи.Форма.ФормаСписка", КлючНазначенияИспользования, Настройки);
КонецПроцедуры
&НаСервере
Процедура СкладПриИзмененииСервер()
УстановитьОтборыДинамическихСписков();
ОбновитьГиперссылкуКОформлениюНаСервере();
КонецПроцедуры
&НаСервере
Функция ТекстЗапросаСписокДокументыПродажи()
ТекстЗапроса =
"ВЫБРАТЬ
| РеестрДокументов.Ссылка КАК Ссылка,
| РеестрДокументов.НомерДокументаИБ КАК Номер,
| РеестрДокументов.ДатаДокументаИБ КАК Дата,
| РеестрДокументов.Статус КАК Статус,
| РеестрДокументов.Проведен КАК Проведен,
| РеестрДокументов.ПометкаУдаления КАК ПометкаУдаления,
| РеестрДокументов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РеестрДокументов.Партнер КАК Партнер,
| ВЫРАЗИТЬ(РеестрДокументов.Контрагент.Ключ КАК Справочник.Контрагенты) КАК Контрагент,
| РеестрДокументов.Контрагент КАК КонтрагентКлюч,
| РеестрДокументов.Договор КАК Договор,
| РеестрДокументов.Организация КАК Организация,
| РеестрДокументов.Подразделение КАК Подразделение,
| РеестрДокументов.МестоХранения КАК МестоХранения,
| ВЫРАЗИТЬ(РеестрДокументов.МестоХранения.Ключ КАК Справочник.Склады) КАК Склад,
| РеестрДокументов.Валюта КАК Валюта,
| РеестрДокументов.Сумма КАК СуммаДокумента,
| РеестрДокументов.Ответственный КАК Менеджер,
| РеестрДокументов.Автор КАК Автор,
| РеестрДокументов.Комментарий КАК Комментарий,
| РеестрДокументов.НомерПервичногоДокумента КАК НомерВходящегоДокумента,
| РеестрДокументов.ДатаПервичногоДокумента КАК ДатаВходящегоДокумента,
| РеестрДокументов.Дополнительно КАК Дополнительно,
| СостоянияЭД.СостояниеЭДО КАК СостояниеВерсииЭД,
| СостоянияЭД.ПредставлениеСостояния КАК ПредставлениеСостояния,
| ВЫБОР
| КОГДА ДокументыСОшибкамиПроверкиКонтрагентов.Документ ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК ЕстьОшибкиПроверкиКонтрагентов,
| ВЫБОР
| КОГДА РеестрДокументов.Проведен
| ТОГДА 0
| КОГДА РеестрДокументов.ПометкаУдаления
| ТОГДА 1
| ИНАЧЕ 2
| КОНЕЦ КАК НестандартнаяКартинка,
| РеестрДокументов.ДополнительнаяЗапись КАК ДополнительнаяЗапись,
| РеестрДокументов.ТипСсылки КАК ТипСсылки,
| &СтатусПроверки КАК СтатусПроверки,
| &ИндикаторПроверки КАК ИндикаторПроверки,
| ТИПЗНАЧЕНИЯ(РеестрДокументов.Ссылка) КАК ТипЗначения,
| NULL КАК СостояниеОригиналаПервичногоДокумента,
| ИСТИНА КАК ОбщееСостояние,
| 0 КАК СостояниеОригиналПолучен,
| РеестрДокументов.СторноИсправление КАК СторноИсправление,
| РеестрДокументов.ИдентификаторЗаписи КАК ИдентификаторЗаписи,
| ВЫБОР
| КОГДА НЕ РеестрДокументов.СторноИсправление
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ РеестрДокументов.СторнируемыйДокумент
| КОНЕЦ КАК СторнируемыйИсправляемыйДокумент,
| ВЫРАЗИТЬ("""" КАК Строка(50)) КАК СостояниеГИСМТ
|ИЗ
| РегистрСведений.РеестрДокументов КАК РеестрДокументов
| {
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияЭД
| ПО (СостоянияЭД.СсылкаНаОбъект = РеестрДокументов.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыСОшибкамиПроверкиКонтрагентов КАК ДокументыСОшибкамиПроверкиКонтрагентов
| ПО РеестрДокументов.Ссылка = ДокументыСОшибкамиПроверкиКонтрагентов.Документ
| И (&ИспользованиеПроверкиВозможно)}
|{ГДЕ
| РеестрДокументов.Ссылка.* КАК Ссылка,
| РеестрДокументов.МестоХранения.* КАК МестоХранения,
| (ВЫРАЗИТЬ(РеестрДокументов.МестоХранения.Ключ КАК Справочник.Склады)).* КАК Склад,
| РеестрДокументов.Организация.* КАК Организация,
| РеестрДокументов.ДатаДокументаИБ КАК Дата,
| РеестрДокументов.НомерДокументаИБ КАК Номер,
| РеестрДокументов.Статус КАК Статус,
| РеестрДокументов.ТипСсылки КАК ТипСсылки,
| РеестрДокументов.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
| РеестрДокументов.Партнер.* КАК Партнер,
| (ВЫРАЗИТЬ(РеестрДокументов.Контрагент.Ключ КАК Справочник.Контрагенты)).* КАК Контрагент,
| РеестрДокументов.Договор.* КАК Договор,
| РеестрДокументов.Подразделение.* КАК Подразделение,
| РеестрДокументов.Ответственный.* КАК Менеджер,
| РеестрДокументов.Автор.* КАК Автор,
| РеестрДокументов.Дополнительно КАК Дополнительно,
| РеестрДокументов.Комментарий КАК Комментарий,
| РеестрДокументов.Проведен КАК Проведен,
| РеестрДокументов.ПометкаУдаления КАК ПометкаУдаления,
| ((РеестрДокументов.ДатаДокументаИБ >= &НачалоПериода
| ИЛИ &НачалоПериода = ДАТАВРЕМЯ(1, 1, 1))
| И (РеестрДокументов.ДатаДокументаИБ <= &КонецПериода
| ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1)))}";
Возврат ТекстЗапроса;
КонецФункции
&НаСервере
Функция ОписаниеОперацийИТиповДокументов()
ТЗХозОперацииИТипыДокументов = ХозяйственныеОперацииИДокументы.Выгрузить();
ТЗХозОперацииИТипыДокументов.Очистить();
ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0 =
ПолучитьФункциональнуюОпцию("ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0");
СтрокаРеализацияТоваровУслуг = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаРеализацияТоваровУслуг;
Строка.КлючНазначенияИспользования = "Накладные";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.РеализацияТоваровУслуг");
Строка.ПолноеИмяДокумента = "Документ.РеализацияТоваровУслуг";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Истина;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет;
Если НЕ ПолучитьФункциональнуюОпциюФормы("ТолькоКомиссионныеПродажи25")
И ПолучитьФункциональнуюОпциюФормы("ИспользоватьСоглашенияСКлиентами") Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию;
КонецЕсли;
Если ПолучитьФункциональнуюОпцию("ИспользоватьКомиссиюПриПродажах") Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера;
Если ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0 Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности;
КонецЕсли;
КонецЕсли;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияТоваровУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
Строка.КлючНазначенияИспользования = "Накладные";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.АктВыполненныхРабот");
Строка.ПолноеИмяДокумента = "Документ.АктВыполненныхРабот";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
СтрокаАктОРасхожденияхПослеОтгрузки = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаАктОРасхожденияхПослеОтгрузки;
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.АктОРасхожденияхПослеОтгрузки");
Строка.ПолноеИмяДокумента = "Документ.АктОРасхожденияхПослеОтгрузки";
Строка.ДокументПредставление = НСтр("ru = 'Акт о расхождениях после отгрузки'");
Строка.ИспользуютсяСтатусы = Истина;
Строка.КлючНазначенияИспользования = "АктыОРасхожденияхПослеОтгрузки";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (расхождения)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаАктОРасхожденияхПослеОтгрузки);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
СтрокаАктОРасхожденияхПослеПоступления = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаАктОРасхожденияхПослеПоступления;
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.АктОРасхожденияхПослеПриемки");
Строка.ПолноеИмяДокумента = "Документ.АктОРасхожденияхПослеПриемки";
Строка.ДокументПредставление = НСтр("ru = 'Акт о расхождениях после приемки'");
Строка.ИспользуютсяСтатусы = Истина;
Строка.КлючНазначенияИспользования = "АктОРасхожденияхПослеПриемки";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (расхождения)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка, СтрокаАктОРасхожденияхПослеПоступления);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка, СтрокаАктОРасхожденияхПослеПоступления);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтХранителя;
СтрокаКорректировкаРеализации = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаКорректировкаРеализации;
Строка.КлючНазначенияИспользования = "КорректировкиРеализаций";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ИсправлениеОшибок;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.КорректировкаРеализации");
Строка.ПолноеИмяДокумента = "Документ.КорректировкаРеализации";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (корректировки)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаПоСогласованиюСторон;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияПерепоставленногоТовара;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратНедопоставленногоТовара;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
Строка.ДобавитьКнопкуСоздать = Ложь;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиентуРеглУчет;
Строка.ДобавитьКнопкуСоздать = Ложь;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию;
Строка.ДобавитьКнопкуСоздать = Ложь;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности;
Строка.ДобавитьКнопкуСоздать = Ложь;
Если ПолучитьФункциональнуюОпцию("ИспользоватьКомиссиюПриПродажах") Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера;
Строка.ДобавитьКнопкуСоздать = Ложь;
Если ИспользоватьОтгрузкуБезПереходаПраваСобственности2_0 Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионераБезПереходаПраваСобственности;
Строка.ДобавитьКнопкуСоздать = Ложь;
КонецЕсли;
КонецЕсли;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаРеализацииУвеличениеЗадолженностиСводно;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаРеализацииУменьшениеЗадолженностиСводно;
Если ПолучитьФункциональнуюОпцию("НоваяАрхитектураВзаиморасчетов") Тогда
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.КорректировкаДоВводаОстатков;
КонецЕсли;
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаКорректировкаРеализации);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПереходПраваСобственности;
СтрокаРеализацияУслуг = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаРеализацияУслуг;
Строка.КлючНазначенияИспользования = "РеализацииУслугПрочихАктивов";
Строка.ИспользуютсяСтатусы = Истина;
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.РеализацияУслугПрочихАктивов");
Строка.ПолноеИмяДокумента = "Документ.РеализацияУслугПрочихАктивов";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаРеализацияУслуг);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности;
СтрокаОтчетКомитентуОЗакупках = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОтчетКомитентуОЗакупках;
Строка.КлючНазначенияИспользования = "ПоставкаПодПринципала";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтчетКомитентуОЗакупках");
Строка.ПолноеИмяДокумента = "Документ.ОтчетКомитентуОЗакупках";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (отчеты комитентам о закупке)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Документ.ОтчетКомитентуОЗакупках";
СтрокаОтгрузкаПринципалу = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОтгрузкаПринципалу;
Строка.КлючНазначенияИспользования = "ПоставкаПодПринципала";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтгрузкаТоваровСХранения");
Строка.ПолноеИмяДокумента = "Документ.ОтгрузкаТоваровСХранения";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы отгрузки (отгрузки комитентам о закупках)'");
#Область ТоварыУХранителя
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ВыкупыТоваровХранителем";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВыкупТоваровХранителем;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ВыкупТоваровХранителем");
Строка.ПолноеИмяДокумента = "Документ.ВыкупТоваровХранителем";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (выкупы хранителем)'");
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПередачаТоваровХранителю";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаХранениеСПравомПродажи;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПередачаТоваровХранителю");
Строка.ПолноеИмяДокумента = "Документ.ПередачаТоваровХранителю";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (передачи на хранение)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПередачаТоваровХранителю";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаНаКомиссию;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПередачаТоваровХранителю");
Строка.ПолноеИмяДокумента = "Документ.ПередачаТоваровХранителю";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (передачи на комиссию)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПоступлениеТоваровОтХранителя";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтХранителя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПоступлениеТоваровОтХранителя");
Строка.ПолноеИмяДокумента = "Документ.ПоступлениеТоваровОтХранителя";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (поступления от хранителя)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПоступлениеТоваровОтХранителя";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПоступлениеТоваровОтХранителя");
Строка.ПолноеИмяДокумента = "Документ.ПоступлениеТоваровОтХранителя";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (возврат от комиссионера)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
СтрокаОтчетОСписанииТоваров = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОтчетОСписанииТоваров;
Строка.КлючНазначенияИспользования = "СписаниеОтгруженныхТоваров";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СписаниеНедостачЗаСчетПоклажедателя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.СписаниеОтгруженныхТоваров");
Строка.ПолноеИмяДокумента = "Документ.СписаниеОтгруженныхТоваров";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (списания у хранителя)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаОтчетОСписанииТоваров);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СписаниеОтгруженныхТоваров;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "СписаниеОтгруженныхТоваров";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.СписаниеНедостачЗаСчетКомитента;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.СписаниеОтгруженныхТоваров");
Строка.ПолноеИмяДокумента = "Документ.СписаниеОтгруженныхТоваров";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (списания у комиссионера)'");
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПересортицаТоваровУХранителя";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПересортицаТоваровУХранителя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПересортицаТоваровУХранителя");
Строка.ПолноеИмяДокумента = "Документ.ПересортицаТоваровУХранителя";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (пересортица у хранителя)'");
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПорчаТоваровУХранителя";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПорчаТоваровУХранителя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПорчаТоваровУХранителя");
Строка.ПолноеИмяДокумента = "Документ.ПорчаТоваровУХранителя";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (порча у хранителя)'");
СтрокаОприходованиеИзлишков = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОприходованиеИзлишков;
Строка.КлючНазначенияИспользования = "ОприходованиеИзлишковОтгруженныхТоваров";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеИзлишковТоваровВПользуПоклажедателя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОприходованиеИзлишковОтгруженныхТоваров");
Строка.ПолноеИмяДокумента = "Документ.ОприходованиеИзлишковОтгруженныхТоваров";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (оприходование излишков у хранителя)'");
Строка = ТЗХозОперацииИТипыДокументов.Добавить();
ЗаполнитьЗначенияСвойств(Строка,СтрокаОприходованиеИзлишков);
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеИзлишковОтгруженныхТоваров;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ОприходованиеИзлишковОтгруженныхТоваров";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОприходованиеИзлишковТоваровВПользуКомитента;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОприходованиеИзлишковОтгруженныхТоваров");
Строка.ПолноеИмяДокумента = "Документ.ОприходованиеИзлишковОтгруженныхТоваров";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (оприходование излишков у комиссионера)'");
#КонецОбласти
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ВозвратТоваровОтКлиента";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровОтКлиента;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ВозвратТоваровОтКлиента");
Строка.ПолноеИмяДокумента = "Документ.ВозвратТоваровОтКлиента";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ВозвратОтКомиссионера";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтКомиссионера;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ВозвратТоваровОтКлиента");
Строка.ПолноеИмяДокумента = "Документ.ВозвратТоваровОтКлиента";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ВозвратОтРозничногоПокупателя";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ВозвратТоваровОтКлиента");
Строка.ПолноеИмяДокумента = "Документ.ВозвратТоваровОтКлиента";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ВозвратТоваровЧерезКомиссионера";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратТоваровЧерезКомиссионера;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ВозвратТоваровОтКлиента");
Строка.ПолноеИмяДокумента = "Документ.ВозвратТоваровОтКлиента";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "Накладные";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияЧерезКомиссионера;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтчетКомиссионера");
Строка.ПолноеИмяДокумента = "Документ.ОтчетКомиссионера";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Отчет комиссионера'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовОтчетыКомиссионеров";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ОтчетОРозничныхПродажах";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияВРозницу;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтчетОРозничныхПродажах");
Строка.ПолноеИмяДокумента = "Документ.ОтчетОРозничныхПродажах";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (розничный покупатель)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ОтчетОРозничныхВозвратах";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ВозвратОтРозничногоПокупателя;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтчетОРозничныхВозвратах");
Строка.ПолноеИмяДокумента = "Документ.ОтчетОРозничныхВозвратах";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (розничный покупатель)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ОтгрузкаТоваровКлиенту";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ОтгрузкаТоваровКлиенту;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ОтгрузкаТоваровКлиенту");
Строка.ПолноеИмяДокумента = "Документ.ОтгрузкаТоваровКлиенту";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (отгрузка товаров клиенту)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
СтрокаОперацииИТипа = ТЗХозОперацииИТипыДокументов.Добавить();
Строка = СтрокаОперацииИТипа;
Строка.КлючНазначенияИспользования = "ПоступлениеТоваровОтКлиента";
Строка.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПоступлениеТоваровОтКлиента;
Строка.ДобавитьКнопкуСоздать = Истина;
Строка.ТипДокумента = Тип("ДокументСсылка.ПоступлениеТоваровОтКлиента");
Строка.ПолноеИмяДокумента = "Документ.ПоступлениеТоваровОтКлиента";
Строка.ЗаголовокРабочегоМеста = НСтр("ru = 'Документы продажи (накладные)'");
Строка.МенеджерРасчетаГиперссылкиКОформлению = "Обработка.ЖурналДокументовПродажи";
Строка.ИспользуютсяСтатусы = Ложь;
УчетНДСУП.ОписаниеОперацийИТиповДокументовДляЖурналаДокументовПродажи(ТЗХозОперацииИТипыДокументов);
ОписаниеОперацийИТиповДокументовПоПараметруОткрытияФормы(ТЗХозОперацииИТипыДокументов);
Возврат ТЗХозОперацииИТипыДокументов;
КонецФункции
&НаСервере
Процедура НастроитьФормуПоВыбраннымОперациямИДокументам(ТЗХозОперацииИТипыДокументов)
ДанныеРабочегоМеста = ОбщегоНазначенияУТ.ДанныеРабочегоМеста(ТЗХозОперацииИТипыДокументов,
КлючНазначенияФормыПоУмолчанию(), ЗаголовокФормы);
Заголовок = ДанныеРабочегоМеста.ЗаголовокРабочегоМеста;
ТекущийКлюч = ДанныеРабочегоМеста.КлючНазначенияИспользования;
СвойстваСписка = ОбщегоНазначения.СтруктураСвойствДинамическогоСписка();
ЗаполнитьЗначенияСвойств(СвойстваСписка, СписокДокументыПродажи);
СвойстваСписка.ТекстЗапроса = ТекстЗапросаСписокДокументыПродажи();
ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка(Элементы.СписокДокументыПродажи, СвойстваСписка);
УстановитьОтборыДинамическихСписков(ТекущийКлюч);
УстановитьВидимостьДоступность(ТекущийКлюч);
ОбщегоНазначенияУТ.ЗаменитьПолеСсылкаКонструкциейВыразитьПоТипамДокументов(Элементы.СписокДокументыПродажи,
ХозяйственныеОперацииИДокументы);
ОбщегоНазначенияУТ.СформироватьНадписьОтбор(Элементы.ИнформационнаяНадписьОтбор.Заголовок,
ХозяйственныеОперацииИДокументы, ОтборТипыДокументов, ОтборХозяйственныеОперации);
НастроитьКнопкиУправленияДокументами();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступность(ТекущийКлюч)
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций") Тогда
Элементы.Организация.Видимость = Ложь;
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоСкладов") Тогда
Элементы.СписокДокументыПродажиСклад.Видимость = Ложь;
Элементы.Склад.Видимость = Ложь;
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоВалют") Тогда
Элементы.СписокДокументыПродажиВалюта.Видимость = Ложь;
КонецЕсли;
Элементы.СписокДокументыПродажиДоговор.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьДоговорыСКлиентами");
Элементы.СписокДокументыПродажиКонтрагент.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровИКонтрагентов");
ОбщегоНазначенияУТ.УстановитьСписокСтатусов(ЭтаФорма, Элементы.УстановитьСтатус);
Элементы.СписокГруппаЗагрузитьИзСкана.Видимость = ПолучитьФункциональнуюОпцию("НеБазоваяВерсия");
КонецПроцедуры
&НаСервере
Процедура НастроитьКнопкиУправленияДокументами()
СтруктураПараметров = ОбщегоНазначенияУТ.СтруктураПараметровНастройкиКнопокУправленияДокументами();
СтруктураПараметров.Форма = ЭтаФорма;
СтруктураПараметров.ИмяКнопкиСкопировать = "СписокСкопировать";
СтруктураПараметров.ИмяКнопкиСкопироватьКонтекстноеМеню = "СписокКонтекстноеМенюСкопировать";
СтруктураПараметров.ИмяКнопкиИзменить = "СписокИзменить";
СтруктураПараметров.ИмяКнопкиИзменитьКонтекстноеМеню = "СписокКонтекстноеМенюИзменить";
СтруктураПараметров.ИмяКнопкиПровести = "СписокПровести";
СтруктураПараметров.ИмяКнопкиПровестиКонтекстноеМеню = "СписокКонтекстноеМенюПровести";
СтруктураПараметров.ИмяКнопкиОтменаПроведения = "СписокОтменаПроведения";
СтруктураПараметров.ИмяКнопкиОтменаПроведенияКонтекстноеМеню = "СписокКонтекстноеМенюОтменаПроведения";
СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаления = "СписокУстановитьПометкуУдаления";
СтруктураПараметров.ИмяКнопкиУстановитьПометкуУдаленияКонтекстноеМеню = "СписокКонтекстноеМенюУстановитьПометкуУдаления";
ОбщегоНазначенияУТ.НастроитьКнопкиУправленияДокументами(СтруктураПараметров);
КонецПроцедуры
&НаСервере
Функция ПоместитьВоВременноеХранилищеХозяйственныеОперацииИДокументы()
Возврат ПоместитьВоВременноеХранилище(ХозяйственныеОперацииИДокументы.Выгрузить(), УникальныйИдентификатор);
КонецФункции
&НаСервере
Процедура ОтборОперацияТипОбработкаВыбораСервер(АдресХозяйственныхОперацийИДокументов)
ТЗХозОперацииИТипыДокументов = ПолучитьИзВременногоХранилища(АдресХозяйственныхОперацийИДокументов);
ХозяйственныеОперацииИДокументы.Загрузить(ТЗХозОперацииИТипыДокументов);
ОбщегоНазначенияУТ.ЗаполнитьОтборыПоТаблицеХозОперацийИТиповДокументов(ТЗХозОперацииИТипыДокументов, ОтборХозяйственныеОперации, ОтборТипыДокументов);
УстановитьСоответствиеТиповДокументовИФорм(ТЗХозОперацииИТипыДокументов);
НастроитьФормуПоВыбраннымОперациямИДокументам(ТЗХозОперацииИТипыДокументов);
КонецПроцедуры
#Область Отборы
&НаСервере
Процедура УстановитьОтборыДинамическихСписков(ТекущийКлюч = Неопределено)
ОтборСклады = СкладыСервер.СписокПодчиненныхСкладов(Склад);
ОтборМестаХранения = Справочники.КлючиРеестраДокументов.КлючиПоЗначениям(ОтборСклады);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
СписокДокументыПродажи,
"ТипСсылки",
ОтборТипыДокументов,
ВидСравненияКомпоновкиДанных.ВСписке,
,
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
СписокДокументыПродажи,
"ХозяйственнаяОперация",
ОтборХозяйственныеОперации,
ВидСравненияКомпоновкиДанных.ВСписке,
,
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(СписокДокументыПродажи,
"МестоХранения",
ОтборМестаХранения,
ВидСравненияКомпоновкиДанных.ВСписке,
,
ЗначениеЗаполнено(ОтборМестаХранения));
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
СписокДокументыПродажи,
"Менеджер",
Менеджер,
ВидСравненияКомпоновкиДанных.Равно,
,
ЗначениеЗаполнено(Менеджер));
УстановитьОтборПоОрганизации();
УстановитьОтборПоПериоду();
КонецПроцедуры
&НаСервере
Процедура УстановитьОтборПоОрганизации()
СписокОрганизаций = Новый СписокЗначений;
СписокОрганизаций.Добавить(Организация);
Если ЗначениеЗаполнено(Организация)
И ПолучитьФункциональнуюОпцию("ИспользоватьОбособленныеПодразделенияВыделенныеНаБаланс") Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Организации.Ссылка
|ИЗ
| Справочник.Организации КАК Организации
|ГДЕ
| Организации.ОбособленноеПодразделение
| И Организации.ГоловнаяОрганизация = &Организация
| И Организации.ДопускаютсяВзаиморасчетыЧерезГоловнуюОрганизацию");
Запрос.УстановитьПараметр("Организация", Организация);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
СписокОрганизаций.Добавить(Выборка.Ссылка);
КонецЦикла;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
СписокДокументыПродажи,
"Организация",
СписокОрганизаций,
ВидСравненияКомпоновкиДанных.ВСписке,
,
ЗначениеЗаполнено(Организация));
ОбновитьГиперссылкуКОформлениюНаСервере();
РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокДокументыПродажи");
КонецПроцедуры
&НаСервере
Процедура УстановитьОтборПоПериоду()
СписокДокументыПродажи.Параметры.УстановитьЗначениеПараметра("НачалоПериода",
Период.ДатаНачала);
СписокДокументыПродажи.Параметры.УстановитьЗначениеПараметра("КонецПериода",
?(ЗначениеЗаполнено(Период.ДатаОкончания), Период.ДатаОкончания, КонецДня(Дата(3999, 12, 31))));
РаботаСЖурналамиДокументов.УстановитьВидимостьГруппыНастройкиОбновленияПоУмолчанию(ЭтотОбъект, "СписокДокументыПродажи");
КонецПроцедуры
#КонецОбласти
#Область ГиперссылкаКОформлению
&НаСервере
Функция ОбновитьГиперссылкуКОформлениюНаСервере()
ОбновитьГиперссылкуКОформлению();
КонецФункции
&НаСервере
Процедура ОбновитьГиперссылкуКОформлению()
ПараметрыФормирования = Новый Структура;
ПараметрыФормирования.Вставить("Склад", ЭтаФорма.Склад);
ПараметрыФормирования.Вставить("Организация", ЭтаФорма.Организация);
ПараметрыФормирования.Вставить("ТипДоверенности", ПредопределенноеЗначение("Перечисление.ТипыВыданныхДоверенностей.НаПолучениеДС"));
ПараметрыФормирования.Вставить("ПеревыставлениеКомитентам", Истина);
Элементы.КОформлению.Видимость = Истина;
ТекстИдетОбновлениеДанных = НСтр("ru = '<идет обновление данных>'");
Элементы.КОформлению.Заголовок = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
Элементы.СмТакжеВРаботе.Видимость = Истина;
ТекстИдетОбновлениеДанных = НСтр("ru = 'См. также: <идет обновление данных>'");
СмТакжеВРаботе = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(ХозяйственныеОперацииИДокументы.Выгрузить());
ПараметрыЗадания.Добавить(ПараметрыФормирования);
ПроцедураРасчета = "Обработки.ЖурналДокументовПродажи.СформироватьГиперссылкуКОформлениюФоновоеЗадание";
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
РезультатРасчета = ДлительныеОперации.ВыполнитьВФоне(ПроцедураРасчета,
ПараметрыЗадания,
ПараметрыВыполнения);
Если РезультатРасчета.Статус = "Выполнено" Тогда
ОбновитьГиперссылкуКОформлениюЗавершение(
РезультатРасчета.АдресРезультата,
Элементы.КОформлению.Заголовок,
Элементы.СмТакжеВРаботе.Видимость,
СмТакжеВРаботе);
РезультатФормированияГиперссылокКОформлению = Неопределено;
Иначе
РезультатФормированияГиперссылокКОформлению = РезультатРасчета;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьГиперссылкуКОформлениюЗавершение(
Знач АдресХранилища,
КОформлению,
СмТакжеВРаботеВидимость,
СмТакжеВРаботеЗначение)
Результат = ПолучитьИзВременногоХранилища(АдресХранилища);
Если Не ЗначениеЗаполнено(Результат.КОформлению) Тогда
ТекстИдетОбновлениеДанных = НСтр("ru = 'нет'");
КОформлению = Новый ФорматированнаяСтрока(ТекстИдетОбновлениеДанных);
Иначе
КОформлению = Результат.КОформлению;
КонецЕсли;
Если Не ЗначениеЗаполнено(Результат.СмТакжеВРаботе) Тогда
СмТакжеВРаботеВидимость = Ложь;
Иначе
СмТакжеВРаботеВидимость = Истина;
СмТакжеВРаботеЗначение = Результат.СмТакжеВРаботе;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьГиперссылкуКОформлениюОповещение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
ОбновитьГиперссылкуКОформлениюЗавершение(
Результат.АдресРезультата,
Элементы.КОформлению.Заголовок,
Элементы.СмТакжеВРаботе.Видимость,
СмТакжеВРаботе);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодключитьОбработчикОжиданияГиперссылкиКОформлению()
Если РезультатФормированияГиперссылокКОформлению <> Неопределено Тогда
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОбновитьГиперссылкуКОформлениюОповещение", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(
РезультатФормированияГиперссылокКОформлению, ОповещениеОЗавершении, ПараметрыОжидания);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область НастройкиДинамическихСписков
&НаСервере
Процедура ИнициироватьНастройкиДинамическихСписков()
ПараметрыСписковДокументов = Новый Массив;
СтруктураПараметровСписка = РаботаСЖурналамиДокументов.СтруктураФормированияНаФормеГруппыПользовательскихНастроекДинамическогоСписка();
СтруктураПараметровСписка.ИмяСписка = "СписокДокументыПродажи";
СтруктураПараметровСписка.ГруппаРазмещенияНастройки = Элементы.ГруппаНастройкиСпискаДокументов;
СтруктураПараметровСписка.ИмяРеквизитаРежимАвтообновления = "СписокДокументыПродажиРежимАвтообновления";
СтруктураПараметровСписка.ИмяКомандыОбновленияСписка = Команды.СписокДокументыПродажиОбновить.Имя;
ПараметрыСписковДокументов.Добавить(СтруктураПараметровСписка);
РаботаСЖурналамиДокументов.ИнициироватьНастройкиДинамическихСписков(ЭтотОбъект, ПараметрыСписковДокументов);
КонецПроцедуры
&НаКлиенте
Процедура ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка)
ДлительноеОбновление = РаботаСЖурналамиДокументовКлиент.ВремяОбновленияСпискаПревышаетДопутимое(ЭтотОбъект,
ИмяСписка);
Если ДлительноеОбновление Тогда
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"ПровереныНастройкиКомпоновкиДанных", Истина);
СтруктураНастроекКомпоновкиДанных = ПолучитьИсполняемыеНастройкиКомпоновкиДанных(ИмяСписка);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"НастройкиКомпоновкиДанных", СтруктураНастроекКомпоновкиДанных.НастройкиКомпоновкиДанных);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"СтруктураПользовательскихНастроек", СтруктураНастроекКомпоновкиДанных.СтруктураПользовательскихНастроек);
Иначе
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"ПровереныНастройкиКомпоновкиДанных", Ложь);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"НастройкиКомпоновкиДанных", Новый НастройкиКомпоновкиДанных);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"СтруктураПользовательскихНастроек", Новый Структура);
КонецЕсли;
РаботаСЖурналамиДокументовКлиент.ДокументыОтображениеГруппыПользовательскихОтборовИНастроек(ЭтотОбъект, ИмяСписка);
КонецПроцедуры
&НаСервере
Функция ПолучитьИсполняемыеНастройкиКомпоновкиДанных(ИмяСписка)
ИмяЭлемента = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"ИмяЭлементаСписка");
ЭлементФормыСписок = Элементы[ИмяЭлемента];
НастройкиКомпоновкиДанных = ЭлементФормыСписок.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("НастройкиКомпоновкиДанных", НастройкиКомпоновкиДанных);
СписокПолейСоставногоТипа = РаботаСЖурналамиДокументов.ЗначениеНастройкиСпискаДокументов(ЭтотОбъект,
ИмяСписка, "СписокПолейСоставногоТипа");
СтруктураПользовательскихНастроек = РаботаСЖурналамиДокументов.ПроверитьПользовательскиеНастройкиДинамическогоСписка(
НастройкиКомпоновкиДанных, СписокПолейСоставногоТипа);
СтруктураВозврата.Вставить("СтруктураПользовательскихНастроек", СтруктураПользовательскихНастроек);
Возврат СтруктураВозврата;
КонецФункции
&НаКлиенте
Процедура УстановитьПараметрыОбновленияСписковДокументов(ДанныеУстарели, ДлительностьОбновления = Неопределено)
ИмяНастройки = "СписокДокументовКэшНастроек";
ИмяСписка = "";
Для Каждого НастройкаСписокДокументов Из ЭтотОбъект[ИмяНастройки] Цикл
ИмяСписка = НастройкаСписокДокументов.Ключ;
РаботаСЖурналамиДокументовКлиент.УстановитьПараметрыОбновленияСпискаДокументов(ЭтотОбъект, ИмяСписка, ДанныеУстарели,
ДлительностьОбновления);
ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьДанныеСпискаДокументовСЗамеромВремени(ИмяСписка, УчитыватьПараметрАвтообновления = Ложь)
Если Не УчитыватьПараметрАвтообновления Тогда
ТребуетсяОбновлениеСписка = Истина;
Иначе
ТребуетсяОбновлениеСписка = РаботаСЖурналамиДокументовКлиент.ЗначениеНастройкиАвтообновленияСпискаДокументов(
ЭтотОбъект, ИмяСписка);
Если Не ТребуетсяОбновлениеСписка Тогда
РаботаСЖурналамиДокументовКлиент.УстановитьПризнакОтображенияНеактуальныхДанныхВСписке(ЭтотОбъект, ИмяСписка);
КонецЕсли;
КонецЕсли;
Если ТребуетсяОбновлениеСписка Тогда
РаботаСЖурналамиДокументовКлиент.ОбновитьДанныеСпискаДокументовСЗамеромВремени(ЭтотОбъект, ИмяСписка);
ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСписокДокументовСобытиеОбработкаОповещения(ИмяСписка, Параметр = Неопределено)
РаботаСЖурналамиДокументовКлиент.ОбновитьСписокДокументовСобытиеОбработкаОповещения(ЭтотОбъект, ИмяСписка, Параметр);
ОтображениеГруппыПользовательскихОтборовИНастроек(ИмяСписка);
КонецПроцедуры
&НаКлиенте
Процедура СписокДокументовОбработкаСобытияЭлементаФормы(Элемент)
ДействиеСписка = РаботаСЖурналамиДокументовКлиент.ИмяСпискаДокументовПоИмениЭлементаФормы(ЭтотОбъект, Элемент.Имя);
Если ДействиеСписка.ИмяСписка = "" Тогда
Возврат;
КонецЕсли;
ИмяСписка = ДействиеСписка.ИмяСписка;
Действие = ДействиеСписка.Действие;
Если Действие = "Отборы" Или Действие = "Порядок" Или Действие = "УсловноеОформление" Тогда
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"ПровереныНастройкиКомпоновкиДанных", Истина);
СтруктураНастроекКомпоновкиДанных = ПолучитьИсполняемыеНастройкиКомпоновкиДанных(ИмяСписка);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"НастройкиКомпоновкиДанных", СтруктураНастроекКомпоновкиДанных.НастройкиКомпоновкиДанных);
РаботаСЖурналамиДокументовКлиент.УстановитьЗначениеНастройкиСпискаДокументов(ЭтотОбъект, ИмяСписка,
"СтруктураПользовательскихНастроек", СтруктураНастроекКомпоновкиДанных.СтруктураПользовательскихНастроек);
КонецЕсли;
Если Действие = "Отборы" Тогда
РаботаСЖурналамиДокументовКлиент.ИсправитьПользовательскиеОтборыВСпискеДокументов(ЭтотОбъект, ИмяСписка);
ИначеЕсли Действие = "Порядок" Тогда
РаботаСЖурналамиДокументовКлиент.ИсправитьНастройкиСортировкиВСпискеДокументов(ЭтотОбъект, ИмяСписка);
ИначеЕсли Действие = "УсловноеОформление" Тогда
РаботаСЖурналамиДокументовКлиент.ИсправитьНастройкиУсловногоОформленияВСпискеДокументов(ЭтотОбъект, ИмяСписка);
ИначеЕсли Действие = "Обновление" Тогда
ОбновитьДанныеСпискаДокументовСЗамеромВремени(ИмяСписка);
ИначеЕсли Действие = "УскорениеОбновленияСписка" Тогда
РаботаСЖурналамиДокументовКлиент.СохранитьНастройкуПроизводительныйРежимОбновленияСписка(ЭтотОбъект, ИмяСписка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ОписаниеОперацийИТиповДокументовПоПараметруОткрытияФормы(ТЗХозОперацииИТипыДокументов)
Если Параметры.Свойство("ИспользуемыеХозОперации")
И ЗначениеЗаполнено(Параметры.ИспользуемыеХозОперации) Тогда
СтрокиКУдалению = Новый Массив;
ЕстьСтрокиОтбора = Ложь;
Для Каждого ДанныеХозОперации Из ТЗХозОперацииИТипыДокументов Цикл
ДокументыХозОперации = Параметры.ИспользуемыеХозОперации[ДанныеХозОперации.ХозяйственнаяОперация];
Если ДокументыХозОперации = Неопределено Тогда
СтрокиКУдалению.Добавить(ДанныеХозОперации);
Иначе
ЗаголовокРабочегоМеста = ДокументыХозОперации[ДанныеХозОперации.ПолноеИмяДокумента];
Если ЗаголовокРабочегоМеста = Неопределено Тогда
СтрокиКУдалению.Добавить(ДанныеХозОперации);
Иначе
Если Не ПустаяСтрока(ЗаголовокРабочегоМеста) Тогда
ДанныеХозОперации.ЗаголовокРабочегоМеста = ЗаголовокРабочегоМеста;
КонецЕсли;
Если Не ЕстьСтрокиОтбора Тогда
ЕстьСтрокиОтбора = ДанныеХозОперации.Отбор;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если СтрокиКУдалению.Количество() > 0 Тогда
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ТЗХозОперацииИТипыДокументов.Удалить(СтрокаКУдалению);
КонецЦикла;
Если Не ЕстьСтрокиОтбора Тогда
ТЗХозОперацииИТипыДокументов.ЗаполнитьЗначения(Истина, "Отбор");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрослеживаемостьОтбор()
Если Параметры.Свойство("ПрослеживаемостьВозвратыТоваровОтКомиссионеров") Тогда
ОтборХозяйственныеОперации.Очистить();
ОтборХозяйственныеОперации.Добавить(Параметры.ПрослеживаемостьВозвратыТоваровОтКомиссионеров);
ОтборТипыДокументов.Очистить();
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "АктОРасхожденияхПослеПриемки"));
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "ВозвратТоваровОтКлиента"));
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "ПоступлениеТоваровОтХранителя"));
ИначеЕсли Параметры.Свойство("ПрослеживаемостьПередачиКомиссионерам") Тогда
ОтборХозяйственныеОперации.Очистить();
ОтборХозяйственныеОперации.Добавить(Параметры.ПрослеживаемостьПередачиКомиссионерам);
ОтборТипыДокументов.Очистить();
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "АктОРасхожденияхПослеОтгрузки"));
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "РеализацияТоваровУслуг"));
ОтборТипыДокументов.Добавить(Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоРеквизиту("Имя", "ПередачаТоваровХранителю"));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПолучитьКлючевуюОперациюОткрытияФормыДокументаПоСсылке(Ссылка)
ИмяФормыДокумента = "";
Если Ссылка <> Неопределено И ЗначениеЗаполнено(Ссылка) Тогда
НайденныйЭлементТипаДокумента = СоответствиеТиповДокументов.НайтиПоЗначению(ТипЗнч(Ссылка));
Если НайденныйЭлементТипаДокумента <> Неопределено Тогда
ИмяФормыДокумента = НайденныйЭлементТипаДокумента.Представление;
КонецЕсли;
КонецЕсли;
Возврат ИмяФормыДокумента;
КонецФункции
&НаСервере
Процедура УстановитьСоответствиеТиповДокументовИФорм(ТЗХозОперацииИТипыДокументов)
Если ВыполнятьЗамерыПроизводительности Тогда
ДанныеПоТипамДокументов = ТЗХозОперацииИТипыДокументов.Скопировать(,"ТипДокумента,ПолноеИмяДокумента");
ДанныеПоТипамДокументов.Свернуть("ТипДокумента, ПолноеИмяДокумента");
СоответствиеТиповДокументов.Очистить();
Для Каждого СтрокаТипаДокумента Из ДанныеПоТипамДокументов Цикл
СоответствиеТиповДокументов.Добавить(СтрокаТипаДокумента.ТипДокумента, СтрокаТипаДокумента.ПолноеИмяДокумента+ ".ОткрытьФормуДокумента");
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти