Контакти

Синтаксис подібно до запиту 1с. Подібно до умов запиту. Опис синтаксису оператора подібний

43
NULL – відсутні значення. 26
Чи не плутати з нульовим значенням! NULL - це не число, не дорівнює пробілу, порожньому засланні, Невизначено. 18
NULL – типообразующее значення, тобто. Існує тип NULL і єдине значення цього типу. 12
NULL...

Для формування та виконання запитів до таблиць бази даних у платформі 1С використовується спеціальний об'єкт мови програмування. Створюється об'єкт викликом конструкції Новий Запит. Запит зручно...

У статті наведено корисні прийоми при роботі з запитами 1С v.8.2, а також відомості, які не так добре відомі мовою запитів. Я не прагну дати повний опис мови запитів, а хочу зупинитися лише на...

Зіткнувся із завданням, потрібно було вибрати всі документи щодо виплати та згрупувати їх за типом документа!

  • Перегорнувши всі ЖКК та інтернет, зрозумів що простого способу отримати Вид документа в запиті немає:
  • Незважаючи на всі недоліки, пошук по текстовому полю досі є одним із найпопулярніших. Строкові типи даних ми можемо зустріти повсюдно – назви, номери рахунків, адреси, а також інша інформація може зберігатися у цьому форматі. У запитах вбудованою мовою 1С для зручності розробників використовується спеціальний оператор «ПОДІБНО». Це одна з найуживаніших команд, тому без досконалого знання її синтаксису та можливостей програмісту буде важко працювати.
  • Використання оператора «ПОДІБНО»

Синтаксис перевірки завжди однаковий і складається з трьох ланок. Зліва текстове значення, яке перевіряється, потім безпосередньо сам оператор «ПОДІБНО», а праворуч – шаблон, яким іде перевірка. Для швидкого та зручного складання шаблонів існують спеціальні символи, що полегшують розробку:

  1. "%" - послідовність будь-яких символів довільної довжини. Використовується для пошуку окремих слів чи цифр у рядку;
  2. "_" - будь-який одиничний символ. Призначений позначення наявності одного знака;
  3. «[…]» – послідовність символів для порівняння зі знаком у рядку. За допомогою подібного шаблону перевіряється відповідність будь-якому з перелічених у дужках знаків. Також можна встановити діапазон цифр або літер ([а-г], );
  4. "[^…]" - протилежний попередньому шаблон. Перевіряється відмінність зазначеного у рядку символу від перерахованих у дужках.

Щоб краще засвоїти і зрозуміти принципи складання вірних шаблонів, розглянемо деякі приклади, що часто зустрічаються в житті розробників. Перше, коли нам необхідно вибрати з довідника номенклатури всі позиції, в найменуваннях яких зустрічається слово «РЕЗЕЦЬ». У цьому випадку нам необхідно використовувати подібно в умовах запиту:

ВИБРАТИ Номенклатура.Найменування ЯК Найменування З Довідник.Номенклатура ЯК Номенклатура ДЕ Номенклатура.Найменування ПОДІБНО "%РЕЗЕЦ%"

Якщо ми приберемо обидва символи «%», запит покаже номенклатуру, у якої найменування повністю збігається із зазначеним у лапках. Якщо залишимо шаблон «РЕЗЕЦЬ%» або «%РЕЗЕЦЬ», то результатом буде список номенклатури, що закінчується або починається відповідно на задану комбінацію символів.


Розберемо завдання, яке може поставити в безвихідь програмістів-початківців, які не знають синтаксис запитів. Допустимо, вам потрібно знайти всю номенклатуру, у найменуванні якої є символ %. Спеціально для випадків, коли потрібно вести пошук зарезервованих символів, існує оператор спецсимвол. Як спецсимвол можна використовувати #,\,/,~ та інші знаки, після яких будь-які зарезервовані символи позначатимуть просто знак.

ВИБРАТИ Номенклатура.Найменування ЯК Найменування З Довідник.Номенклатура ЯК Номенклатура ДЕ Номенклатура.Найменування ПОДІБНО "%#%" СПЕЦСИМВОЛ "#"

Якщо вам потрібно в пошуку використовувати параметр, змінна в запиті з параметром ПОДІБНО використовується за допомогою додавання. Пам'ятайте, що параметр повинен бути рядкового типу або вам потрібно буде перевести його в рядок у запиті. Це досить складна операція і краще виключити її заздалегідь.

