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