Помощник продаж / Настройка / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	УстановитьУсловноеОформление();
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	ИспользоватьСтатусыРеализацийТоваровУслуг       = ПолучитьФункциональнуюОпцию("ИспользоватьСтатусыРеализацийТоваровУслуг");
	ИспользоватьРасширенныеВозможностиЗаказаКлиента = ПолучитьФункциональнуюОпцию("ИспользоватьРасширенныеВозможностиЗаказаКлиента");
	
	СтруктураПараметров = ПолучитьПараметры(Параметры);
	ЗаполнитьЗначенияСвойств(ЭтаФорма, СтруктураПараметров);
	
	ЕстьПравоПечатиПКО = ПравоДоступа("Добавление",Метаданные.Документы.ПриходныйКассовыйОрдер);
	Если Не ЕстьПравоПечатиПКО Тогда
		СоздаватьПриходныйКассовыйОрдер = Ложь;
	КонецЕсли;
	УстановитьДоступностьПриходногоКассовогоОрдера(ЭтаФорма);
	
	ПереключательОбеспечение = Число(УпрощенноеОбеспечение);
	
	СпособПрогнозированияПродажЗаполнитьСписокВыбора();
	
	ИнициализироватьВариантыОформленияДокументовПродажи();
	УстановитьДоступностьСчетаНаОплатуПриходногоКассовогоОрдера(ЭтаФорма);
	УстановитьДоступностьКоммерческогоПредложения(ЭтаФорма);
	УстановитьДоступностьЗаказаКлиента(ЭтаФорма);
	УстановитьДоступностьЗаявкиНаВозврат(ЭтаФорма);
	УстановитьДоступностьДокументаПродажи(ЭтаФорма);
	УстановитьДоступностьПередачиТоваровХранителю(ЭтаФорма);
	УстановитьДоступностьВидимостьТранспортнойНакладной(ЭтаФорма);
	УстановитьДоступностьДоверенностиНаПолучениеДС(ЭтаФорма);
	УстановитьТекущуюСтраницуВариантовОформления(ЭтаФорма);
	УстановитьДоступностьНастроекЗаполнения(ЭтаФорма);
	УстановитьДоступностьГруппыОбеспечения(ЭтаФорма);
	
	УстановитьДоступностьВариантОбеспечения(ЭтаФорма);
	УстановитьДоступностьЭлементовПрогнозирования(ЭтаФорма);
	
	УстановитьДоступностьФискализации(ЭтаФорма);
	//++ Локализация
	УстановитьДоступностьМаркируемойПродукции(ЭтаФорма);
	//-- Локализация
	
	ОбновитьГиперссылкуФискальноеОборудование();
	
	Перечисления.СтатусыЗаказовКлиентов.ЗаполнитьСписокВыбора(Элементы.СтатусЗаказаКлиента.СписокВыбора, СтатусЗаказаКлиента);
	Перечисления.СтатусыЗаказовКлиентов.ЗаполнитьСписокВыбора(Элементы.СтатусЗаказаКлиентаЗаказРеализация.СписокВыбора, СтатусЗаказаКлиента);
	Перечисления.СтатусыЗаявокНаВозвратТоваровОтКлиентов.ЗаполнитьСписокВыбора(Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентов.СписокВыбора, СтатусЗаявкиНаВозвратТоваровОтКлиентов);
	Перечисления.СтатусыЗаявокНаВозвратТоваровОтКлиентов.ЗаполнитьСписокВыбора(Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентовЗаказРеализация.СписокВыбора, СтатусЗаявкиНаВозвратТоваровОтКлиентов);
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	Если ЗакрытьФормуПринудительно Тогда
		Возврат;
	КонецЕсли;
	
	Если Модифицированность И Не СохранитьПараметры И НЕ ЗавершениеРаботы Тогда
		
		СписокКнопок = Новый СписокЗначений();
		СписокКнопок.Добавить("Закрыть", НСтр("ru = 'Закрыть'"));
		СписокКнопок.Добавить("НеЗакрывать", НСтр("ru = 'Не закрывать'"));
		
		Отказ = Истина;
		ДополнительныеПараметры = Новый Структура;
		ПоказатьВопрос(
			Новый ОписаниеОповещения("ПередЗакрытиемВопросЗавершение", ЭтотОбъект, ДополнительныеПараметры),
			НСтр("ru = 'Параметры помощника продаж были изменены. Закрыть без сохранения параметров?'"),
			СписокКнопок);
		Возврат;
		
	КонецЕсли;
	
	ПередЗакрытиемЗавершение(Отказ);
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытиемЗавершение(Отказ)
	
	Если СохранитьПараметры Тогда
		
		ОчиститьСообщения();
		
		Если СоздаватьКоммерческоеПредложение И Не ЗначениеЗаполнено(СтатусКоммерческогоПредложения) Тогда
		
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				НСтр("ru = 'Поле ""Статус коммерческого предложения"" не заполнено'"),
				,
				"СтатусКоммерческогоПредложения",
				,
				Отказ);
			СохранитьПараметры = Ложь;
		
		КонецЕсли;
		
		Если ИспользоватьРасширенныеВозможностиЗаказаКлиента И СоздаватьЗаказКлиента И Не ЗначениеЗаполнено(СтатусЗаказаКлиента) Тогда
		
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				НСтр("ru = 'Поле ""Статус заказа клиента"" не заполнено'"),
				,
				"СтатусЗаказаКлиента",
				,
				Отказ);
			СохранитьПараметры = Ложь;
		
		КонецЕсли;
		
		Если ИспользоватьСтатусыРеализацийТоваровУслуг
			И СоздаватьДокументПродажи
			И Не ЗначениеЗаполнено(СтатусРеализацииТоваровУслуг) Тогда
		
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				НСтр("ru = 'Поле ""Статус реализации"" не заполнено'"),
				,
				"СтатусРеализацииТоваровУслуг",
				,
				Отказ);
			СохранитьПараметры = Ложь;
		
		КонецЕсли;
		
		Если Не ЗначениеЗаполнено(ВариантОформленияДокументов) Тогда
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				НСтр("ru = 'Поле ""Оформить"" не заполнено'"),
				,
				"ВариантОформленияДокументов",
				,
				Отказ);
		КонецЕсли;
		
		Если ПереключательОбеспечение = 1 И НЕ ЗначениеЗаполнено(ВариантОбеспечения) Тогда
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				НСтр("ru = 'Поле ""Вариант обеспечения"" не заполнено'"),
				,
				"ВариантОбеспечения",
				,
				Отказ);
		КонецЕсли; 
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытиемВопросЗавершение(ОтветНаВопрос, ДополнительныеПараметры) Экспорт
	
	Если ОтветНаВопрос = "НеЗакрывать" Тогда
		СохранитьПараметры = Ложь;
	КонецЕсли;
	
	Если ОтветНаВопрос = "Закрыть" Тогда
		ЗакрытьФормуПринудительно = Истина;
	КонецЕсли;
	
	Отказ = Ложь;
	ПередЗакрытиемЗавершение(Отказ);
	Если Отказ = Истина Тогда
		ЗакрытьФормуПринудительно = Ложь;
	КонецЕсли;
	
	Если ЗакрытьФормуПринудительно Тогда
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
	
	Если СохранитьПараметры И НЕ ЗавершениеРаботы Тогда
		
		СтруктураПараметров = ПолучитьПараметры(ЭтаФорма);
		ОповеститьОВыборе(СтруктураПараметров);
		
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура СоздаватьСчетНаОплатуПриИзменении(Элемент)
	
	УстановитьДоступностьСчетаНаОплату(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура СоздаватьПриходныйКассовыйОрдерПриИзменении(Элемент)
	
	Если Не ЕстьПравоПечатиПКО Тогда
		ОчиститьСообщения();
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Недостаточно прав на создание ПКО.'"));
	КонецЕсли;
	
	УстановитьДоступностьПриходногоКассовогоОрдера(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура СоздаватьЗаявкуНаВозвратТоваровОтКлиентовПриИзменении(Элемент)
	
	УстановитьДоступностьЗаявкиНаВозврат(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПереключательОбеспечениеПриИзменении(Элемент)
	
	УпрощенноеОбеспечение = Булево(ПереключательОбеспечение);
	УстановитьДоступностьВариантОбеспечения(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ОтображатьРекомендацииКПокупкеПриИзменении(Элемент)
	
	УстановитьДоступностьЭлементовПрогнозирования(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнятьТоварыПоСоглашениюПриИзменении(Элемент)
	
	Если ЗаполнятьТоварыПоСоглашению = Ложь Тогда
		ОтображатьРекомендацииКПокупке = Ложь;
	КонецЕсли;
	УстановитьДоступностьЭлементовПрогнозирования(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПробиватьФискальныйЧекПриИзменении(Элемент)
	
	Элементы.НастройкиПодключаемогоОборудованияРеализация.Видимость = ПробиватьФискальныйЧек;
	Элементы.НастройкиПодключаемогоОборудованияЗаказРеализация.Видимость = ПробиватьФискальныйЧек;
	
КонецПроцедуры

&НаКлиенте
Процедура ФискальноеОборудованиеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)

	СтандартнаяОбработка = Ложь;
	
	ОткрытьФорму("Обработка.ПредпросмотрЧека.Форма.ОшибкаПодключенияККТ", Новый Структура("НеВыводитьОшибку", Истина));
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ОК(Команда)
	
	СохранитьПараметры = Истина;
	ЗакрытьФормуПринудительно = Ложь;
	Закрыть();

КонецПроцедуры

&НаКлиенте
Процедура Отмена(Команда)
	
	Закрыть();
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусКоммерческогоПредложения.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СоздаватьКоммерческоеПредложение");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусКоммерческогоПредложения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусЗаказаКлиента.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СоздаватьЗаказКлиента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусЗаказаКлиента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусРеализацииТоваровУслуг.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СоздаватьДокументПродажи");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусРеализацииТоваровУслуг");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусКоммерческогоПредложения.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусКоммерческогоПредложения");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусЗаказаКлиента.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусЗаказаКлиента");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусРеализацииТоваровУслуг.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусРеализацииТоваровУслуг");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентов.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СоздаватьЗаявкуНаВозвратТоваровОтКлиентов");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусЗаявкиНаВозвратТоваровОтКлиентов");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентов.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СтатусЗаявкиНаВозвратТоваровОтКлиентов");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

КонецПроцедуры

#Область Прочее

&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьПараметры(Источник)
	
	СтруктураПараметров = Новый Структура();
	СтруктураПараметров.Вставить("ПечататьАктВыполненныхРабот",                   Источник.ПечататьАктВыполненныхРабот);
	СтруктураПараметров.Вставить("ПечататьЗаказКлиента",                          Источник.ПечататьЗаказКлиента);
	СтруктураПараметров.Вставить("ПечататьКоммерческоеПредложение",               Источник.ПечататьКоммерческоеПредложение);
	СтруктураПараметров.Вставить("ПечататьПриходныйКассовыйОрдер",                Источник.ПечататьПриходныйКассовыйОрдер);
	СтруктураПараметров.Вставить("ПечататьРеализациюТоваровУслуг",                Источник.ПечататьРеализациюТоваровУслуг);
	СтруктураПараметров.Вставить("ПечататьПередачуТоваровХранителю",              Источник.ПечататьПередачуТоваровХранителю);
	СтруктураПараметров.Вставить("ПечататьСчетНаОплату",                          Источник.ПечататьСчетНаОплату);
	СтруктураПараметров.Вставить("ПечататьСчетФактуру",                           Источник.ПечататьСчетФактуру);
	СтруктураПараметров.Вставить("СоздаватьДокументПродажи",                      Источник.СоздаватьДокументПродажи);
	СтруктураПараметров.Вставить("СоздаватьЗаказКлиента",                         Источник.СоздаватьЗаказКлиента);
	СтруктураПараметров.Вставить("СоздаватьКоммерческоеПредложение",              Источник.СоздаватьКоммерческоеПредложение);
	СтруктураПараметров.Вставить("СоздаватьПриходныйКассовыйОрдер",               Источник.СоздаватьПриходныйКассовыйОрдер);
	СтруктураПараметров.Вставить("СоздаватьСчетНаОплату",                         Источник.СоздаватьСчетНаОплату);
	СтруктураПараметров.Вставить("СтатусЗаказаКлиента",                           Источник.СтатусЗаказаКлиента);
	СтруктураПараметров.Вставить("СтатусКоммерческогоПредложения",                Источник.СтатусКоммерческогоПредложения);
	СтруктураПараметров.Вставить("СтатусРеализацииТоваровУслуг",                  Источник.СтатусРеализацииТоваровУслуг);
	СтруктураПараметров.Вставить("СоздаватьПередачуТоваровХранителю",             Источник.СоздаватьПередачуТоваровХранителю);
	СтруктураПараметров.Вставить("СоздаватьТранспортнуюНакладнуюПоУмолчанию",     Источник.СоздаватьТранспортнуюНакладнуюПоУмолчанию);
	СтруктураПараметров.Вставить("СоздаватьДоверенностьНаПолучениеДСПоУмолчанию", Источник.СоздаватьДоверенностьНаПолучениеДСПоУмолчанию);
	СтруктураПараметров.Вставить("ВариантОформленияДокументов",                   Источник.ВариантОформленияДокументов);
	
	СтруктураПараметров.Вставить("СоздаватьЗаявкуНаВозвратТоваровОтКлиентов",     Источник.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов);
	СтруктураПараметров.Вставить("ПечататьЗаявкуНаВозвратТоваровОтКлиентов",      Источник.ПечататьЗаявкуНаВозвратТоваровОтКлиентов);
	СтруктураПараметров.Вставить("СтатусЗаявкиНаВозвратТоваровОтКлиентов",        Источник.СтатусЗаявкиНаВозвратТоваровОтКлиентов);
	СтруктураПараметров.Вставить("ЗаполнятьТоварыПоСоглашению",                   Источник.ЗаполнятьТоварыПоСоглашению);
	СтруктураПараметров.Вставить("ОтображатьРекомендацииКПокупке",                Источник.ОтображатьРекомендацииКПокупке);
	СтруктураПараметров.Вставить("СпособПрогнозированияПродаж",                   Источник.СпособПрогнозированияПродаж);
	СтруктураПараметров.Вставить("ПериодСбораСтатистики",                         Источник.ПериодСбораСтатистики);
	СтруктураПараметров.Вставить("УпрощенноеОбеспечение",                         Источник.УпрощенноеОбеспечение);
	СтруктураПараметров.Вставить("ВариантОбеспечения",                            Источник.ВариантОбеспечения);
	СтруктураПараметров.Вставить("НеЗадаватьВопросОбеспечение",                   Источник.НеЗадаватьВопросОбеспечение);
	
	СтруктураПараметров.Вставить("ПробиватьФискальныйЧек",                        Источник.ПробиватьФискальныйЧек);
	СтруктураПараметров.Вставить("ОтдельныеНакладныеПоТоварамСОсобенностьюУчета", Источник.ОтдельныеНакладныеПоТоварамСОсобенностьюУчета);
	
	Возврат СтруктураПараметров;
	
КонецФункции

// Параметры:
// 	Реквизит - Булево - 
// 	ЗависимыеЭлементы - Неопределено, Массив из ПолеФормы, ПолеФормы - 
// 	ЗависимыйРеквизит - Неопределено, Булево -
//  
&НаКлиентеНаСервереБезКонтекста
Процедура ОбработатьИзменениеФлага(Реквизит, ЗависимыеЭлементы = Неопределено, ЗависимыйРеквизит = Неопределено)
	
	Если ТипЗнч(ЗависимыеЭлементы) = Тип("Массив") Тогда
		Для каждого ЗависимыйЭлемент Из ЗависимыеЭлементы Цикл
			ЗависимыйЭлемент.Доступность = Реквизит;
		КонецЦикла;
	ИначеЕсли ТипЗнч(ЗависимыеЭлементы) = Тип("ПолеФормы") Тогда
		ЗависимыеЭлементы.Доступность = Реквизит;
	КонецЕсли;
	
	Если Не Реквизит Тогда
		ЗависимыйРеквизит = Неопределено;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьСчетаНаОплатуПриходногоКассовогоОрдера(Форма)
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьЗаказКлиента Или Форма.СоздаватьДокументПродажи,
		,
		Форма.СоздаватьСчетНаОплату);
		
	МассивЭлементовПечататьСчетНаОплату = Новый Массив;
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплату);
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплатуЗаказРеализация);
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплатуРеализация);
	
	ОбработатьИзменениеФлага(
		(Форма.СоздаватьЗаказКлиента Или Форма.СоздаватьДокументПродажи) И Форма.СоздаватьСчетНаОплату,
		МассивЭлементовПечататьСчетНаОплату,
		Форма.ПечататьСчетНаОплату);
		
	ОбработатьИзменениеФлага(
		Форма.СоздаватьЗаказКлиента Или Форма.СоздаватьДокументПродажи,
		,
		Форма.СоздаватьПриходныйКассовыйОрдер);
		
	МассивЭлементовПечататьПКО = Новый Массив;
	МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдер);
	МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдерЗаказРеализация);
	МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдерРеализация);
	
	ОбработатьИзменениеФлага(
		(Форма.СоздаватьЗаказКлиента Или Форма.СоздаватьДокументПродажи) И Форма.СоздаватьПриходныйКассовыйОрдер,
		МассивЭлементовПечататьПКО,
		Форма.ПечататьПриходныйКассовыйОрдер);

КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьКоммерческогоПредложения(Форма)
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьКоммерческоеПредложение,
		Форма.Элементы.ПечататьКоммерческоеПредложение,
		Форма.ПечататьКоммерческоеПредложение);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЗаказаКлиента(Форма)
	
	МассивЭлементовПечататьЗаказ = Новый Массив;
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.ПечататьЗаказКлиента);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.ПечататьЗаказКлиентаЗаказРеализация);
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьЗаказКлиента,
		МассивЭлементовПечататьЗаказ,
		Форма.ПечататьЗаказКлиента);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЗаявкиНаВозврат(Форма)
	
	МассивЭлементовПечататьЗаказ = Новый Массив;
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентов);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентовЗаказРеализация);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентов);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентовЗаказРеализация);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентовЗаказКлиентаПередачаТоваровХранителю);
	МассивЭлементовПечататьЗаказ.Добавить(Форма.Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентовЗаказКлиентаПередачаТоваровХранителю);
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов,
		МассивЭлементовПечататьЗаказ,
		Форма.ПечататьЗаявкуНаВозвратТоваровОтКлиентов);
	
	Элементы = Форма.Элементы;
	
	ИспользоватьРасширенныеВозможностиЗаказаКлиента = Форма.ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ГруппаЗаявкаНаВозвратСоздаватьПечатать2.Видимость = ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ГруппаЗаявкаНаВозвратСоздаватьПечататьЗаказРеализация2.Видимость = ИспользоватьРасширенныеВозможностиЗаказаКлиента;

	Элементы.ДекорацияЗаказКлиента.Видимость = Не ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ДекорацияЗаказКлиентаЗаказРеализация.Видимость = Не ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ДекорацияЗаказКлиентаЗаказПередача.Видимость = Не ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьСчетаНаОплату(Форма)
	
	МассивЭлементовПечататьСчетНаОплату = Новый Массив;
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплату);
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплатуЗаказРеализация);
	МассивЭлементовПечататьСчетНаОплату.Добавить(Форма.Элементы.ПечататьСчетНаОплатуРеализация);
	
	ОбработатьИзменениеФлага(
		(Форма.СоздаватьЗаказКлиента Или Форма.СоздаватьДокументПродажи) И Форма.СоздаватьСчетНаОплату,
		МассивЭлементовПечататьСчетНаОплату,
		Форма.ПечататьСчетНаОплату);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьДокументаПродажи(Форма)
	
	МассивЭлементовПечататьРеализацию = Новый Массив;
	МассивЭлементовПечататьРеализацию.Добавить(Форма.Элементы.ПечататьРеализацию);
	МассивЭлементовПечататьРеализацию.Добавить(Форма.Элементы.ПечататьРеализациюЗаказРеализация);
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьДокументПродажи,
		МассивЭлементовПечататьРеализацию,
		Форма.ПечататьРеализациюТоваровУслуг);
		
	МассивЭлементовПечататьАкт = Новый Массив;
	МассивЭлементовПечататьАкт.Добавить(Форма.Элементы.ПечататьАкт);
	МассивЭлементовПечататьАкт.Добавить(Форма.Элементы.ПечататьАктЗаказРеализация);
		
	ОбработатьИзменениеФлага(
		Форма.СоздаватьДокументПродажи,
		МассивЭлементовПечататьАкт,
		Форма.ПечататьАктВыполненныхРабот);
		
	МассивЭлементовПечататьСФ = Новый Массив;
	МассивЭлементовПечататьСФ.Добавить(Форма.Элементы.ПечататьСчетФактуру);
	МассивЭлементовПечататьСФ.Добавить(Форма.Элементы.ПечататьСчетФактуруЗаказРеализация);
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьДокументПродажи ИЛИ Форма.СоздаватьПередачуТоваровХранителю,
		МассивЭлементовПечататьСФ,
		Форма.ПечататьСчетФактуру);
	
	МассивЭлементовПечататьСФ = Новый Массив;
	МассивЭлементовПечататьСФ.Добавить(Форма.Элементы.ПечататьСчетФактуруПередачаТоваров);
	МассивЭлементовПечататьСФ.Добавить(Форма.Элементы.ПечататьСчетФактуруЗаказКлиентаПередачаТоваров);
	
	ОбработатьИзменениеФлага(
		Форма.СоздаватьПередачуТоваровХранителю,
		МассивЭлементовПечататьСФ,
		Форма.ПечататьСчетФактуру);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПередачиТоваровХранителю(Форма)
	
	ЭлементыПечати = Новый Массив;
	ЭлементыПечати.Добавить(Форма.Элементы.ПечататьПередачуТоваровХранителю);
	ЭлементыПечати.Добавить(Форма.Элементы.ПечататьПередачуЗаказКлиентаПередачаТоваровХранителю);
	
	ОбработатьИзменениеФлага(Форма.СоздаватьПередачуТоваровХранителю, ЭлементыПечати,
		Форма.ПечататьПередачуТоваровХранителю);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПриходногоКассовогоОрдера(Форма)
	
	Если Форма.ЕстьПравоПечатиПКО Тогда
		МассивЭлементовПечататьПКО = Новый Массив;
		МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдер);
		МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдерЗаказРеализация);
		МассивЭлементовПечататьПКО.Добавить(Форма.Элементы.ПечататьПриходныйКассовыйОрдерРеализация);
			
		ОбработатьИзменениеФлага(
			Форма.СоздаватьПриходныйКассовыйОрдер,
			МассивЭлементовПечататьПКО,
			Форма.ПечататьПриходныйКассовыйОрдер); 
			
	Иначе
		Форма.ПечататьПриходныйКассовыйОрдер = Ложь;
	КонецЕсли;
	
	Форма.Элементы.ПечататьПриходныйКассовыйОрдер.Доступность = Форма.СоздаватьПриходныйКассовыйОрдер И Форма.ЕстьПравоПечатиПКО;
	Форма.Элементы.ПечататьПриходныйКассовыйОрдерЗаказРеализация.Доступность =  Форма.СоздаватьПриходныйКассовыйОрдер И Форма.ЕстьПравоПечатиПКО;
	Форма.Элементы.ПечататьПриходныйКассовыйОрдерРеализация.Доступность =  Форма.СоздаватьПриходныйКассовыйОрдер И Форма.ЕстьПравоПечатиПКО;
	Форма.Элементы.СоздаватьПриходныйКассовыйОрдер.Доступность = Форма.ЕстьПравоПечатиПКО;
	Форма.Элементы.СоздаватьПриходныйКассовыйОрдерЗаказРеализация.Доступность = Форма.ЕстьПравоПечатиПКО;
	Форма.Элементы.СоздаватьПриходныйКассовыйОрдерРеализация.Доступность = Форма.ЕстьПравоПечатиПКО;

КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьВидимостьТранспортнойНакладной(Форма)
	
	Форма.Элементы.ГруппаТранспортнаяНакладная.Доступность = Форма.СоздаватьДокументПродажи;
	Форма.Элементы.ГруппаТранспортнаяНакладнаяЗаказРеализация.Доступность = Форма.СоздаватьДокументПродажи;
	Форма.Элементы.ГруппаТранспортнаяНакладнаяПередачаТоваровХранителю.Доступность = Форма.СоздаватьПередачуТоваровХранителю;
	Форма.Элементы.ГруппаТранспортнаяНакладнаяЗаказКлиентаПередачаТоваровХранителю.Доступность = Форма.СоздаватьПередачуТоваровХранителю;
	
	Если Не Форма.СоздаватьДокументПродажи
		И Не Форма.СоздаватьПередачуТоваровХранителю Тогда
		
		Форма.СоздаватьТранспортнуюНакладнуюПоУмолчанию = Ложь;
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьДоверенностиНаПолучениеДС(Форма)
	
	ДоступностьДоверенности = Форма.СоздаватьДокументПродажи Или Форма.СоздаватьЗаказКлиента;
	Форма.Элементы.ГруппаДоверенность.Доступность = ДоступностьДоверенности;
	Форма.Элементы.ГруппаДоверенностьРеализация.Доступность = ДоступностьДоверенности; 
	Форма.Элементы.ГруппаДоверенностьРеализацияЗаказРеализация.Доступность = ДоступностьДоверенности;
	
	Если Не ДоступностьДоверенности Тогда 
		Форма.СоздаватьДоверенностьНаПолучениеДСПоУмолчанию = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьВариантОбеспечения(Форма)
	
	ЭтоЗаказНакладная = Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаРеализацияТоваровУслуг")
		Или Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаПередачаТоваровХранителю");
	
	Если ЭтоЗаказНакладная И Форма.УпрощенноеОбеспечение Тогда
		
		Если Форма.ВариантОбеспечения <> ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить") Тогда
			Форма.ВариантОбеспечения = ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить");
		КонецЕсли;
		
	КонецЕсли;
	
	ОбработатьИзменениеФлага(Форма.УпрощенноеОбеспечение И Не ЭтоЗаказНакладная, Форма.Элементы.ВариантОбеспечения);
	ОбработатьИзменениеФлага(Форма.УпрощенноеОбеспечение, Форма.Элементы.НеЗадаватьВопросОбеспечение);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьГруппыОбеспечения(Форма)
	
	ЭтоПередачаХранителю = Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ПередачаТоваровХранителю");
	
	Форма.Элементы.ГруппаОбеспечение.Видимость = НЕ ЭтоПередачаХранителю;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовПрогнозирования(Форма)
	
	ОбработатьИзменениеФлага(
		Форма.ОтображатьРекомендацииКПокупке,
		Форма.Элементы.СпособПрогнозированияПродаж);
	
	ОбработатьИзменениеФлага(
		Форма.ОтображатьРекомендацииКПокупке,
		Форма.Элементы.ПериодСбораСтатистики);
	
	ОбработатьИзменениеФлага(
		Форма.ЗаполнятьТоварыПоСоглашению,
		Форма.Элементы.ОтображатьРекомендацииКПокупке);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьФискализации(Форма)
	
	ФискализацияДоступна = РозничныеПродажиВызовСервера.ФискализацияДоступна();
	
	Форма.Элементы.ПробиватьФискальныйЧекРеализация.Видимость 					= ФискализацияДоступна;
	Форма.Элементы.ПробиватьФискальныйЧекЗаказРеализация.Видимость 				= ФискализацияДоступна;
	Форма.Элементы.НастройкиПодключаемогоОборудованияРеализация.Видимость 		= ФискализацияДоступна И Форма.ПробиватьФискальныйЧек;
	Форма.Элементы.НастройкиПодключаемогоОборудованияЗаказРеализация.Видимость 	= ФискализацияДоступна И Форма.ПробиватьФискальныйЧек;
	
