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