Довольно часто возникает ситуация когда нужно получить информацию где использовался (принимал участие) тот или иной объект. Причем мы (точнее пользователи) сами не знают что ищут, нужно получить информацию про все сущности, где использовался данный объект. Если у нас для большинства объектов установлен признак полнотекстового поиска, то можно воспользоваться им смотри мои статьи http://1clancer.ru/article/polnotekstovoj_poisk_i_nechetkij_poisk_720 и http://1clancer.ru/article/programmnoe_ispolzovanie_polnotekstovogo_poiska._733 .
А можно воспользоваться и другими инструментами запросом к базе, или критериями отбора. С помощи критериев отбора можно найти объект конфигурации. Например, мне понадобилось найти, где использовалась конкретная номенклатура, или в каких документах фигурировал конкретный человек. Критерии отбора создаются в дереве метаданных в ветке «Общие»
Сначала нужно указать НазваниеКритерия и тип данных
После чего перейти на закладку «Состав». 1с автоматически отберет те документы, и справочники где может встречаться ссылка на данный тип объекта. А это в том числе и реквизиты справочников и документов с неопределенным типом к таким относятся, например субконто 1, 2 и 3 на рисунке
Внизу. Как мы видим, отображаются объекты, входящие в критерий отбора, по ним и будет осуществляться поиск.
После создания критерия поиска его можно использовать в обработках и запросах. Например, нам нужно получить все документы, где фигурировал определенный человек, мы создали критерий отбора, указали все документы, где есть соответствующий реквизит, теперь мы в программе напишем
Списокдокументов =критерииотбора.УпоминанияОФизическомЛице.Найти(ФЛ); для каждого строка из списокдокументов цикл Сообщить(строка); конеццикла;
И получим список объектов:
Абдулов Юрій Володимирович
Ввод в эксплуатацию ОС ДО000000007 от 25.04.2011 15:01:55
Зарплата к выплате организаций ДО000000004 от 17.05.2011 00:00:00
Зарплата к выплате организаций ДО000000001 от 15.04.2011 00:00:00
Данные взяты из демонстрационной конфигурации БдУ.
Как и другие объекты, метаданных критерии отбора тоже могут быть использованы в запросе. Для того чтобы смоделировать запрос к базе не обязательно заходить в конфигуратор и создавать новую обработку можно воспользоваться обработкой КонсольЗапросов и в ней написать простенький запрос.
Как видим запрос постой
ВЫБРАТЬ УпоминанияОФизическомЛице.Ссылка ИЗ КритерийОтбора.УпоминанияОФизическомЛице(&ФИзЛицо) КАК УпоминанияОФизическомЛице
Единственное на что следует обратить внимание так это на то, что в критерий отбора передается параметр с типом справочник.физичискиелица. Думаю этот механизм будет востребован в большинстве конфигураций, поскольку он является очень мощным и универсальным