Кассы / Модуль объекта

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

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

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

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

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

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

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

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

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

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

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

#КонецЕсли

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