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