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