КонецПроцедуры

//++ Локализация
&НаСервереБезКонтекста
Процедура УстановитьДоступностьМаркируемойПродукции(Форма)
	
	ИспользуетсяНоменклатураГосИС = ИнтеграцияИСУТ.ИспользуютсяПодсистемыГОСИС();
	
	Форма.Элементы.ОтдельныеНакладныеПоТоварамСОсобенностьюУчетаЗаказРеализация.Видимость	= ИспользуетсяНоменклатураГосИС;
	Форма.Элементы.ОтдельныеНакладныеПоТоварамСОсобенностьюУчетаРеализация.Видимость		= ИспользуетсяНоменклатураГосИС;
	
КонецПроцедуры
//-- Локализация

&НаКлиенте
Процедура ВариантОформленияДокументовПриИзменении(Элемент)
	
	УстановитьТекущуюСтраницуВариантовОформления(ЭтаФорма);
	УстановитьДоступностьСчетаНаОплатуПриходногоКассовогоОрдера(ЭтаФорма);
	УстановитьДоступностьКоммерческогоПредложения(ЭтаФорма);
	УстановитьДоступностьЗаказаКлиента(ЭтаФорма);
	УстановитьДоступностьЗаявкиНаВозврат(ЭтаФорма);
	УстановитьДоступностьДокументаПродажи(ЭтаФорма);
	УстановитьДоступностьПередачиТоваровХранителю(ЭтаФорма);
	УстановитьДоступностьВидимостьТранспортнойНакладной(ЭтаФорма);
	УстановитьДоступностьДоверенностиНаПолучениеДС(ЭтаФорма);
	УстановитьДоступностьНастроекЗаполнения(ЭтаФорма);
	УстановитьДоступностьВариантОбеспечения(ЭтотОбъект);
	УстановитьДоступностьГруппыОбеспечения(ЭтаФорма);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекущуюСтраницуВариантовОформления(Форма)
	
	Элементы = Форма.Элементы;
	ВариантОформленияДокументов = Форма.ВариантОформленияДокументов;
	
	УстановитьЗаголовкиПрогнозированияПродажПоУмолчанию(Форма);
	
	Если ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.КоммерческоеПредложение") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаКоммерческоеПредложение;
		Форма.СоздаватьКоммерческоеПредложение = Истина;
		Форма.СоздаватьЗаказКлиента = Ложь;
		Форма.СоздаватьДокументПродажи = Ложь;
		Форма.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов = Ложь;
		Форма.СоздаватьПередачуТоваровХранителю = Ложь;
		Форма.ПробиватьФискальныйЧек = Ложь;
		
	ИначеЕсли ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиента") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаЗаказКлиента;
		Форма.СоздаватьКоммерческоеПредложение = Ложь;
		Форма.СоздаватьЗаказКлиента = Истина;
		Форма.СоздаватьДокументПродажи = Ложь;
		Форма.СоздаватьПередачуТоваровХранителю = Ложь;
		Форма.ПробиватьФискальныйЧек = Ложь;
		
	ИначеЕсли ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаРеализация;
		Форма.СоздаватьКоммерческоеПредложение = Ложь;
		Форма.СоздаватьЗаказКлиента = Ложь;
		Форма.СоздаватьДокументПродажи = Истина;
		Форма.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов = Ложь;
		Форма.СоздаватьПередачуТоваровХранителю = Ложь;
		
	ИначеЕсли ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ПередачаТоваровХранителю") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаПередачаТоваровХранителю;
		Форма.СоздаватьКоммерческоеПредложение = Ложь;
		Форма.СоздаватьЗаказКлиента = Ложь;
		Форма.СоздаватьДокументПродажи = Ложь;
		Форма.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов = Ложь;
		Форма.СоздаватьПередачуТоваровХранителю = Истина;
		Форма.ПробиватьФискальныйЧек = Ложь;
		
		УстановитьЗаголовкиПрогнозированияПродажПоПередачеТоваров(Форма);
		
	ИначеЕсли ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаПередачаТоваровХранителю") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаЗаказКлиентаПередачаТоваровХранителю;
		Форма.СоздаватьКоммерческоеПредложение = Ложь;
		Форма.СоздаватьЗаказКлиента = Истина;
		Форма.СоздаватьДокументПродажи = Ложь;
		Форма.СоздаватьПередачуТоваровХранителю = Истина;
		Форма.ПробиватьФискальныйЧек = Ложь;
		
		УстановитьЗаголовкиПрогнозированияПродажПоПередачеТоваров(Форма);
		
	ИначеЕсли ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаРеализацияТоваровУслуг") Тогда
		Элементы.ГруппаСтраницыВарианты.ТекущаяСтраница = Элементы.ГруппаСтраницаЗаказКлиентаРеализация;
		Форма.СоздаватьКоммерческоеПредложение = Ложь;
		Форма.СоздаватьЗаказКлиента = Истина;
		Форма.СоздаватьДокументПродажи = Истина;
		Форма.СтатусРеализацииТоваровУслуг = ПредопределенноеЗначение("Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено");
		Форма.СоздаватьПередачуТоваровХранителю = Ложь;
		
	КонецЕсли;
	
