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