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