Складские ячейки / Модуль объекта

файл
#Если НЕ МобильныйАвтономныйСервер Тогда
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ПередЗаписью(Отказ)

	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);

	Если Не ЭтоГруппа Тогда
		
		Если ТипСкладскойЯчейки <> Перечисления.ТипыСкладскихЯчеек.Хранение
				И ТипСкладскойЯчейки <> Перечисления.ТипыСкладскихЯчеек.Архив
			Или СкладыСервер.ИспользоватьАдресноеХранениеСправочно(Владелец, Помещение)
				И НЕ СкладыСервер.ИспользоватьАдресноеХранение(Владелец, Помещение,,Ложь) Тогда
			
			ОбластьХранения 	= Справочники.ОбластиХранения.ПустаяСсылка();
			УровеньДоступности 	= 0;
			Типоразмер  		= Справочники.ТипоразмерыЯчеек.ПустаяСсылка();
			МаксимальныйКоэффициентНаполненностиПоВесу 		= 0;
			МаксимальныйКоэффициентНаполненностиПоОбъему    = 0;
			
			Если СкладыСервер.ИспользоватьАдресноеХранениеСправочно(Владелец, Помещение)
					И НЕ СкладыСервер.ИспользоватьАдресноеХранение(Владелец, Помещение,,Ложь) Тогда
				ТипСкладскойЯчейки  = Перечисления.ТипыСкладскихЯчеек.ПустаяСсылка();
			Иначе
				РабочийУчасток  	                         = Справочники.РабочиеУчастки.ПустаяСсылка();
				ОбластьХранения                              = Справочники.ОбластиХранения.ПустаяСсылка();
				ПорядокОбхода 		                         = 0;
				УровеньДоступности                           = 0;
				МаксимальныйКоэффициентНаполненностиПоВесу   = 0;
				МаксимальныйКоэффициентНаполненностиПоОбъему = 0;
			КонецЕсли;
			
		Иначе
			Если УровеньДоступности = 0 Тогда
			
				УровеньДоступности = 1;
				
			КонецЕсли;
			
			Если МаксимальныйКоэффициентНаполненностиПоВесу = 0 Тогда
				
				МаксимальныйКоэффициентНаполненностиПоВесу = 100;
				
			КонецЕсли;
			
			Если МаксимальныйКоэффициентНаполненностиПоОбъему = 0 Тогда
				
				МаксимальныйКоэффициентНаполненностиПоОбъему = 100;
				
			КонецЕсли;
			
		КонецЕсли;	
		
	КонецЕсли;
	
КонецПроцедуры // ПередЗаписью()

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
	СтруктураПараметров = Новый Структура("Склад,Помещение",Владелец, Помещение);
	
	МассивНепроверяемыхРеквизитов = Новый Массив;
	
	Если Не СкладыСервер.ИспользоватьАдресноеХранение(Владелец, Помещение,,Ложь) Тогда
		
		Если Не ЭтоГруппа Тогда
			МассивНепроверяемыхРеквизитов.Добавить("ТипСкладскойЯчейки");
		КонецЕсли;
		
		Если Не СкладыСервер.ИспользоватьАдресноеХранениеСправочно(Владелец, Помещение) Тогда
			
			ТекстСообщения = НСтр("ru='По складу ""%Склад%"" не используется адресное хранение!'");
			ТекстСообщения = СтрЗаменить(ТекстСообщения,"%Склад%",СкладыСервер.ПолучитьПредставлениеСклада(Владелец,Помещение));
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,ЭтотОбъект,"Склад","Объект",Отказ);
		КонецЕсли;
	КонецЕсли;
	
	Если Не СкладыСервер.ИспользоватьСкладскиеПомещения(Владелец) Тогда
		
		МассивНепроверяемыхРеквизитов.Добавить("Помещение");
		
	ИначеЕсли ЗначениеЗаполнено(Родитель) Тогда
		
		РеквизитыРодителя = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Родитель,Новый Структура("Помещение"));
		
		Если РеквизитыРодителя.Помещение <> Помещение Тогда
			ТекстСообщения = НСтр("ru='В группе ""%Группа%"" все ячейки должны быть по помещению ""%Помещение%""'");
			ТекстСообщения = СтрЗаменить(ТекстСообщения,"%Помещение%",РеквизитыРодителя.Помещение);
			ТекстСообщения = СтрЗаменить(ТекстСообщения,"%Группа%",Родитель);
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,ЭтотОбъект,"Помещение","Объект",Отказ);
		КонецЕсли;
	КонецЕсли;
	
	Если ИспользованиеПериодичностиИнвентаризацииЯчейки 
		<> Перечисления.ВариантыИспользованияПериодическойИнвентаризацииЯчеек.ИспользоватьНастройкиЯчейки Тогда
		
		МассивНепроверяемыхРеквизитов.Добавить("КоличествоДнейМеждуИнвентаризациями");
			
	КонецЕсли;
	
	ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
	
КонецПроцедуры

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

#КонецЕсли
#КонецЕсли

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