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