Гендин.RU
есть что сказать...
Also Known As DagPages ;-) Rambler's Top100
Теперь новые Будни - новый вид сайта
Переходите на главную страницу!
1C:F.A.Q. Часто задаваемые вопросы по программам 1С.
Конфигурирование. Администрирование.
С чего начать? Где я?  |  Что дальше?
Отбор в журнале по двум и более реквизитам
Диагноз:

Надо отфильтровать журнал документов по двум или более реквизитам. Например, выбрать только расходные накладные, причем только с определенным клиентом. Да еще и чтобы тип учета, при этом, был определенным.

Анамнез:

1С:Предприятие версий 7.5 и 7.7 накладывает ряд ограничений на фильтрацию (отбор) в журналах документов. Во-первых, отбор работает только в журналах типа "общий", т.е. по умолчанию будут отображаться документы всех видов. Во-вторых, отбор возможен только по одному признаку:
отобрать документы только одного вида
или
отобрать документы по значению графы отбора
или
отобрать документы по значению общего реквизита, для которого установлен признак Отбор.

Рецепт:

Указанное ограничение можно обойти с помощью составного реквизита. Проще всего это объяснить на примере.

Предположим, надо отбирать только счета, причем по отдельным клиентам. Прежде всего надо сделать новый общий текстовый реквизит. При записи документов в этот реквизит надо записывать примерно такую строку:
Вид()+"; "+Контрагент.Код

После этого, в общем журнале надо дать возможность пользователю установить новый отбор. Например, разместить элемент ВыбКонтр для выбора контрагента, а в процедуре, вызываемой после выбора, написать примерно так:
УстановитьОтбор("ИмяРеквизита","Счет; "+ВыбКонтр.Код);

Следует иметь ввиду, что при использовании таких ссылок на элементы справочников, их реквизиты, используемые для отбора, должны быть уникальны и неизменны.

Для большей надежности следует использовать внутренний идентификатор элемента справочника, который можно получить с помощью функции ЗначениеВСтрокуВнутр().

© 2000-2004, Текст и оформление Дмитрий Гендин 1C:TOP-100 КЛУБ ПРОФЕССИОНАЛОВ 1С Rambler's Top100