Настройки РМК / Модуль объекта

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

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	
	РабочееМесто = МенеджерОборудованияВызовСервера.ПолучитьРабочееМестоКлиента();
	
КонецПроцедуры

Процедура ПриКопировании(ОбъектКопирования)
	
	РабочееМесто = МенеджерОборудованияВызовСервера.ПолучитьРабочееМестоКлиента();
	
КонецПроцедуры

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

	Для Каждого СтрокаТЧ Из ПлатежныеСистемы Цикл
		Если Не ЗначениеЗаполнено(СтрокаТЧ.ДоговорПодключенияКПлатежнойСистеме) Тогда
			
			ТекстОшибки = НСтр("ru='Не заполнено поле ""Договор""'");
			АдресОшибки = НСтр("ru='в строке %НомерСтроки% списка ""Платежные системы""'");
			АдресОшибки = СтрЗаменить(АдресОшибки, "%НомерСтроки%", СтрокаТЧ.НомерСтроки);
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
				ТекстОшибки + " " + АдресОшибки,
				ЭтотОбъект,
				ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("ПлатежныеСистемы", СтрокаТЧ.НомерСтроки, "ДоговорПодключенияКПлатежнойСистеме"),
				,
				Отказ);
			
		КонецЕсли;
	КонецЦикла;
	
	КлючевыеРеквизитыТабличнойЧастиКассыККМ = Новый Массив;
	КлючевыеРеквизитыТабличнойЧастиКассыККМ.Добавить("КассаККМ");
	КлючевыеРеквизитыТабличнойЧастиКассыККМ.Добавить("ИспользоватьБезПодключенияОборудования");
	КлючевыеРеквизитыТабличнойЧастиКассыККМ.Добавить("ПодключаемоеОборудование");
	ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(
		ЭтотОбъект,
		"КассыККМ",
		КлючевыеРеквизитыТабличнойЧастиКассыККМ,
		Отказ,,
		Ложь);
		
	ОбщегоНазначенияУТКлиентСервер.ПроверитьНаличиеДублейЗначенийМассива(
		ЭтотОбъект["КассыККМ"].ВыгрузитьКолонку("ПодключаемоеОборудование"),
		Отказ,
		"Кассы ККМ",
		"Оборудование",
		Истина);
	
	КлючевыеРеквизитыТабличнойЧастиКассы = Новый Массив;
	КлючевыеРеквизитыТабличнойЧастиКассы.Добавить("Касса");
	ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(
		ЭтотОбъект,
		"Кассы",
		КлючевыеРеквизитыТабличнойЧастиКассы,
		Отказ,,
		Ложь);
		
	КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы = Новый Массив;
	КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы.Добавить("ЭквайринговыйТерминал");
	ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(
		ЭтотОбъект,
		"ЭквайринговыеТерминалы",
		КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы,
		Отказ,,
		Ложь);
	
	КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы = Новый Массив;
	КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы.Добавить("ДоговорПодключенияКПлатежнойСистеме");
	ОбщегоНазначенияУТ.ПроверитьНаличиеДублейСтрокТЧ(
		ЭтотОбъект,
		"ПлатежныеСистемы",
		КлючевыеРеквизитыТабличнойЧастиЭквайринговыеТерминалы,
		Отказ,,
		Ложь);

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

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

	ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
	
	Наименование = Строка(ЭтотОбъект.РабочееМесто);
КонецПроцедуры

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

#КонецЕсли

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