Ну извини что не быстро, на мыло тебе скинул обработку, текст модуля выкидываю сюда для обсуждения, мож где накосячил
Процедура Сформировать()
Запрос= СоздатьОбъект("Запрос");
ТекстЗапроса = "Спр = Справочник.Контрагенты.ТекущийЭлемент;
|Группировка Спр Без Групп;";
для ааа = 1 По Спс.РазмерСписка() Цикл
ТекстЗапроса = ТекстЗапроса + "Условие (Спр."+Спс.ПолучитьЗначение(ааа)+" в "+ Спс.Пометка(ааа) +");";//Тут можно и "=" вместо "в"
КонецЦикла;
Если Лицо.Выбран() = 1 ТОгда
ТекстЗапроса = ТекстЗапроса + "Условие(Спр.ОтветственноеЛицо в Лицо);";
КонецЕсли;
Запрос.Выполнить=(ТекстЗапроса);
Запрос.Выгрузить(ТЗ);
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.Вывестисекцию("Шапка");
Тз.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
Для К = 1 По 5 Цикл
Если ТЗ.Спр.ПолучитьАтрибут("Рассылка"+К) = 1 Тогда//Тут может понадобится создать объект с поиском по Тз.Спр, а может и так прокатить
Таб.ВывестиСекцию("К"+К);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Таб.Опции(0,0,0,0);
Таб.Показать("Отчет","");
КонецПроцедуры
Спс.ДобавитьЗначение("AMP Netconnect");
Спс.ДобавитьЗначение("Mutlusan");
Спс.ДобавитьЗначение("Shaefer");
Спс.ДобавитьЗначение("EatonMGE");
Спс.ДобавитьЗначение("EatonPowerware");
Спс.ДобавитьЗначение("TYAN");
Спс.ДобавитьЗначение("Chenbro");
Добавлено:
Проверено на произвольном справочнике с использованием списка с пометками вместо 16 "галочек"
Procedure Exec()
Ref = CreateObject("Reference.ОКСМ");
Ref.SelectItems();
While Ref.GetItem() = 1 do
for i = 1 to N do
Flag1 = F.Check(i);
Banner1 = Ref.GetAttrib("Галочка"+String(i));
for k = 1 to N do
Flag2 = F.Check(k);
Banner2 = Ref.GetAttrib("Галочка"+String(k));
if Flag1*Flag2 = 1 then
if Banner1*Banner2 = 1 then
Message(String(i)+ " "+String(k)+ " Включить в выборку "+Ref.Description)
endif;
endif;
enddo
enddo
enddo
EndProcedure
//********************************************************
N = 3; //количество "галочек"
for i = 1 to N do
F.AddValue("Галочка"+String(i)) // F- список с пометками на форме
enddo
PS. Увы, в обработке не работает Форма.ПолучитьАтрибут(ИмяГалочки) - выдает НеизвестныйОбъект
Добавлено: Ну и надо еще добавить, не надо ли прекратить проверку, если условие уже соблюдено
Точно-точно, список гораздо лучше тучи галок. Ну у меня то-же самое, только запросом.
а вот до такого я бы не додумался
Кстати - в моем написании будут выводится контрагенты ТОЛЬКО с таким набором галочек, то есть если например нв отчете помечены пять галок, а в элементе шесть, то фильтр его отсечет.