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