Відбір та сортування даних у "1С:Підприємстві 8.1"
Список – невід'ємний атрибут відображення інформації у будь-якій конфігурації, створеній на платформі "1С:Підприємство 8.1". Для ефективної роботи зі списками, що містять різноманітні дані, у програмах на платформі "1С:Підприємство 8.1" реалізовано зручні та потужні механізми відбору та сортування. Про особливості їх використання розповідає В.В. Риболовля, фірма "1С".
Зміст
Списки
З якими списками стикаються користувачі? Це можуть бути списки документів у відповідних журналах. Практично будь-який довідник, заповнений даними, подається у вигляді списку, в якому, як правило, є ієрархія (групи-папки чи підлеглі елементи). Нерідко для вибору будь-якого елемента програма формує списки автоматично або підкоряючись закладеної логікою розробниками.
Практично у всіх списках можна використовувати механізми відбору (якщо це явно не заборонено розробником) та різноманітного сортування (рис. 1). У програмі ці механізми нерозривно пов'язані друг з одним. Розглянемо, як їх використовувати правильно та ефективно.
Механізм сортування
Навіщо потрібен механізм сортування? По-перше, він, як випливає з назви, дозволяє відсортувати список за потрібним критерієм.
По-друге, у платформі "1С:Підприємство 8.1" активно використовується механізм швидкого пошуку. Цей механізм дозволяє швидко знайти у списку потрібний елемент, набравши перші символи (рис. 2). Але в динамічних списках (наприклад, список елементів довідника або список документів) швидкий пошук працює тільки за реквізитами, за якими можна сортувати.
Переглянути всі доступні для сортування реквізити списку можна, відкривши вікно "Відбір та сортування".Це вікно, як правило, доступне на панелі дій (рис. 3) або в контекстному меню списку, що відкривається правою кнопкою миші (рис. 4). У вікні "Відбір та сортування" потрібно перейти на закладку "Сортування", де показані всі доступні реквізити, за якими можливе сортування.
На малюнку 3 видно, що для списку документів "Реалізації товарів та послуг" доступне сортування за двома реквізитами: "Дата" та "Номер". Однак інформативність вікна сортування цим не обмежується. Тут можна подивитися, яке сортування включено в даний момент (ліва частина вікна) та список усіх доступних для сортування реквізитів (права частина). Тут же можна налаштувати потрібне сортування та його порядок. Зверніть увагу: поточний реквізит сортування буде позначений у списку спеціальним символом – стрілочкою, що позначає напрямок сортування. Три приклади різного сортування (у т. ч. комбінованого) та способи його відображення у списку показані на малюнку 5.
Зауважимо, що нижній приклад ілюструє можливість використання комбінованого сортування (одночасно з кількох реквізитів). У нашому випадку, це сортування за датою за спаданням (найстаріші дати внизу) та за номерами за зростанням (найбільші номери внизу).
У кожному списку можна зберегти потрібне сортування. Достатньо включити галочку "Використовувати цю настройку сортування під час відкриття" та натиснути "ОК". Система запам'ятає налаштування та при наступному відкритті цього списку встановить збережене сортування.
Швидко відсортувати список за потрібним реквізитом можна, клацнувши мишкою по шапці з назвою цього реквізиту.
Наприклад, у нашому випадку, можна клацнути по реквізиту "Дата" (включиться сортування дат за зростанням, і можна буде використовувати швидкий пошук за датою) або за реквізитом "Номер" (переключається сортування за номерами за зростанням, після чого можна швидко шукати по номеру). Інвертувати сортування теж просто - достатньо повторно натиснути на той же реквізит у шапці списку.
Механізм відбору
Відбір - потужний механізм платформи "1С:Підприємство 8.1", який дозволяє ефективно працювати зі списками, навіть якщо вони містять не один десяток або сотня тисяч елементів. Спочатку розглянемо роботу механізму відбору у випадку.
Практично скрізь, де є список (зазвичай у вигляді таблиці), можна використовувати механізм відбору, який активується або відповідною кнопкою на панелі дій, або в контекстно-залежному меню списку (рис. 3 і 4). Якщо вибрано потрібний список, відкриється вікно "Відбір та сортування". У ньому буде відображено всі можливі види доступних для відбору реквізитів. Список доступних елементів відбору залежить від того, де цей вибір буде використаний. Загалом потрібно знайти один або кілька необхідних елементів для відбору, вказати значення та активувати налаштовану комбінацію критеріїв.
Список можливих умов того чи іншого виду відбору залежить від типу елементів, що використовуються в ньому. Наприклад, для чисел і дат буде доступна вказівка діапазонів, для рядків - пошук підрядка (умови "Утримує"/"Не містить"), а для елементів довідників - заповнення списків та аналіз ієрархії.
Якщо одночасно вказати кілька критеріїв відбору, у списку будуть відображені лише такі елементи, які відповідають усім зазначеним критеріям.
Механізми відбору та сортування на прикладах
Спробуємо вирішити кілька завдань у демонстраційній базі ("Бухгалтерія підприємства", редакція 1.6). Наприклад, відобразимо документи, сформовані для контрагента "Саймон та Шустер ТОВ" у журналі "Документи покупців". Відразу обмовимося, що описуватимемо стандартні для платформи "1С:Підприємство 8.1" правила та логіку ведення відбору, без прив'язки до будь-якої конкретної конфігурації та додаткових сервісних можливостей, в ній реалізованих.
Отже, відкриваємо журнал документів "Документи покупців". У стандартному стані без увімкненого відбору на екран виводяться всі документи всіх покупців (навіть у демонстраційній базі це займає не одну сторінку).
Нам потрібно швидко подивитися всі документи контрагента "Саймон та Шустер ТОВ". Реалізується завдання в такий спосіб - відкривається вікно відбору, у елементі " Контрагент " вибирається контрагент " Саймон і Шустер ТОВ " з довідника (рис. 6) і натискається " ОК " . Завдання вирішене (рис. 7).
Для швидкого використання необхідного відбору досить відразу приступати до вибору необхідного критерію. Ставити галочку навпроти використовуваного відбору не потрібно. Програма зробить це сама після того, як буде вказано потрібний критерій. Швидко застосувати налаштовані критерії відбору можна за допомогою комбінації клавіш Ctrl+Enter*.
Примітка:
* Докладніше про "гарячі" клавіші читайте у статті «Гарячі» клавіші спростять роботу в «1С:Підприємстві 8».
Зверніть увагу ще й на те, що при вказівці значень в елементах відбору (у нашому прикладі - контрагент "Саймон та Шустер ТОВ"), у більшості випадків працюватиме механізм швидкого підбору, широко поширений у платформі "1С:Підприємство 8.1".У нашому прикладі достатньо було набрати перші символи назви контрагента або його код прямо в полі значення відбору, натиснути Enter або Tab і система автоматично "вгадала" потрібний нам елемент довідника.
Майте на увазі – швидкий підбір суттєво прискорює вибір відомих вам значень. Використовуйте його, де це можливо.
Відобразимо список номенклатури, в назвах яких міститься слово "Чайник". Для цього відкриваємо довідник "Номенклатура", викликаємо вікно відбору, в елементі "Найменування" вибираємо умову порівняння "Містить" та вказуємо необхідне слово (рис. 8).
Вигляд порівняння "Вміст" вибрано не випадково. Саме він дозволяє знайти потрібне слово (або його частину) у будь-якому місці найменування номенклатури. Якщо залишити вигляд порівняння "Рівне", у списку будуть відображені лише такі елементи номенклатури, які називаються точно так, як написано запит. А таких у нашій демобазі немає (тобто не було відображено жодного елемента).
Так як у нашій демобазі у номенклатури є реквізит "Повне найменування", воно є у списку доступних відборів окремою позицією. Але при цьому, як умови порівняння, доступно лише "Утримує"/"Не містить". Причина в тому, що реквізит "Повне найменування" у нашій демобазі – рядок необмеженої довжини.
Якщо шукати не за найменуванням, а за повним найменуванням, галочку використання відбору за найменуванням краще зняти. Інакше відбір буде використаний і за найменуванням, і за повним найменуванням, що не завжди може виявитися необхідним (рис. 9).
Для зручності роботи з елементами довідника при використанні відборів краще на якийсь час відключати відображення ієрархії (рис. 10).
Як третє завдання переглянемо в журналі документів "Документи покупців" лише документи "Реалізація товарів та послуг". Вирішення цього завдання продемонструє особливість одного з видів відбору, доступного лише в журналах документів.
Відкриваємо журнал "Документи покупців" та вказуємо в елементі відбору "Вид документа" документ "Реалізація товарів та послуг". Програма сама надає можливість вибору певного виду документа з тих, що включені до цього журналу. Для цього є персональна кнопочка на панелі дій (рис. 11).
Аналогічно відбору за видом документів платформа автоматично запропонує елемент відбору "Структура підпорядкованості", якщо конфігурації налаштовані взаємозв'язки між документами.
Спробуємо переглянути в журналі документів "Документи покупців" лише документи "Рахунок-фактура" для контрагентів, які перебувають у групі "Покупці" довідника. Це завдання схоже на першу з тим лише відмінністю, що ми не вказуємо конкретного контрагента, а аналізуємо рахунки-фактури цілої групи контрагентів, які знаходяться у групі "Покупці".
Завдання існує кілька способів реалізації. Розглянемо найефективніший. Відкриваємо журнал "Документи покупців", вказуємо в елементі відбору "Вигляд документа" документ "Рахунок-фактура виданий". Після цього елементі відбору " Контрагент " вказуємо вид порівняння " У групі " . Вибираємо тип значення "Контрагенти" та відкриваємо форму вибору контрагентів. У ній обираємо групу "Покупці" (рис. 12).
Такий вид порівняння передбачає, що умові задовольнятимуть усі елементи довідника, які у зазначеній групі.Причому навіть якщо всередині цієї групи є підгрупи, всі вкладені туди елементи теж задовольнятимуть такий критерій.
А тепер ускладнимо завдання: переглянемо в журналі документів "Документи покупців" лише документи "Рахунок-фактура", але при цьому потрібно переглянути документи і для покупців, і для постачальників. Вирішуємо її аналогічно попередньої, за винятком одного критерію відбору, що накладається.
Людською мовою завдання формулюється так: "відобразити всі необхідні документи за всіма контрагентами, що знаходяться в групах довідника Покупці, Постачальники, Постачальники на реалізацію". Реалізується це просто - за умови відбору "Контрагент" вибираємо "У групі зі списку" (рис. 13). Після цього стає доступним механізм заповнення списку, який можна додати потрібні групи (або елементи) довідника. При цьому список можна заповнити вручну. За аналогією з рішенням попередньої задачі знайти потрібну групу і вибрати її, повторивши це для кожного нового елемента списку. Однак доцільніше скористатися зручним механізмом підбору, що автоматично реалізується програмою. За допомогою підбору набагато простіше та швидше заповнити список потрібними складовими. Після того, як список заповнений, натискаємо "ОК" та активуємо налаштовані критерії відбору. Завдання вирішено.
Відмінність умови відбору "У групі зі списку" від умови "У списку" полягає в тому, що в першому випадку умова виконається для всіх елементів довідника, які явно зазначені в списку, або знаходяться всередині зазначених у списку груп. Другий випадок просто вказує програмі звірятися зі списком при відборі.Тобто якщо ви вкажете там групу, то до відбору потрапить сама група (як самостійний елемент довідника), а елементи, що до неї входять, критерію відбору задовольняти не будуть. Вирішувати задачу можна було і "в лоб" - вибрати умову "У списку" і за допомогою добору додати туди всі елементи, що містяться в необхідних групах.
Умови відбору "Не у списку" та "Не в групі зі списку" дозволяють вказати потрібні набори даних, які не повинні потрапляти у відбір. Тобто вирішувати завдання можна було б і від зворотного – вказати "Не в групі зі списку" і додати туди всі групи довідника, крім трьох необхідних (Покупці, Постачальники, Постачальники на реалізацію).
І, нарешті, відобразимо у документі "Реалізація товарів та послуг" з номером ТДН00002 у табличній частині лише номенклатуру, що містить у найменуваннях слово "СТИНОЛ". Це завдання дозволить побачити універсальність самого механізму відбору, а також наскільки різноманітним може бути його використання. Завдання ґрунтується на реальних ситуаціях, коли, наприклад, у табличній частині накладної кілька сотень (а то й тисяч) рядків і треба швидко проаналізувати її склад. У нашій демобазі є документ "Реалізація товарів та послуг" з номером ТДН00002, який має в табличній частині кілька рядків. Незважаючи на те, що в документі кнопок використання відборів немає, виклик відбору доступний через контекстне меню (права кнопка миші).
Далі накладаємо критерії відбору у розрізі Номенклатури. Тут виникає інше питання - як відібрати "СТИНОЛ", якщо умови вибору номенклатури досить сильно обмежені (доступно "Рівне", "Не рівно", "У списку" і "Не в списку"). Вирішити завдання можна і за таких умов.Вибираємо умову "У списку", відкриваємо вже знайоме вікно заповнення списку, використовуємо добір номенклатури (рис. 14, 1). У списку номенклатури може бути велика кількість елементів, тому шукатимемо очима потрібні позиції. Скористайтеся відбором у списку номенклатури, вказавши умову відбору "Утримує" для найменування номенклатури (рис. 14, 2).
Після цього залишається лише додати відібрані позиції до списку відбору документа та застосувати критерії відбору.
Корисні функції механізму відбору
Розглянемо ще кілька моментів, пов'язаних так чи інакше з відборами у системі "1С:Підприємство 8.1".
У списках конфігураційних об'єктів, де використовується прив'язка до дат (наприклад, списки документів), і в журналах документів можна використовувати швидкий відбір по діапазону дат. Для цього достатньо натиснути відповідну кнопку "Параметри періоду" на панелі дій (або вибрати в контекстному меню) (мал. 15). У такий спосіб можна в кожному списку індивідуально регулювати критерій відображення елементів за датами.
Швидко встановити відбір за значенням у поточній комірці списку можна, натиснувши кнопку "Відбір за значенням у поточній колонці" (рис. 16). При натисканні на цю кнопку буде встановлено відбір поточного значення в колонці. Ця функція працює тільки для колонок, за реквізитами яких можна встановлювати відбори. Якщо у списку вже використовується будь-який відбір, новий буде приєднано до нього. Причому кнопка стає активною для цієї колонки. Скасувати такий відбір можна аналогічно – "віджавши" кнопку у відповідній колонці.
Ще одна корисна властивість механізму відборів – ведення історії відборів (рис. 17).Програма запам'ятовує, які відбори були встановлені, тому можна швидко повернутися до будь-якого з них, просто вибравши його зі списку. До речі, у вікні "Відбір та сортування" зверніть увагу на кнопку "Відбори" (рис. 6). Натиснувши на цю кнопку, ви потрапите в інтерфейс, в якому можна зберігати та відновлювати налаштування відборів, щоб можна було до них повернутися (мал. 18).
І остання функція – це скасування всіх відборів (рис. 19). Натисканням кнопки "Вимкнути відбір" вимикаються всі відбори, встановлені у списку. Аналогічної дії можна досягти, відкривши вікно "Відбір та сортування" та знявши галочки навпроти всіх активних елементів.
У програмі також є можливість швидкого пошуку за номером документа у списках документів чи журналах. Викликається ця можливість кнопкою "Пошук за номером" (рис. 20) та дозволяє знайти потрібний документ, гнучко налаштувавши параметри пошуку. Знайдені документи за вказаними критеріями відображаються у нижній частині вікна цього сервісу, і можна перейти до потрібного документа.
Інструкція з налаштування звітів у режимі користувача на прикладі "1С:ЗУП" ред. 3
Просте налаштування викликається через кнопку Налаштування, у звіті можна встановити відбори, наприклад підрозділ, посаду, співробітник. У кожному звіті вони можуть бути різними.
РОЗШИРЕНЕ НАЛАШТУВАННЯ ЗВІТІВ
Розширене налаштування звітів можна увімкнути через кнопку Налаштування - Вигляд - Розширений.
Поле "Відбори". Розширене налаштування відборів дозволяє додавати/вилучати відбори, редагувати існуючі.
Подана у вигляді таблиці з наступними полями:
- Поле – поле, яким виробляється відбір.
- Умова - варіант відбору, можливі значення:
- Рівно – відбір лише за вибраним значенням поля;
- Не одно - відбір за всіма значеннями поля, виключаючи обране;
- У списку - відбір за списком значень поля;
- Не у списку – відбір за всіма значеннями поля, крім вибраного списку;
- У групі – відбір за всіма значеннями поля, що входять до обраної групи (якщо вибрано елемент, аналогічно умові Рівно);
- Не в групі - відбір за всіма значеннями поля, що не входять до обраної групи (якщо обраний елемент, аналогічно умові Не дорівнює);
- У групі зі списку - відбір за всіма значеннями поля, що входять до груп із вибраного списку (якщо вибрано лише елементи, аналогічно умові У списку);
- Не в групі зі списку - відбір за всіма значеннями поля, які не входять до груп з вибраного списку (якщо вибрано лише елементи, аналогічно умові Не в списку);
- Заповнено - відбір за всіма непустими значеннями поля;
- Не заповнено - відбір за всіма порожніми значеннями поля;
- Значення – значення відбору (елемент, група чи список).
- "Зірочка" - розташування відбору, можливі значення:
- У шапці звіту – відбір відображатиметься на формі звіту у швидких відборах;
- Тільки прапорець у шапці звіту - відбір буде відображатися на формі звіту у швидких відборах, але без можливості вибору значення можна буде вибрати тільки його активність;
- У налаштуваннях звіту – відбір відображатиметься у налаштуваннях звіту (навіть у простому режимі);
- Тільки прапорець у налаштуваннях звіту - відбір буде відображатися в налаштуваннях звіту (навіть у простому режимі), але без можливості вибору значення можна буде вибрати тільки його активність;
- Не показувати – відбір буде відображатися лише у розширеному режимі налаштувань.
- Заголовок – назва відбору в панелі швидких відборів та простому режимі налаштувань.
- Крім того, в підменю ще є пункт "згрупувати відбори".Він дозволяє об'єднувати окремі відбори за умовами "І" (група спрацьовує, якщо спрацьовують усі відбори разом), "АБО" (група спрацьовує, якщо спрацьовує один із відборів), "НЕ" (звертає дію відборів). Для угруповання необхідно виділити кілька потрібних відборів та натиснути "Згрупувати відбори". Щоб скасувати групування, потрібно вибрати групу та натиснути "Розгрупувати".
Наприклад, щоб вивести відбір за видом зайнятості, входимо до розширеного налаштування – Додати відбір – У полі Робота вибираємо Вид зайнятості.
Умова = У списку (вибираємо вид зайнятості "Основне місце роботи" та "Внутрішнє сумісництво").
У налаштуваннях "Зірочка" вибираємо показувати у Шапці звіту.
Заголовок - Зайнятість співробітника.
Після всіх налаштувань можна встановити цей відбір на формі звіту.
Вкладка "Поля та сортування". Дозволяє виводити у звіт необхідні поля з доступних, а також настроювати сортування колонок звіту. На вкладці знаходяться 2 таблиці:
Таблиця полів – містить поля, призначені для виведення до звіту. Поля, що входять до угруповання, не потрібно вказувати, вони завжди потрапляють у звіт. Необхідно вказати необхідні реквізити, а також, якщо вибрано угруповання "Детальні записи", поля детальних записів, які користувач хоче бачити у звіті. Поля дублюються, тобто. якщо користувач додав поле до угруповання і потім вибрав його на вкладці "Поля", воно виведеться лише один раз – у групуванні.
Якщо в таблиці Полів немає поля, його можна додати через відповідний пункт меню. Наприклад, додамо поле Посада та Підрозділ у налаштування звіту.
Дані поля можна згрупувати: утримуємо Shift на клавіатурі, виділяємо дві позиції (Посада та Підрозділ) – Ще – Згрупувати.
Вказуємо заголовок та Розташування.
Отримуємо дані у звіті, що згруповані за цими полями.
Таблиця сортувань - Містить поля, за якими необхідно сортувати результат. Необхідно відзначити, що угруповання, що містить одне поле, автоматично сортується цим полем. Ця настройка є актуальною для угруповань за кількома полями та для детальних записів. У цій же таблиці вибирається напрямок сортування (за зростанням або за спаданням).
У таблиці сортування через кнопку Додати встановлюємо Вид зайнятості – За зростанням. Стрілочками Вгору та Вниз можна встановити пріоритет, у нашому прикладі у пріоритеті буде Вигляд зайнятості, а потім йтиме сортування за ПІБ.
Вкладка "Оформлення". Завдання умовного оформлення полів звіту. Умовне оформлення дозволяє відформатувати будь-яку комірку звіту. Набір рядків для форматування задається відбором (аналогічно до відборів звіту), набір колонок задається списком конкретних полів. Під час додавання або редагування елемента умовного оформлення з'являється вікно його налаштувань. У верхній частині вікна міститься поле "Заголовок", що містить найменування елемента. Вікно містить такі вкладки:
- Оформлення – завдання оформлення полів (шрифт, межі, кольори, ширина осередків, видимість).
- Умова дозволяє задавати рядки звіту, до якого застосовується оформлення. Аналогічно добору звіту з тими самими колонками та поведінкою.
- Оформлювані поля – вибір колонок звіту, до яких застосовуватиметься умовне оформлення.
- Додатково – сфера використання умовного оформлення.
Наприклад, налаштуємо виділення сум менше 1000,00 руб.
Колір тексту вибираємо червоний.
Умову проставляємо "сума менше 1000,00 руб.".
Отримуємо звіт у такому вигляді.
Також можна налаштовувати звіт у цілих числах, встановивши в оформленні наступні опції: Формат – Точність = 0.
Отримуємо звіт у цілих числах.
Вкладка "Структура". Формування структури звіту: горизонтальні, вертикальні угруповання вимірів, ієрархія.
Робота з угрупованнями дозволяє виводити дані звіту ієрархічно, отримувати результати по розрізах аналітики у вертикальному та горизонтальному вимірах. Групувати дані можна кількома способами:
- Угруповання – створення окремих угруповань із необхідною ієрархією. Підсумки з простих угруповань будуються вертикально.
- Таблиця - дає можливість будувати угруповання у двох напрямках: вертикально та горизонтально. Таблиця складається і рядків і колонок, які, у свою чергу, включають прості угруповання. Угруповання, що входять у рядки, формують вертикальну ієрархію та підсумки, у стовпці – горизонтальну. Використання таблиць дозволяє формувати складні зведені таблиці з різною аналітикою.
- Діаграма – дозволяє відображати вміст звіту графічно як діаграм різного виду.
Під час створення або редагування нового угруповання відкривається вікно налаштувань.
Вікно складається з наступних вкладок:
- Склад угруповання – вибір полів, якими групуються результати.
- Поля та сортування – налаштування полів та сортування для даного угруповання. Налаштування подібне до налаштування для звіту в цілому. При виборі "Авто" буде використано налаштування, зроблені для звіту.
- Відбори – Налаштування відборів для цього угруповання. Налаштування подібне до налаштування для звіту в цілому.
- Оформлення – налаштування умовного оформлення для даного угруповання. Налаштування подібне до налаштування для звіту в цілому.
Налаштуємо звіт "Повне зведення нарахувань, утримань і виплат" над розрізі нарахувань, а розрізі співробітників лише за нарахованим сумам. Спочатку приберемо зі звіту суми Утримань/Виплат та сальдо. Заходимо до Розширених параметрів звіту – Ще – Інше – Змінити варіант звіту. У блоці Рядки знімаємо всі галочки, крім тієї, що вказана на зображенні. У полі Відбір залишаємо лише відбір за групою Нараховано.
Далі в розширених налаштуваннях нижче за рівень Група додаємо співробітника, а галочку з поля Вид розрахунку знімаємо.
Збереження налаштувань звіту. Можна зберегти будь-які параметри звіту. Натискаємо дискету – Зберегти варіант звіту.
При збереженні можна вказати, кому буде доступний цей звіт – лише автору чи всім користувачам, і місце – у якому розділі програми буде доступний звіт.
Копіювання параметрів звіту. Налаштування звіту можна скопіювати, наприклад, для перенесення до іншої бази. Зробити це можна через меню Ще - Інше - Змінити варіант звіту.
Далі натискаємо – Ще – Зберегти налаштування або Завантажити налаштування.
Особливості використання відборів у системі компонування даних
У налаштуваннях компонування даних можливе вказівка головного відбору та відбору угруповань. Головний відбір встановлюється для всього звіту загалом. Відбір угруповань встановлюється у конкретного угруповання. У цій статті описуються особливості роботи системи з основним та відборами угруповань.
Головний відбір звіту
Головний відбір впливає отримання даних із наборів, виведення у звіт.Наприклад, якщо в головний відбір додати умову Номенклатура Рівно "1С:Бухгалтерія 7.7 Стандартна версія", то звіт будуть видаватися тільки записи, у яких поле Номенклатура має значення "1С:Бухгалтерія 7.7 Стандартна версія".
Застосування відбору у запитах
Якщо можливо, умови з головного відбору розміщуються в тексті запиту. Відбір може бути поміщений в умову віртуальної таблиці, у пропозицію ДЕ, у пропозицію МАЮЧІ, залежно від того, яке поле накладається відбір.
В умовах віртуальної таблиці відбір поміщається у разі якщо у вихідному запиті набору даних явно сказано, що відбір на дане поле потрібно поміщати в умову віртуальної таблиці або для набору даних вказано автоматичне заповнення полів.
Приклад явної вказівки необхідності розміщення умови на полі Номенклатура у параметрі віртуальної таблиці:
ВИБРАТИ ПродажіОбороти.Контрагент, ПродажіОбороти.Номенклатура, ПродажіОбороти.КількістьОборот, ПродажіОбороти.СумаОборотІз РегістрНакопичення.Продажі.Обороти(, , , ) ЯК ПродажіОбороти
Згенерований запит набору даних при застосуванні відбору на полі Номенклатура може виглядати так:
ВИБРАТИ ПродажіОбороти.Контрагент ЯК Контрагент, ПродажіОбороти.Номенклатура ЯК Номенклатура, ПродажіОбороти.КількістьОборот ЯК КількістьОборот, ПродажіОбороти.СумаОборот ЯК СумаОборот,ПРЕДСТАВЛЕННЯПОСИЛКИ(ПродажіОбороти. ПОДАННЯ ПОСИЛАННЯ(ПродажіОбороти.Номенклатура) ЯК НоменклатураУявленняЗ РегістрНакопичення.Продажі.Обороти(, , , Номенклатура = П) ЯК ПродажіОбороти
Як бачимо, відбір поміщений за умови віртуальної таблиці.
У пропозицію ДЕ умова міститься у разі, якщо у вихідному запиті набору даних явно сказано, що відбір на полі потрібно поміщати в пропозицію ДЕ або при автоматичному заповненні. Якщо для набору даних вказано автоматичне заповнення, то умова буде поміщатися в пропозицію ДЕ тільки у випадку, якщо відбір на полі не застосовувався за умови віртуальної таблиці, яка не знаходиться в лівій частині з'єднання.
приклад. У наборі даних використовується наступний запит і автоматичне заповнення:
ВИБРАТИ ПродажіОбороти.Контрагент, ПродажіОбороти.Номенклатура, ОблікНоменклатуриЗалишки.Склад, ПродажіОбороти.КількістьОборот, ПродажіОбороти.СумаОборот, ОблікНоменклатуриЗалишки.КількістьЗалишокЗ РеєстрНакопичення.Продажі. З'ЄДНАННЯ Реєстр Накопичення. Облік Номенклатури.
Якщо добір додати умову на поля Номенклатура і Склад, то результуючий запит виглядатиме так:
ОБРАТИ ПродажіОбороти.Контрагент ЯК Контрагент, ПродажіОбороти.Номенклатура ЯК Номенклатура, ОблікНоменклатуриЗалишки.Склад ЯК Склад, ПродажіОбороти. КількістьЗалишок, ПРЕДСТАВЛЕННЯ ПОСИЛАННЯ(ПродажіОбороти.Контрагент) ЯК КонтрагентУявлення, ПРЕДСТАВЛЕННЯПОСИЛКИ(ПродажіОбороти.Номенклатура) ЯК НоменклатураПредставлення,ПРЕДСТАВЛЕННЯПОСИЛКИ(ОблікНоменклатури РеєстрНакопичення.Продажі.Обороти(, , , Номенклатура = П) ЯК ПродажіОбороти ЛІВОЕ З'ЄДНАННЯ РеєстрНакопичення.ОблікНоменклатури.Залишки(, (Номенклатура = & П) І Склад = & П2) ЯК ОблікНоменклатуриЗалишки ПЗ ПродажіОбороти.Номенклатура = ОблікНоменклатуриЗалишки.НоменклатураДЕ ОблікНоменклатуриЗалишки.Склад = П2
Як бачимо, відбір на полі Номенклатура було поміщено параметри віртуальних таблиць і т.к. відбір на дане поле був поміщений в таблицю, яка не знаходиться в лівому з'єднанні (ПродажіОбороти), то відбір на це поле не був поміщений пропозицією ДЕ. Умова ж полі Склад було вміщено як і віртуальну таблицю, і у пропозицію ДЕ, т.к. таблиця Облік Номенклатури Залишки, за умови якої вміщено відбір, перебуває у лівому соединении.
Якби у вихідному запиті була явна вказівка на те, що умову на полі Номенклатури потрібно поміщати в пропозицію ДЕ, як у наступному запиті:
ВИБРАТИ ПродажіОбороти.Контрагент, ПродажіОбороти.Номенклатура, ОблікНоменклатуриЗалишки.Склад, ПродажіОбороти.КількістьОборот, ПродажіОбороти.СумаОборот, ОблікНоменклатуриЗалишки.КількістьЗалишокЗ РеєстрНакопичення.Продажі. З'ЄДНАННЯ Реєстр Накопичення. Облік Номенклатури.
<гдепродажиобороты.номенклатура.*>гдепродажиобороты.номенклатура.*>
То відбір на дане поле був би доданий у пропозицію ДЕ результуючого запиту незалежно від того, чи відбір був поміщений в умову віртуальної таблиці. Для вище описаного прикладу результуючий запит виглядав би наступним чином:
ОБРАТИ ПродажіОбороти.Контрагент ЯК Контрагент, ПродажіОбороти.Номенклатура ЯК Номенклатура, ОблікНоменклатуриЗалишки.Склад ЯК Склад, ПродажіОбороти. КількістьЗалишок, ПРЕДСТАВЛЕННЯ ПОСИЛАННЯ(ПродажіОбороти.Контрагент) ЯК КонтрагентУявлення, ПРЕДСТАВЛЕННЯПОСИЛКИ(ПродажіОбороти.Номенклатура) ЯК НоменклатураПредставлення,ПРЕДСТАВЛЕННЯПОСИЛКИ(ОблікНоменклатури РеєстрНакопичення.Продажі.Обороти(, , , Номенклатура = П) ЯК ПродажіОбороти ЛІВОЕ З'ЄДНАННЯ РеєстрНакопичення.ОблікНоменклатури.Залишки(, (Номенклатура = & П) І Склад = & П2) ЯК ОблікНоменклатуриЗалишки ПЗ ПродажіОбороти.Номенклатура = ОблікНоменклатуриЗалишки.НоменклатураДЕ ПродажіОбороти.Номенклатура = &П І ОблікНоменклатуриЗалишки.Склад = &П2
У пропозицію МАЮЧІ умова міститься у разі якщо відбір накладається на поле, вираз якого містить агрегатну функцію.
Наприклад, якщо вихідний запит з автоматичним заповненням виглядає так:
ВИБРАТИ ВитратнаНакладна.Контрагент, СУМА(ВитратнаНакладна.СумаДок) ЯК СуммаДокІЗ Документ.ВидатковаНакладна ЯК ВитратнаНакладнаЗГРУПУВАТИ ПО ВидатковаНакладна.Контрагент
То при застосуванні відбору на полі СуммаДок результуючий запит матиме такий вигляд:
ВИБРАТИ ВитратнаНакладна.Контрагент ЯК Контрагент, СУМА(ВитратнаНакладна.СумаДок) ЯК СуммаДок, ПРЕДСТАВЛЕННЯПОСИЛКИ(ВитратнаНакладна.Контрагент) ЯК КонтрагентУявленняЗ Документ.ВитратнаНакладна ЯК ВитратнаНакладна.КонтрагентМАЮЧІ СУМА(ВитратнаНакладна.СумаДок) = &П
Відбір, застосовуваний над запитом
У деяких ситуаціях умова в текст запиту не вдається. Таке може статися у разі якщо в умові використовуються поля з декількох наборів даних або в умові використовується обчислюване або поле користувача, що містить вирази, які не можуть бути представлені мовою запитів. У цьому випадку вираз умова поміщається у властивість Відбір згенерованого набору даних макета компонування даних. Якщо умови використовувалися поля з кількох наборів даних, то умова буде поміщатися в останній зв'язку дочірній набір даних, поле якого використовується в умові. Наприклад, якщо в схемі визначено набори даних Продажу та пов'язаний з ним набір даних Залишки та в умови використовуються поля з обох наборів даних, то умова буде поміщена у властивість Відбір набору даних Залишки.
Особливості використання відбору під час роботи з кількома наборами даних
При використанні в схемі декількох наборів даних, якщо в головному відборі накладається умова на полі деякого дочірнього набору даних, то в макеті, що згенерував, компонування даних дочірній набір даних буде пов'язаний з батьківським набором даних з типом зв'язку "Внутрішня". Батькі набори даних, до яких застосовується умова, також будуть пов'язані зі своїми батьківськими наборами даних з типом зв'язку "Внутрішня". Тип зв'язку "Внутрішній" означає, що запис батьківського набору даних буде виводитись у результат звіту лише у випадку, якщо в дочірньому наборі даних буде знайдено пов'язані записи. Наприклад, якщо у схемі визначено набори даних Продажу та пов'язаний з ним набір даних Залишки та в умові використовуються поле з набору даних Залишки, то в згенерованому макеті компонування даних зв'язок між цими наборами даних буде визначено з типом зв'язку "Внутрішній".Якби при цьому набір даних Продажу був, у свою чергу, приймачем зв'язку для деякого іншого набору даних, то і цей зв'язок також був би згенерований з типом зв'язку "Внутрішній".
Відбір угруповань
Вибір угруповань використовується для фільтрації записів, які виводяться у групуванні. При цьому відбір поширюється на угруповання, на вкладені угруповання, і не впливає на інші угруповання наявні у звіті.
Наприклад. У схемі компонування опишемо набір даних, який отримує залишки номенклатури за складами.
У налаштуваннях звіту створимо таку структуру:
У перше угруповання по полю Номенклатура додамо умову Складу "Основний склад". У угруповання по полю Склад додамо умову Склад Не рівно "Основний склад".
Результат звіту буде виглядати так:
| Номенклатура |
Кількість залишок |
| 1С: Аспект 7.7 |
10,00 |
| 1С:Бухгалтерія 7.7 |
15,00 |
| 1С:Бухгалтерія 7.7 Стандартна версія |
5,00 |
| 1С:Бухгалтерія ПРОФ версія 7.7 |
2,00 |
| 1С:Торгівля та Склад 7.7 Проф |
2,00 |
| Windows XP Home Edition Ukrainian CD |
14,00 |
| Windows XP Home Edition Ukrainian UPG CD |
20,00 |
| Windows XP Professional Ukrainian CD |
2,00 |
| Клавіатура Apple Pro Keyboards |
7,00 |
| Клавіатура Keyboard PS/2 |
11,00 |
| Клавіатура Linkworld LK-601 PS/2 |
30,00 |
| Клавіатура LK-601 KB-2000 PS/2 |
17,00 |
| Лазерний принтер 5250197-203 Minolta-QMS |
1,00 |
| Лазерний принтер Canon LBP-810 |
2,00 |
| Лазерний принтер HP LaserJet 2200 |
2,00 |
| Монітор 15' LG Studioworks 575N |
4,00 |
| Монітор 19' Hitachi CM715ET |
4,00 |
| Монітор LCD 22' M8537ZM/A |
1,00 |
| Миша 2-кнопка A4Tech PS/2 |
16,00 |
| Миша GENIUS "EASY" (3 кнопки), |
35,00 |
| Миша Ice Mouse MUS-2 |
8,00 |
| Миша LOGITECH M-S48 PS/2 |
1,00 |
| Сист. блок Hewlett-Packard Brio BA410 |
10,00 |
| Сист. блок Hewlett-Packard Vectra VL420 |
2,00 |
| Сист. блок IBM NetVista A22p |
5,00 |
| Сист. блок IBM NetVista M41 |
3,00 |
| Разом |
229,00 |
| Склад |
Кількість залишок |
| Номенклатура |
| Вітрина в офісі |
23,00 |
| 1С: Аспект 7.7 |
2,00 |
| 1С:Бухгалтерія 7.7 |
1,00 |
| 1С:Бухгалтерія 7.7 Стандартна версія |
1,00 |
| 1С:Бухгалтерія ПРОФ версія 7.7 |
1,00 |
| 1С:Торгівля та Склад 7.7 Проф |
1,00 |
| Windows XP Home Edition Ukrainian CD |
2,00 |
| Windows XP Home Edition Ukrainian UPG CD |
5,00 |
| Windows XP Professional Ukrainian CD |
2,00 |
| Клавіатура Keyboard PS/2 |
3,00 |
| Лазерний принтер 5250197-203 Minolta-QMS |
1,00 |
| Лазерний принтер Canon LBP-810 |
1,00 |
| Миша GENIUS "EASY" (3 кнопки), |
2,00 |
| Ноутбук Rover Computers Explorer |
1,00 |
| Склад відділу продаж |
58,00 |
| 1С: Аспект 7.7 |
1,00 |
| 1С:Бухгалтерія ПРОФ версія 7.7 |
1,00 |
| 1С:Торгівля та Склад 7.7 Проф |
1,00 |
| Windows XP Home Edition Ukrainian CD |
1,00 |
| Windows XP Home Edition Ukrainian UPG CD |
4,00 |
| Клавіатура Apple Pro Keyboards |
1,00 |
| Клавіатура Keyboard PS/2 |
2,00 |
| Клавіатура Linkworld LK-601 PS/2 |
5,00 |
| Клавіатура LK-601 KB-2000 PS/2 |
5,00 |
| Монітор 17' Philips 107S20 |
1,00 |
| Монітор 19' Hitachi CM715ET |
4,00 |
| Миша GENIUS "EASY" (3 кнопки), |
5,00 |
| Миша Ice Mouse MUS-2 |
16,00 |
| Миша LOGITECH M-S48 PS/2 |
5,00 |
| Миша OK-720 Mouse A4Tech PS/2 |
1,00 |
| Ноутбук Rover Computers Navigator KT7 |
4,00 |
| Сист. блок Hewlett-Packard Vectra VL420 |
1,00 |
| Разом |
81,00 |
Як видно, у першому угрупованні видано залишки номенклатури за складом "Основний склад". У наступних угрупованнях видаються залишки номенклатури на інших складах.
Тип застосування відбору угруповань
У відборах, що застосовуються до угруповань, можливе зазначення типу застосування умови для записів, що виводяться.
Можливі три варіанти типу застосування:
- Без ієрархії - умова застосовується лише до не ієрархічних записів. Ієрархічні записи не фільтруються. У звіт видаються ті ієрархічні записи, у яких присутні не ієрархічні записи, задовольняють умові. Підсумок з ресурсів в ієрархічних записах і загальний результат угруповання враховує умову.
- Ієрархія - умова застосовується як не ієрархічним, як і ієрархічним записам. Підсумок ресурсів в ієрархічних записах і загальний підсумок з угруповання відбір не враховує.
- Тільки ієрархія – умова застосовується лише до ієрархічних записів. Підсумок ресурсів в ієрархічних записах і загальний підсумок з угруповання відбір не враховує.
У наступному прикладі результат звіту видають чотири угруповання за полем Номенклатура.При цьому в першому угрупованні виводяться записи без відбору, а в інших угрупованнях видаються записи з відбором Кількість залишок більше 40 з типами застосування Без ієрархії, Ієрархія, Тільки ієрархія.
| Номенклатура |
Кількість залишок |
| Клавіатура Keyboard PS/2 |
16,00 |
| Клавіатури |
65,00 |
| Клавіатура Apple Pro Keyboards |
8,00 |
| Клавіатура Linkworld LK-601 PS/2 |
35,00 |
| Клавіатура LK-601 KB-2000 PS/2 |
22,00 |
| Монітори |
14,00 |
| Монітор 15' LG Studioworks 575N |
4,00 |
| Монітор 17' Philips 107S20 |
1,00 |
| Монітор 19' Hitachi CM715ET |
8,00 |
| Монітор LCD 22' M8537ZM/A |
1,00 |
| Миші |
89,00 |
| Миша LOGITECH M-S48 PS/2 |
6,00 |
| Миша OK-720 Mouse A4Tech PS/2 |
1,00 |
| Оптичні миші |
82,00 |
| Миша 2-кнопка A4Tech PS/2 |
16,00 |
| Миша GENIUS "EASY" (3 кнопки), |
42,00 |
| Миша Ice Mouse MUS-2 |
24,00 |
| Ноутбуки |
5,00 |
| Ноутбук Rover Computers Explorer |
1,00 |
| Ноутбук Rover Computers Navigator KT7 |
4,00 |
| Принтери |
7,00 |
| Лазерний принтер 5250197-203 Minolta-QMS |
2,00 |
| Лазерний принтер Canon LBP-810 |
3,00 |
| Лазерний принтер HP LaserJet 2200 |
2,00 |
| Програмне забезпечення |
93,00 |
| 1С: Аспект 7.7 |
13,00 |
| 1С:Бухгалтерія 7.7 |
16,00 |
| 1С:Бухгалтерія 7.7 Стандартна версія |
6,00 |
| 1С:Бухгалтерія ПРОФ версія 7.7 |
4,00 |
| 1С:Торгівля та Склад 7.7 Проф |
4,00 |
| Windows XP Home Edition Ukrainian CD |
17,00 |
| Windows XP Home Edition Ukrainian UPG CD |
29,00 |
| Windows XP Professional Ukrainian CD |
4,00 |
| Системні блоки та комплектуючі |
21,00 |
| Сист. блок Hewlett-Packard Brio BA410 |
10,00 |
| Сист. блок Hewlett-Packard Vectra VL420 |
3,00 |
| Сист. блок IBM NetVista A22p |
5,00 |
| Сист. блок IBM NetVista M41 |
3,00 |
| Разом |
310,00 |
| Номенклатура |
Кількість залишок |
| Миші |
42,00 |
| Оптичні миші |
42,00 |
| Миша GENIUS "EASY" (3 кнопки), |
42,00 |
| Разом |
42,00 |
| Номенклатура |
Кількість залишок |
| Клавіатури |
65,00 |
| Миші |
89,00 |
| Оптичні миші |
82,00 |
| Миша GENIUS "EASY" (3 кнопки), |
42,00 |
| Програмне забезпечення |
93,00 |
| Разом |
310,00 |
| Номенклатура |
Кількість залишок |
| Клавіатура Keyboard PS/2 |
16,00 |
| Клавіатури |
65,00 |
| Клавіатура Apple Pro Keyboards |
8,00 |
| Клавіатура Linkworld LK-601 PS/2 |
35,00 |
| Клавіатура LK-601 KB-2000 PS/2 |
22,00 |
| Миші |
89,00 |
| Миша LOGITECH M-S48 PS/2 |
6,00 |
| Миша OK-720 Mouse A4Tech PS/2 |
1,00 |
| Оптичні миші |
82,00 |
| Миша 2-кнопка A4Tech PS/2 |
16,00 |
| Миша GENIUS "EASY" (3 кнопки), |
42,00 |
| Миша Ice Mouse MUS-2 |
24,00 |
| Програмне забезпечення |
93,00 |
| 1С: Аспект 7.7 |
13,00 |
| 1С:Бухгалтерія 7.7 |
16,00 |
| 1С:Бухгалтерія 7.7 Стандартна версія |
6,00 |
| 1С:Бухгалтерія ПРОФ версія 7.7 |
4,00 |
| 1С:Торгівля та Склад 7.7 Проф |
4,00 |
| Windows XP Home Edition Ukrainian CD |
17,00 |
| Windows XP Home Edition Ukrainian UPG CD |
29,00 |
| Windows XP Professional Ukrainian CD |
4,00 |
| Разом |
310,00 |
Особливості відбору по полях – ресурсам
При використанні відбору на поля - ресурси слід враховувати, що якщо відбір на полі - ресурс був доданий в головний відбір звіту, то цей відбір буде поміщений в текст запиту, тобто будуть фільтруватися детальні записи, які виходять з запиту. , а чи не результати ресурсу для угруповань.
Наприклад, якщо використовується наступний запит:
ВИБРАТИ ПродажіОбороти.Контрагент, ПродажіОбороти.Номенклатура, ПродажіОбороти.КількістьОборот, ПродажіОбороти.СумаОборотЗ РеєстрНакопичення.Продажі.Обороти ЯК ПродажіОбороти
І в головний відбір додається умова на полі КількістьОборот, то в результуючий запит буде додано умову
ДЕПРОДАЖІОБОРОТИ.КількістьОборот > &П
Оскільки у запиті використовується віртуальна таблиця Обороти, яка видає агреговані дані залежно від використаних полів, то результат звіту буде залежати від того, які поля будуть задіяні в налаштуваннях звіту. будуть видаватися записи для контрагентів, якими оборот перевищував задану величину, і якщо задіяні поля Контрагент і Номенклатура, то результат будуть видаватися записи для поєднань контрагентів і номенклатури, якими оборот перевищив задану величину.
Таким чином, якщо у звіті потрібно отримати лише записи угруповання, в яких значення ресурсу задовольняє певній умові, слід додавати відбір у групування, а не в головний відбір.
Наприклад, щоб у звіті, у групуванні номенклатури, отримати номенклатуру, з оборотом, що перевищує деяку величину, то відбір слід застосовувати у групуванні за номенклатурою.