КонецПроцедуры


&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовкиПрогнозированияПродажПоУмолчанию(Форма)
	
	Элементы = Форма.Элементы;
	
	Элементы.ОтображатьРекомендацииКПокупке.Заголовок = НСтр("ru = 'Прогнозировать продажу клиенту'");
	Элементы.СпособПрогнозированияПродаж.Заголовок = НСтр("ru = 'Способ прогнозирования продаж'");
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЗаголовкиПрогнозированияПродажПоПередачеТоваров(Форма)
	
	Элементы = Форма.Элементы;
	
	Элементы.ОтображатьРекомендацииКПокупке.Заголовок = НСтр("ru = 'Прогнозировать передачу/отгрузку товаров клиенту'");
	Элементы.СпособПрогнозированияПродаж.Заголовок = НСтр("ru = 'Способ прогнозирования передачи/отгрузки товаров'");
	
КонецПроцедуры

&НаСервере
Процедура ИнициализироватьВариантыОформленияДокументовПродажи()
	
	ИспользоватьПередачуТоваровХранение = ПолучитьФункциональнуюОпцию("ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи");
	ИспользоватьЗаказыКлиентов = ПолучитьФункциональнуюОпцию("ИспользоватьЗаказыКлиентов");
	ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов = ПолучитьФункциональнуюОпцию("ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов");
	ИспользоватьПострочнуюОтгрузку = ПолучитьФункциональнуюОпцию("ИспользоватьПострочнуюОтгрузкуВЗаказеКлиента");
	ИспользоватьСоглашения = ПолучитьФункциональнуюОпцию("ИспользоватьСоглашенияСКлиентами");
	ИспользоватьПланированиеПродаж = ПолучитьФункциональнуюОпцию("ИспользоватьПланированиеПродаж");
	ИспользоватьКомиссиюПриПродажах = ПолучитьФункциональнуюОпцию("ИспользоватьКомиссиюПриПродажах");
	
	Элементы.ВариантОформленияДокументов.СписокВыбора.Очистить();
	
	Если ИспользоватьЗаказыКлиентов Тогда
		Элементы.ВариантОформленияДокументов.СписокВыбора.Добавить(Перечисления.ВариантыОформленияДокументовПродажи.ЗаказКлиента);
	КонецЕсли;
	
	Элементы.ВариантОформленияДокументов.СписокВыбора.Добавить(Перечисления.ВариантыОформленияДокументовПродажи.РеализацияТоваровУслуг);
	
	Если ИспользоватьПередачуТоваровХранение Или ИспользоватьКомиссиюПриПродажах Тогда
		Элементы.ВариантОформленияДокументов.СписокВыбора.Добавить(
			Перечисления.ВариантыОформленияДокументовПродажи.ПередачаТоваровХранителю);
	КонецЕсли;
	
	Если ИспользоватьЗаказыКлиентов Тогда
		Элементы.ВариантОформленияДокументов.СписокВыбора.Добавить(Перечисления.ВариантыОформленияДокументовПродажи.ЗаказКлиентаРеализацияТоваровУслуг);
		Если ИспользоватьПередачуТоваровХранение Или ИспользоватьКомиссиюПриПродажах Тогда
			Элементы.ВариантОформленияДокументов.СписокВыбора.Добавить(
				Перечисления.ВариантыОформленияДокументовПродажи.ЗаказКлиентаПередачаТоваровХранителю);
		КонецЕсли;
	КонецЕсли;
	
	Если Элементы.ВариантОформленияДокументов.СписокВыбора.Количество() > 1 Тогда
		Элементы.ВариантОформленияДокументов.ТолькоПросмотр = Ложь;
	Иначе
		Элементы.ВариантОформленияДокументов.ТолькоПросмотр = Истина;
	КонецЕсли;
	
	ФискализацияДоступна = РозничныеПродажиВызовСервера.ФискализацияДоступна();
	Элементы.ГруппаФискализацияЗаказРеализация.Видимость = ФискализацияДоступна;
	Элементы.ГруппаФискализацияРеализация.Видимость = ФискализацияДоступна;
	
	Элементы.СоздаватьЗаявкуНаВозвратТоваровОтКлиентов.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.СоздаватьЗаявкуНаВозвратТоваровОтКлиентовЗаказРеализация.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентов.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентовЗаказРеализация.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентов.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентовЗаказРеализация.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.СоздаватьЗаявкуНаВозвратТоваровОтКлиентовЗаказКлиентаПередачаТоваровХранителю.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.ПечататьЗаявкуНаВозвратТоваровОтКлиентовЗаказКлиентаПередачаТоваровХранителю.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	Элементы.СтатусЗаявкиНаВозвратТоваровОтКлиентовЗаказКлиентаПередачаТоваровХранителю.Видимость = ИспользоватьЗаявкиНаВозвратТоваровОтКлиентов;
	
	Элементы.ВариантОбеспечения.СписокВыбора.Очистить();
	Элементы.ВариантОбеспечения.СписокВыбора.Добавить(Перечисления.ВариантыОбеспечения.НеТребуется);
	Элементы.ВариантОбеспечения.СписокВыбора.Добавить(Перечисления.ВариантыОбеспечения.КОбеспечению);
	Элементы.ВариантОбеспечения.СписокВыбора.Добавить(Перечисления.ВариантыОбеспечения.РезервироватьПоМереПоступления);
	Элементы.ВариантОбеспечения.СписокВыбора.Добавить(Перечисления.ВариантыОбеспечения.СоСклада);
	Элементы.ВариантОбеспечения.СписокВыбора.Добавить(Перечисления.ВариантыОбеспечения.Отгрузить);
	
	//++ Локализация
	ТекстОтдельныеНакладныеПоТоварамСОсобенностьюУчета = 
	НСтр("ru = 'При создании накладных товары будут группироваться в зависимости от вида ГосИС:" + Символы.ПС + "- %1'");
	ТекстОтдельныеНакладныеПоТоварамСОсобенностьюУчета = СтрШаблон(ТекстОтдельныеНакладныеПоТоварамСОсобенностьюУчета, 
			СтрСоединить(ИнтеграцияИСУТ.СписокИспользуемыхПодсистем(Истина), Символы.ПС + "- "));
	Элементы.ОтдельныеНакладныеПоТоварамСОсобенностьюУчетаЗаказРеализация.РасширеннаяПодсказка.Заголовок = 
																	ТекстОтдельныеНакладныеПоТоварамСОсобенностьюУчета;
	Элементы.ОтдельныеНакладныеПоТоварамСОсобенностьюУчетаРеализация.РасширеннаяПодсказка.Заголовок = 
																	ТекстОтдельныеНакладныеПоТоварамСОсобенностьюУчета;
	//-- Локализация

	Продажи.ПриИнициализацииВариантовОформленияДокументовПродажи(ЭтотОбъект);
	
	Шаблон = НСтр("ru = 'Если выбран статус ""%1"", то он будет установлен только при наличии этапов предоплаты в графике оплат'");
	Элементы.СтатусРеализацииТоваровУслуг.Подсказка = СтрШаблон(Шаблон, Перечисления.СтатусыРеализацийТоваровУслуг.КПредоплате);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьНастроекЗаполнения(Форма)
	
	Элементы = Форма.Элементы;
	
	ИспользоватьПострочнуюОтгрузку = Форма.ИспользоватьПострочнуюОтгрузку;
	ИспользоватьСоглашения = Форма.ИспользоватьСоглашения;
	ИспользоватьПланированиеПродаж = Форма.ИспользоватьПланированиеПродаж;
	ИспользоватьРасширенныеВозможностиЗаказаКлиента = Форма.ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	
	ЭтоЗаказ = Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиента")
				Или Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ПередачаТоваровХранителю")
				Или Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаПередачаТоваровХранителю")
				Или Форма.ВариантОформленияДокументов = ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.ЗаказКлиентаРеализацияТоваровУслуг");
	
	Элементы.ВариантОбеспечения.Видимость = ИспользоватьПострочнуюОтгрузку И ЭтоЗаказ;
	Элементы.ОтступДействиеИФлаг.Видимость = ИспользоватьПострочнуюОтгрузку И ЭтоЗаказ;
	Элементы.ПереключательОбеспечениеУпр.Видимость = ИспользоватьПострочнуюОтгрузку И ЭтоЗаказ;
	Элементы.ПереключательОбеспечение.Видимость = ИспользоватьПострочнуюОтгрузку И ЭтоЗаказ;
	Элементы.НеЗадаватьВопросОбеспечение.Видимость = ИспользоватьПострочнуюОтгрузку И ЭтоЗаказ;
	Элементы.ЗаполнятьТоварыПоСоглашению.Видимость = ИспользоватьСоглашения
	               И Форма.ВариантОформленияДокументов <> ПредопределенноеЗначение("Перечисление.ВариантыОформленияДокументовПродажи.КоммерческоеПредложение");
	Элементы.ОтображатьРекомендацииКПокупке.Видимость = ИспользоватьСоглашения И ЭтоЗаказ И ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.СпособПрогнозированияПродаж.Видимость = ЭтоЗаказ И ИспользоватьСоглашения И ИспользоватьПланированиеПродаж И ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ПериодСбораСтатистики.Видимость = ИспользоватьСоглашения И ЭтоЗаказ И ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	Элементы.ДекорацияДней.Видимость = ИспользоватьСоглашения И ЭтоЗаказ И ИспользоватьРасширенныеВозможностиЗаказаКлиента;
	
	Если Не ЭтоЗаказ Тогда
		Форма.ОтображатьРекомендацииКПокупке = Ложь;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура СпособПрогнозированияПродажЗаполнитьСписокВыбора()
	
	СписокВыбора = Элементы.СпособПрогнозированияПродаж.СписокВыбора;
	СписокВыбора.Очистить();
	
	Для каждого ЭлементПеречисления Из Перечисления.СпособыПрогнозированияПродаж Цикл
		
		Если ЭлементПеречисления = Перечисления.СпособыПрогнозированияПродаж.ПоПланамПродаж
			И НЕ ПравоДоступа("Чтение",Метаданные.РегистрыНакопления.ПланыПродаж) Тогда
			
			Если СпособПрогнозированияПродаж = ЭлементПеречисления Тогда
				СпособПрогнозированияПродаж = Неопределено;
			КонецЕсли; 
			Продолжить;

		КонецЕсли; 
		
		СписокВыбора.Добавить(ЭлементПеречисления);
		
	КонецЦикла; 
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьГиперссылкуФискальноеОборудование()
	
	НастройкиПодключаемогоОборудования = Новый ФорматированнаяСтрока(НСтр("ru = 'Настройка'"),, 
		ЦветаСтиля.ГиперссылкаЦвет,, "НастроитьОборудование");
	
КонецПроцедуры

#КонецОбласти

#КонецОбласти

Связанные материалы