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