(8) всё проще:
Функция МассивДоступныхСчетовДенежныхСредств(Реквизиты, ДоступныеСчетаУчета)
МассивВозврата = Новый Массив;
Если Реквизиты = Неопределено Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаБезналичныхДенежныхСредств);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаНаличныхДенежныхСредств);
ИначеЕсли ТипЗнч(Реквизиты.АналитикаДенежныхСредств) = Тип("СправочникСсылка.БанковскиеСчетаОрганизаций") Тогда
Если Реквизиты.ТипБанковскогоСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Депозитный") Тогда
Если Не ЗначениеЗаполнено(Реквизиты.ВалютаДенежныхСредств) Тогда
МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ДепозитныеСчетаВал"));
МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ДепозитныеСчета"));
КонецЕсли;
ИначеЕсли Реквизиты.ТипБанковскогоСчета = ПредопределенноеЗначение("Перечисление.ТипыБанковскихСчетов.Расчетный") Тогда
Если Не ЗначениеЗаполнено(Реквизиты.ВалютаДенежныхСредств) Тогда
МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.ВалютныеСчета"));
МассивВозврата.Добавить(ПредопределенноеЗначение("ПланСчетов.Хозрасчетный.РасчетныеСчета"));
КонецЕсли;
Иначе
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаБезналичныхДенежныхСредств);
КонецЕсли;
ИначеЕсли ТипЗнч(Реквизиты.АналитикаДенежныхСредств) = Тип("СправочникСсылка.Кассы") Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаНаличныхДенежныхСредств);
КонецЕсли;
Если МассивВозврата.Количество() = 0 Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаБезналичныхДенежныхСредств);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивВозврата, ДоступныеСчетаУчета.СчетаНаличныхДенежныхСредств);
КонецЕсли;
Возврат МассивВозврата;
КонецФункции