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