Як зберегти умову відбору у реквізитах довідника

Допустимо, необхідно обмежити вибір реквізитів залежно від інших реквізитів.

Наприклад, залежно від контрагента обмежити вибір номенклатури, яка може бути продана. Або обмежити перелік допустимих рахунків обліку залежно від номенклатури. Як найпростіше це зробити?

Якщо обмеження просте, наприклад, кожен контрагент може закуповувати номенклатуру зі своєї групи, достатньо додати в довідник контрагентів реквізит " Номенклатура " і зберігати у ньому групу, яка контрагенту доступна. На жаль, зазвичай умови відбору складніші і одного реквізиту недостатньо. Доводиться зберігати кілька полів, типи порівняння, потім містити складні умови.

Насправді все простіше.

У 1С є спеціальний тип даних, який призначений для зберігання відборів і так називається "Відбір".

Чарівність цього в тому, що він сам підбирає можливі обмеження. Тобто. якщо Вам потрібен відбір за номенклатурою, то користувач побачить доступні реквізити довідника номенклатура і в залежності від обраного реквізиту зможе вказати допустиму умову відбору (Рівне, Не рівне, У групі, У списку, Містить та ін). Залежно від умови відбору користувач зможе ввести значення фільтра (фіксоване значення, інтервал, список) потрібного типу (цифрове, рядок, булево, елемент довідника).

Користувач може накладати кілька обмежень різні реквізити. Ці обмеження діятимуть спільно.

Отже, як ним скористатися.

Для прикладу візьмемо найпростіше наведене вище завдання "Залежно від контрагента обмежити вибір номенклатури, яка йому може бути продана"

1. До довідника "Контрагенти" додаємо реквізит "Умови Відбору" типу "СховищеЗначень". У ньому зберігатимемо умови відбору на довідник "Номенклатура". (Вірніше, зберігатимемо будівник звіту, оскільки тип "Відбір", за даними синтакс-помічника, не входить до серіалізованих)

2. Додаємо на форму довідника контрагентів реквізит дані відбору з типом "Відбір" та пов'язуємо його з табличним полем на формі.

3. До форми елемента довідника "Контрагенти" додаємо процедури:

3.1 "ПріВідкриття" - у ньому за збереженим будівельником звітів заповнюємо відбори.

3.2. "ПередЗаписом" - у ньому за відбором формуємо будівельник та зберігаємо його в елементі довідника.

довідника

4. У форму документа для елемента "Номенклатура" табличній частині додаємо обробник події "Початок Вибору", в якій за вибраним контрагентом накладаємо умову на довідник "Номенклатура"

В результаті при виборі номенклатури в документ реалізація у нас відображається лише та номенклатура, яка доступна контрагенту, вказаному в документі.

умову

Вивантаження бази з прикладом у додатку до статті.

У базі 2 довідники ("Контрагенти" та "Номенклатура") та один документ "Реалізація товарів". Для контрагента можна вказати фільтр номенклатуру, яка буде доступна в документі реалізації.

Працює у звичайному інтерфейсі. Але за необхідності цю ідею можна аналогічно реалізувати і керованих формах.