Если у документа есть поле (реквизит), то по его значению можно отобрать все документы, в которых он встречается.
Это легко сделать с помощью запроса.
Вопросы начинаются, когда мы хотим отобрать разные документы по одному значению. Например, у нас есть контрагент (хороший парень) и мы хотим посмотреть все документы, которые были с ним оформлены – и отгрузки, и платежки.
Как это сделать?
Критерии отбора 1С
Критерии отбора 1С позволяют искать разные объекты 1С – справочники, документы — по значению.
Например в разных документах есть поле Контрагент. Мы можем сделать критерий отбора 1С ПоискПоКонтрагенту и находить любые документы, в которых указан определенный контрагент.
Критерии отбора 1С находятся в дереве объектов конфигурации в ветке Общие/Критерии отбора 1С.
В свойствах нужно указать тип значения, которое будем искать. Например – справочник контрагенты (если будем искать контрагента) или справочник договоры контрагентов (если будем искать договор).
После этого на закладке Состав нужно выбрать список справочников и документов, в которых нужно искать.
1С покажет Вам все справочники и документы, в которых есть поля с выбранным Вами типом. Нужно установить галочки для тех полей, которые нужно учитывать при поиске.
Для работы пользователя с критерием отбора 1С нужно создать хотя бы одну форму. Критерии отбора 1С будут доступны во всех выбранных в Составе документов по кнопке Перейти, поэтому для работы нужна форма.
Использование критериев отбора 1С
После создания критерия отбора 1С его можно использовать в коде программ на языке 1С.
Рассмотрим пример:
- Мы создали критерий отбора 1С
- В типе мы указали Справочник.Контрагенты
- В составе указали все документы, установив галочки на реквизиты шапки этих документов с названием Контрагент.
В тексте программы на языке 1С мы можем запрограммировать поиск всех документов по контрагенту следующим способом:
СписокДокументовКонтрагента = КритерииОтбора.ДокументыКонтрагента.Найти( ИскомыйКонтрагент );
Аналогичный поиск можно сделать через запрос со следующим текстом:
Запрос = Новый Запрос();
Запрос.ТекстЗапроса = "ВЫБРАТЬ Ссылка ИЗ КритерийОтбора. ДокументыКонтрагента( &ИскомыйКонтрагент )";
Запрос.УстановитьПараметр("ИскомыйКонтрагент", ИскомыйКонтрагент);
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.