ВИБРАТИ Номенклатура.Найменування ЯК Найменування З Довідник.Номенклатура ЯК Номенклатура ДЕ Номенклатура.Найменування ПОДІБНО "%" + &найменування + "%"

Функція подібно застосовна у всіх версіях платформи, починаючи з 8, і через її застосування розробники 1С не захочуть її змінювати. Звичайно, текстовий пошук завжди залежить від точності введення найменування, але він все одно залишається одним із найпоширеніших. У зв'язку з цим професійним розробникам 1С необхідно вивчити використання подібно до всіх його нюансів.

ПОДІБНО- Оператор перевірки рядка на зразок шаблону. Аналог LIKE у SQL.
Оператор ПОДІБНОдозволяє порівняти значення виразу, вказаного зліва від нього, з рядком шаблону, вказаним праворуч. Значення виразу має мати рядок. Якщо значення виразу задовольняє шаблон - результатом оператора буде ІСТИНА, інакше - БРЕХНЯ.
Наступні символи у рядку шаблону є службовими і мають сенс, відмінний від символу рядка:
. % (відсоток): послідовність, що містить будь-яку кількість довільних символів
. _ (підкреслення): один довільний символ
. […] (у квадратних дужках один або кілька символів): будь-який одиночний символ із перелічених усередині квадратних дужок
У перерахуванні можуть зустрічатися діапазони, наприклад, a-z, що означають довільний символ, що входить в діапазон, включаючи кінці діапазону.
. [^…] (у квадратних дужках значок заперечення, за яким слідує один або кілька символів): будь-який одиночний символ, крім тих, які перелічені слідом за значком заперечення
Будь-який інший символ означає сам себе і не несе жодного додаткового навантаження.
Якщо як самого себе необхідно записати один із перелічених символів, то йому має передувати<Спецсимвол>. Сам<Спецсимвол>(будь-який відповідний символ) визначається в цьому ж операторі після ключового слова СПЕЦСИМВОЛ.
Наприклад, шаблон “%АБВ[абвг]\_абв%” СПЕЦСИМВОЛ “\” означає підрядок, що складається з послідовності символів:
літери А; літери Б; літери У; однієї цифри; однією з букв а, б, або г; символ підкреслення; літери а; літери б; літери ст.
Причому перед цією послідовністю може бути довільний набір символів.

Приклади використання:
Код 1C v 8.х Процедура БанкЗакінчення Введення Тексту (Елемент, Текст, Значення, Стандартна Обробка)
Стандартна Обробка = Брехня;
//Робимо запит із пошуком за шаблоном виду "%" +<Текст введенный пользователм в поле ввода> + "%"
Запит = Новий Запит;
Запит.ВстановитиПараметр("Найменування", "%" + Текст + "%");
Запит.Текст = "ВИБРАТИ
| Банки.

| Довідник. Банки ЯК Банки
|ДЕ
| Банки.Найменування ПОДІБНО &Найменування";

Результат = Запит.Виконати();
Вибірка = Результат.Вибрати();
Якщо Результат.Порожній() Тоді
// Нічого не знайшли. Тут можна вивести повідомлення, або ще чогось зробити:)
Інакше
//Отримуємо результати
трезультати = Результат.Вивантажити();
//Підготуємо список значень, що буде містити знайдені елементи.
Значення = Новий СписокЗначень();
Значення.ЗавантажитиЗначення(тзРезультати.ВивантажитиКолонку("Посилання"));
КінецьЯкщо;
КінецьПроцедури

Потрібно, щоб у "Договори за умовчанням" потрапляли тільки найменування основного договору і т.д:
Код 1C v 8.х Вибір
Коли Найменування ПОДІБНО "Договір №%" тоді "Договору з номером" // Підходить будь-який рядок, що починається з "Договір №"
Коли Найменування ПОДІБНО "Основний договір%[^А-яЕйо"+Символ(33)+"-"+Символ(126)+"№»«"+Символи.ПС+Символи.Таб+Символи.ПФ+Символи.НПП+ Символи.ВТаб+"]%" тоді "Договори за умовчанням" //Підходить будь-який рядок, що починається з "Основний договір"
Інакше "Інші"
Кінець Як ВидДоговіру

Інформація взята із сайту



Сподобалася стаття? Поділіться їй