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