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