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