Як у запиті отримати Вид (тип) документа? Значення у запиті 1с 8.2

1С дозволяє значно спростити ведення бухгалтерії або просто управління будь-якою організацією, чи то маленький магазинчик чи велике підприємство. Програма є великою системою управління базами даних . Щоб не заплутатися у всьому цьому, необхідно вміти виконувати різні найпростіші дії та розуміти суть. Далі ви зрозумієте, як у 1С перевірити тип значення у запиті, а також які вони взагалі бувають, а також як їх розрізняти.

Типи значень

1С: Підприємство включило до нових версій спеціальну функцію (платформа 8.2). За допомогою неї можна до будь-яких найменувань, елементів системи даних додавати будь-які спеціальні параметри. Зроблено це для того, щоб систему було легше редагувати та додавати туди нові елементи. Ця функція якраз і називається «Тип значення».

Насправді, це одне з базових понять, яке містить більшість мов програмування. За його допомогою можна проводити класифікацію різних даних. Наприклад: дати, числа, рядки, посилання. Це лише базові класифікації. Їх може бути набагато більше. Скажімо, якщо ви заносите до вашої системи інформацію про міста, можна використовувати: материк, країна, район тощо.

Перевірка

Перевірити те чи інше поле можна за допомогою мови запитів. А точніше його функції: ТИЗНАЧЕННЯ. Тобто, якщо ми хочемо дізнатися, інформацію якого виду містить осередок, що цікавить, ми повинні скористатися командою.

ТИПЗНАЧЕННЯ(Значення) = ТИП(Рядок)

На прикладі вище ми визначили, скориставшись командою найпростіший вид. Інший приклад перевірки запиту:

Документи

Самих видів досить багато, користувачі можуть обходитися як початковими, і вводити свої, щоб удосконалювати інформаційну базу. Ось деякі з них.

  • ДокументПосилання. Застосовується для зручного зберігання посилань різні об'єкти всередині інших частин системи.
  • ДокументОб'єкт - редагування документів.
  • ДокументВибірка - перебирання об'єктів із бази даних.

Крім того, є спеціальні терміни, що характеризують будь-які дані:

  • форма;
  • рядок;
  • бульова;
  • число;
  • дата;
  • масив;
  • прапорець;
  • малюнок.

Це лише частина з них. Будь-який об'єкт може бути лише чимось із цього списку. Бульово - спеціальний параметр, який набуває двох значень: правда чи брехня. Також є спеціальні теги, що дозволяють коригувати запит: коли, де, як, інакше тощо. Вони задають алгоритм поведінки програми. 1С відрізняє те, що ці слова тут, як і решта, можна вписувати російською мовою.

Важливо розуміти, що все це сприйматиметься новачками та непрофесіоналами як китайська грамота. Щоб розуміти, про що йдеться та ефективно використовувати 1С, необхідно знати основи програмування. Загалом перевірити тип у запиті у програмі 1С буде досить легко, порівняно з іншими діями.

Інші розглянемо зараз.

Функції роботи з рядками у запитах 1С

Функцій та операторів для роботи з рядковими даними у запитах 1С небагато.

По-перше, рядки у запитах можна складати. Для цього використовується оператор «+»:

Запит. Текст = "ВИБРАТИ
Рядок: " + Джерело.Найменування
;

По-друге, можна виділити частину рядка. Для цього використовується функція ПІДСТРОКУ.Функція аналогічна до вбудованої мови 1С. Має три параметри:

  1. Рядок-джерело.
  2. Номер символу, з якого повинен починатися рядок, що виділяється.
  3. Кількість символів.

Запит. Текст = "ВИБРАТИ
ПІДСТРОКУ("
Рядок: ", 4, 3) ЯК Результат";

// Результат: ока Функція

Є NULL

NULL - особливий тип даних на платформі 1С: Підприємство. Він є єдиним можливим значенням цього. NULL може виникати в запитах у кількох випадках: при з'єднаннях джерел запиту, якщо не було знайдено відповідного значення в одній таблиці; при зверненні до реквізитів неіснуючого об'єкта; якщо NULL було вказано у списку полів запиту (наприклад при об'єднанні результатів вибірки з кількох таблиць) тощо. Оскільки NULL не є ні нулем, ні порожнім рядком, ні навіть значеннямНЕ визначено, його часто буває корисно замінювати на якийсь корисніший тип даних. Для цього і призначено функцію

Є NULL.

  1. Вона має два параметри:
  2. Перевірене значення.

Запит. Текст = "ВИБРАТИ
Значення, на яке потрібно замінити перший параметр, якщо він дорівнював NULL.
; Є NULL (Джерело. Залишок, 0) ЯК Залишок"
// Якщо в результаті запиту поле залишок = NULL,

// воно заміниться на 0, і з ним можна буде виконувати математичні дії ФункціїПРЕДСТАВЛЕННЯ і

Ці функції призначені для отримання рядкових уявлень різних значень. Тобто, вони перетворять посилання, числа, бульова тощо. у звичайний текст. Різниця між ними в тому, що функція Функціїперетворює на текст (рядок) будь-які типи даних, а функція і— лише посилання, а решта значень повертає як є, не перетвореними.

Запит. Текст = "ВИБРАТИ
ПРЕДСТАВЛЕННЯ (ІСТИНА) ЯК Бульово,
ПОДАННЯ (4) ЯК Число,
ПОДАННЯ (Джерело.Посилання) ЯК Посилання,
ПРЕДСТАВЛЕННЯ(ДАТАЧАС(2016,10,07)) ЯК Дата"
;
// Бульово = "Так", Число = "4", Посилання = "Документ Видатковий касовий ордер № ... від ..."
// Дата="07.10.2016 0:00:00"

Запит. Текст = "ВИБРАТИ
ПОДАННЯ ПОСИЛАННЯ (ІСТИНА) ЯК Бульово,
ПОДАННЯ ПОСИЛАННЯ (4) ЯК Число,
ПОДАННЯ ПОСИЛАННЯ (Джерело.Посилання) ЯК Посилання,
ПОДАННЯ ПОСИЛАННЯ (ДАТАЧАС(2016,10,07)) ЯК Дата"
;
// Бульово = ІСТИНА, Число = 4, Посилання = "Документ Видатковий касовий ордер № ... від ..."
// Дата=07.10.2016 0:00:00

// воно заміниться на 0, і з ним можна буде виконувати математичні дії ТИППРЕДСТАВЛЕННЯ ТИЗНАЧЕННЯ

// Результат: ока ТИПповертає тип даних платформи 1С:Підприємство.

Запит. Текст = "ВИБРАТИ
ТИП (Кількість) ,
ТИП (Рядок),
ТИП (Документ. Витратний Касовий Ордер) "
;

// Результат: ока ТИЗНАЧЕННЯповертає тип переданого до неї значення.

Запит. Текст = "ВИБРАТИ
ТИПЗНАЧЕННЯ (5) ЯК Число,
ТИП ("
"Рядок" ") ЯК Рядок,
ТИП (Джерело.Посилання) ЯК Довідник
З Довідник.Джерело ЯК Джерело"
;
// Число = Число, Рядок = Рядок, Довідник = Довідник Посилання.

Ці функції зручно застосовувати, наприклад, коли потрібно з'ясувати, чи є отримане в запиті поле значенням якогось типу. Наприклад, отримаємо контактну інформацію контрагентів з регістру відомостей Контактна інформація (там зберігаються контакти не тільки контрагентів, а й організацій, фізичних осіб тощо):

Запит. Текст = "ВИБРАТИ

З

ДЕ
ТИПЗНАЧЕННЯ(КонтактнаІнформація.Об'єкт) = ТИП(Довідник.Контрагенти)"
;

// Результат: ока ЗНАЧЕННЯ

// Результат: ока Значеннядозволяє використовувати в запиті конфігураційні об'єкти 1С безпосередньо, без застосування .

Доповнимо попередній приклад ще однією умовою. Необхідно отримати лише телефони контрагентів.

Запит. Текст = "ВИБРАТИ
Контактна Інформація.
З
РеєстрДовідок.КонтактнаІнформація ЯК КонтактнаІнформація
ДЕ
ТИПЗНАЧЕННЯ(КонтактнаІнформація.Об'єкт) = ТИП(Довідник.Контрагенти)
І КонтактнаІнформація.Тип = ЗНАЧЕННЯ(Перерахування.ТипиКонтактноїІнформації.Телефон)"
;

Слід зазначити, що цю функцію можна використовувати лише з визначеними значеннями, тобто. зі значеннями, яких можна звернутися безпосередньо з конфігуратора. Тобто функція ЗНАЧЕННЯне можна використовувати з елементами довідників, створеними користувачами, але може працювати з перерахуваннями, з визначеними елементами довідників, зі значеннями ПорожнєПосилання.

Оператор ПОСИЛАННЯ

Оператор ПОСИЛАННЯпризначений для перевірки значень, одержуваних запитом, на належність до певного типу посилань. Це завдання можна виконати за допомогою функцій ТИППРЕДСТАВЛЕННЯ ТИЗНАЧЕННЯ(які мають більш широку сферу застосування та були розглянуті вище).

Наприклад, завдання вибору контактної інформації контрагентів можна було й так:

Запит. Текст = "ВИБРАТИ
Контактна Інформація.
З
РеєстрДовідок.КонтактнаІнформація ЯК КонтактнаІнформація
ДЕ
КонтактнаІнформація.Об'єкт ПОСИЛАННЯ Довідник.Контрагенти"
;

Оператор ВИРАЗИТИ

Оператор ВИРАЗИТИвикористовується у запитах 1С у двох випадках:

  • коли необхідно змінити характеристики примітивного типу;
  • коли потрібно з поля зі складеним типом даних зробити поле з одиночним типом.

До примітивних типів даних належать: число, рядок, дата, бульова.Деякі з цих типів даних мають додаткові характеристики. Тип Числомає довжину та точність, тип Рядокдовжину чи необмеженість.

Оператор ВИРАЗИТИдозволяє змінювати тип даних, саме додаткові характеристики. Наприклад, він може з рядка з необмеженою довжиною зробити рядок з обмеженою довжиною. Це буває корисним, якщо потрібно згрупувати результати запиту по такому полю. Виконувати угруповання по полях з необмеженою довжиною не можна, тому ми його перетворимо на рядок із довжиною 200 символів.

Запит. Текст = "ВИБРАТИ
КІЛЬКІСТЬ (РІЗНІ ВСТУП ТОВАРІВ Послуг. Посилання) ЯК Посилання
З
Документ.Надходження ТоварівПослуг ЯК НадходженняТоварівПослуг
ЗГРУПУВАТИ ПО
ВИРАЗИТИ(НадходженняТоварівПослуг.Коментар ЯК РЯДКУ(200))"
;

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

Запит. Текст = "ВИБРАТИ
ВИРАЗИТИ(Рух ТоварівОбороти.Розпорядження ЯК Документ.ЗамовленняКлієнта).Дата ЯК ДатаЗамовлення,
Рух ТоварівОбороти.Номенклатура
З
РеєстрНакопичення.РухТоваров.Обороти
ДЕ
Рух ТоварівОбороти.Розпорядження ПОСИЛАННЯ Документ.ЗамовленняКлієнта"
;

Оператори ВИБІРПРЕДСТАВЛЕННЯ Є NULL

Оператор ВИБІРаналогічний оператору ЯКЩОу вбудованій мові 1С, але має дещо урізаний функціонал.

Допустимо ми хочемо отримати контактні дані з регістру відомостей Контактна Інформація і при цьому в окремому полі запиту вказати, чи вони належать контрагенту або фізичній особі.

Запит. Текст = "ВИБРАТИ
Контактна Інформація.
ВИБІР
КОЛИ ТИПЗНАЧЕННЯ(КонтактнаІнформація.Об'єкт) = ТИП(Довідник.Контрагенти)
ТОДІ "
Контрагент "
Інакше ВИБІР
КОЛИ ТИПЗНАЧЕННЯ (Контактна Інформація. Об'єкт) = ТИП (Довідник. Фізичні Особи)
ТОДІ "
Фіз особа"
Інакше " Хтось інший "
КІНЕЦЬ
КІНЕЦЬ ЯК Власник
З
РеєстрДовідок.КонтактнаІнформація ЯК КонтактнаІнформація"
;

Як видно з прикладу, у конструкції ВИБІРзавжди є умова після слова КОЛИ;значення, яке застосовується, якщо умова виконується, після слова ТОДІта значення, що застосовується, якщо умова не виконується, після слова Інакше.Усі три елементи конструкції ВИБІРє обов'язковими. Опустити елемент Інакше, так само, як це робиться при використанні оператора ЯКЩОу вбудованій мові 1С, не можна. Також у оператора ВИБІРвідсутній аналог конструкції Інакше, Зате можна вкласти один ВИБІРв іншій, як і було зроблено у прикладі.

Оператор Є NULLвикористовується в конструкції ВИБІРпорівняння поля запиту з типом NULL.

Запит. Текст = "ВИБРАТИ
ВИБІР
КОЛИ Значення Є NULL ТОДІ 0
Інакше значення
КІНЕЦЬ"
;

Крім того, оператор Є NULLможна використовувати в умовах запиту, наприклад, у пропозиції ДЕ.

Увага! Перед вами ознайомлювальна версія уроку, матеріали якого можуть бути неповними.

Увійдіть на сайт як учень

Увійдіть як учень, щоб отримати доступ до матеріалів школи

Мова запитів 1С 8.3 для програмістів-початківців: функції та оператори для роботи з типами (ТИПЗНАЧЕННЯ, ТИП, ПОСИЛАННЯ, Є NULL, ВИРАЗИТИ)

Згадаймо, що кожен реквізит (властивість, поле) довідника, документа або іншого прикладного об'єкта має свій тип . І цей тип ми можемо подивитися у конфігураторі:

У мові запитів існує цілий клас функцій та операторів до роботи з типами реквізитів. Давайте розглянемо їх.

Функція ТИПЗНАЧЕННЯ

Ця функція приймає один параметр (значення) та повертає його тип. Для описаного на зображенні (вище) реквізиту Смакдовідника Їжаповернеться таке:

А тепер давайте розглянемо реквізит Відмінна ознакау довідника Міста:

Ви бачите, що цей реквізит може мати один із кількох типів: Рядок, Довідник.Смаки, Довідник.. Такий тип реквізитів називається СКЛАДНИМ.

Якщо ми спробуємо заповнити значення такого реквізиту в режимі 1С:Підприємство, то система запитає нас, якого типу буде значення, що вводиться:

І лише після нашого вибору дозволить ввести значення вибраного типу.

Таким чином, елементи довідника одного виду ( Довідник.) зможуть зберігати в тому самому реквізиті ( Відмінна ознака) значення різних типів (Рядок, Кольори або Смаки).

Ви можете переконатися в цьому самі клацнувши по елементах довідника Містав режимі 1С: Підприємство. Ви читаєте ознайомлювальну версію уроку, повноцінні уроки .

Тут значення відмітної ознаки є елементом довідника Смаки:

Тут рядком:

А тут взагалі є елементом довідника кольори:

Ось які можливості відкриває перед нами складовий тип даних!

Цікаво, як поведеться функція ТИЗНАЧЕННЯна реквізиті Відмінний елемент, що має складовий тип даних:

Це дуже цікаво. Давайте розбиратися з кожним рядком окремо.

Тип значення відмітної ознаки для елемента Росія дорівнює NULL. Ми вперше стикаємося із цим типом. Значення цього типу використовуються виключно для визначення відсутнього значення при роботі з базою даних.

Так і є, адже елемент Росія є групою, а не звичайним елементом довідника Містатому у нього немає поля Відмінна ознака. А тип у відсутнього значення, як ми прочитали вище, завжди дорівнює NULL.

Тип значення відмітної ознаки для Пермі дорівнює Смаки. Так і є, адже значення відмітної ознаки забите у базі для міста Перм є посиланням на елемент довідника Смаки.

Для Красноярська тип ознаки дорівнює кольори, тому що значення обране в базі є посиланням на елемент довідника кольори.

Для Воронежа тип ознаки дорівнює Рядок, тому що значення введене в базі є звичайним рядком.

Індія знову група, тому значення немає. А тип у відсутнього значення, як ми пам'ятаємо, дорівнює NULL.

А справа ось у чому. Якщо ви зайдете до елемента довідника Містаз найменуванням Сан-Паулу, то побачите, що поле Відмінна ознаказовсім не заповнено. Воно порожнє. А усі незаповнені поля складового типу мають спеціальне значенняНЕ ВИЗНАЧЕНЕ .

З НЕ ВИЗНАЧЕНЕми також стикаємося вперше. Значення НЕ ВИЗНАЧЕНЕзастосовується, коли необхідно використовувати порожнє значення, що не належить до жодного іншого типу. Це якраз наша ситуація. А тип значення НЕ ВИЗНАЧЕНЕЯк ви вже напевно здогадалися дорівнює NULL.

Функція ТИП

Вона приймає лише один параметр - ім'я примітивного типу ( РЯДОК, ЧИСЛО, ДАТА, Бульова), або ім'я таблиці, тип посилання якої необхідно одержати.

Результатом даної конструкції буде значення типу для зазначеного типу.

Звучить туманно, чи не так?

Давайте розглянемо застосування цієї конструкції і все відразу стане на свої місця.

Нехай нам потрібно відібрати всі записи довідника Міста, у яких складовий реквізит Відмінна ознакамає значення типу РЯДОК:

Тепер давайте відберемо всі записи, які мають значення реквізиту Відмінна ознакає посиланнями на елементи довідника кольори(Таблиця Довідник.):

Відступ

Як ви пам'ятаєте, деякі елементи довідника Містане мають реквізиту Відмінна ознака. Функція ТИЗНАЧЕННЯдля таких елементів видає NULL.

Як зробити вибір таких елементів у запиті? Для цього передбачено спеціальний логічний оператор Є NULL(Не плутати з функцією Функція, яку ми розглянемо нижче. Ви читаєте ознайомлювальну версію уроку, повноцінні уроки .

Ось приклад його використання:

Чудово. Але ви помітили, що тут немає елемента Сан-Паулу, тип значення реквізиту Відмінна ознакаякого також видавав NULL. Чому так сталося?

А справа в тому, що ситуація для груп (Росія, Індія, Бразилія), для яких заповнення реквізиту Відмінна ознаканеможливо в принципі, оскільки його у них немає зовсім, відрізняється від ситуації для елемента Сан-Паулу, для якого заповнення реквізиту можливе, але воно просто не заповнене і одно, як ми пам'ятаємо, спеціального значення НЕ ВИЗНАЧЕНЕ.

Щоб відібрати всі записи, які мають реквізит Відмінна ознакаприсутній, але не заповнений слід використовувати іншу конструкцію:

Але порівняння з НЕВИЗНАЧЕНО визначення порожніх (не заповнених) реквізитів працюватиме лише складових типів.

До речі, у логічного оператора Є NULL форма заперечення виглядає так:

Логічний оператор ПОСИЛАННЯ

Наприклад, давайте виберемо з довідника Місталише ті записи, у яких значення складеного реквізиту Відмінна ознакає посиланням на елемент довідника Смаки:

Як ви пам'ятаєте, це завдання ми могли б вирішити використовуючи ТИЗНАЧЕННЯі ТИП:

Функція ЄNULL

Функція призначена для заміни значення NULLінше значення.

Ми пам'ятаємо, що значення NULLповертається у тому випадку, якщо запитуваний реквізит (поле, властивість) немає.

Як, наприклад, реквізит Відмінна ознакадля груп довідника Міста:

// Результат: ока Функціядопоможе нам вивести інше значення у тому випадку, якщо це значення дорівнює NULL. Ви читаєте ознайомлювальну версію уроку, повноцінні уроки . Нехай у цьому випадку це буде рядок "Такого реквізиту немає!":

Виходить, що якщо перший параметр функції Функціяне дорівнює NULL, то він повертається. Якщо він дорівнює NULL, то повертається другий параметр.

Функція ВИРАЗИТИ

Ця функція призначена лише для полів, що мають складовий тип. Відмінним прикладом такого поля є властивість Відмінна ознакау елементів довідника Міста.

Як ми пам'ятаємо, складові поля можуть бути одним із кількох типів, зазначених у конфігураторі.

Для поля Відмінна ознакатакими допустимими типами є РЯДОК, Довідник.і Довідник.Смаки.

Іноді виникає необхідність привести значення складеного поля до певного типу.

Давайте наведемо всі значення поля Відмінна ознакадо типу Довідник.

У результаті всі значення елементів, які мали тип Довідник.залишилися заповненими та виявилися наведеними до зазначеного типу. Усі значення інших типів ( РЯДОК, Довідник.Смаки) тепер стали рівні NULL. У цьому полягає особливість наведення типу за допомогою функції ВИРАЗИТИ.

Наводити тип можна або до примітивного типу ( Бульова, ЧИСЛО, РЯДОК, ДАТА) або до посилального типу. Ви читаєте ознайомлювальну версію уроку, повноцінні уроки . Але тип, якого робиться приведення, обов'язково має входити до списку типів для даного складового поля, інакше система видасть помилку.

Пройдіть тест

Розпочати тест

1. Виберіть правильне твердження

2. Реквізити, здатні приймати значення одного з кількох типів, називаються

3. Для визначення типу значення реквізиту підійде функція

4. Незаповнені реквізити складеного типу мають значення

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

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

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

ПОДІБНО - Оператор перевірки рядка на зразок шаблону. Аналог LIKE у SQL.

  • Оператор подібно дозволяє порівняти значення виразу, вказаного зліва від нього, з рядком шаблону, вказаним праворуч. Значення виразу...
  • Мова запитів 1С — одна з основних відмінностей між версіями 7.7 та 8. Одним із найважливіших пунктів у вивченні 1С-програмування є мова запитів. В 1С 8.3 запити - найпотужніший і найефективніший інструмент отримання даних. Мова запитів дозволяє зручно отримувати інформацію з бази даних.
  • Сам синтаксис дуже сильно нагадує класичний T-SQL, крім того, що в 1С за допомогою мови запитів можна лише отримувати дані, використовуючи конструкцію Вибрати (select). Мова підтримує і складніші конструкції, наприклад, (запит у запиті). Запити в 1С8 можна становити як на кирилиці, так і на латиниці.
  • У статті я намагатимусь розповісти про основні ключові слова в мові запитів 1С:
  • вибрати
  • дозволені
  • різні
  • висловити
  • перші
  • для зміни
  • значення
  • Функція
  • тип значення (і оператор ПОСИЛАННЯ)
  • вибір.

згрупувати за

Для налагодження запитів у системі 1С 8.2 передбачено спеціальний інструмент - консоль запитів. Побачити опис і завантажити його можна за посиланням -.

Розглянемо найважливіші та найцікавіші оператори мови запитів 1С.

ВИБРАТИ (SELECT)

У мові запитів 1С підприємства 8 будь-який запит починається з ключового слова ВИБРАТИ. У мові 1С немає конструкцій UPDATE, DELETE, CREATE TABLE, INSERT, ці маніпуляції провадяться в об'єктній техніці. Призначення його – лише читання даних.

Наприклад:

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

Запит поверне таблицю із найменуваннями номенклатури.

Поряд із конструкцією ВИБРАТИможна зустріти ключові слова ДЛЯ ЗМІНИ, ДОЗВОЛЕНІ, РІЗНІ, ПЕРШІ

ДОЗВОЛЕНІ— вибирає лише записи з таблиці, на які є права поточного користувача.

РІЗНІ— означає, що результат не потрапить дублюючих рядків.

ВИБІР (CASE)

Дуже часто ця конструкція недооцінюється програмістами. Приклад її використання:

Поточний Довідник. Найменування,

КОЛИ Поточний Довідник.

«Послуга»

КІНЕЦЬ ЯК ВидНоменклатури

Довідник.Номенклатура ЯК Поточний Довідник

Приклад поверне текстове значення «Товар» або «Послуга» у полі «ВидНоменклатури».

ДЕ (WHERE)

Конструкція мови запитів 1C, що дозволяє накласти відбір на отримані дані. Врахуйте, що від сервера система отримує всі дані, а потім вони відбираються за даним параметром.

ВИБРАТИ
Довідник.Найменування
З
Поточний Довідник. Номенклатура ЯК Поточний Довідник
ДЕ Поточний Довідник. Послуга = ІСТИНА

У прикладі ми відбираємо записи, які мають значення реквізиту «Послуга» встановлено у положення «Істина». У цьому прикладі можна було б і такою умовою:

«ДЕ Послуга»

По суті ми відбираємо рядки, у яких вираз після ключового слова дорівнює «Істина».

У виразах можна використовувати прямі умови:

ДЕ Код = "005215"

За допомогою оператора «ЗНАЧЕННЯ()» в умовах використовувати звернення до визначених елементів та перерахувань у запиті 1С:

ДЕ ТипНоменклатури = Значення (Перерахування. Типи Номенклатури. Товар)

Значення часу можуть бути зазначені таким чином:

ДЕ ДатаНадходження > ДАТАВРЕМЯ(2012,01,01):

Найчастіше умови вказуються у вигляді параметрів, що передаються в запит:

Отримайте 267 відеоуроків з 1С безкоштовно:

ДЕ Номенклатурна група = & Номенклатурна група

Умову можна накласти на тип реквізиту, якщо він складового типу:

Якщо необхідно обмежувати відбір зі списку значень або масиву, можна зробити так:

ДЕ РеєстрНакопичення.Реєстратор В (&СписокДокументівДля Відбору)

Умова може бути складна, що складається з декількох умов:

ДЕ ДатаНадходження > ДАТАВРЕМЯ(2012,01,01) І НоменклатурнаГрупа=НоменклатурнаГрупа І НЕ Послуга

ЗГРУПУВАТИ ПО (GROUP BY)

Конструкція мови запитів 1С 8.2 використовується для групування результату.

Наприклад:

ВИБРАТИ
НадходженняТоварівПослугТовари.Товар,
СУМА(Надходження ТоварівПослугТовари.Кількість) ЯК Кількість,
СУМА(Надходження ТоварівПослугТовари.Сума) ЯК Сума
З
Документ.Надходження ТоварівПослуг.Товари ЯК НадходженняТоварівПослугТовари

ЗГРУПУВАТИ ПО
НадходженняТоварівПослугТовари.Товар

Цей запит підсумує всі надходження за сумою та кількістю у розрізі номенклатури.

Крім ключового слова СУМАможна використовувати інші агрегатні функції: КІЛЬКІСТЬ, КІЛЬКІСТЬ РІЗНИХ, МАКСИМУМ, МІНІМУМ, СЕРЕДНЕ.

МАЮЧІ (HAVING)

Конструкція, про яку часто забувають, але вона дуже важлива та корисна. Вона дозволяє вказати відбір у вигляді агрегатної функції, цього не можна зробити у конструкції ДЕ.

Приклад використання МАЮЧІ у запиті 1С:

ВИБРАТИ
НадходженняТоварівПослугТовари.Товар,
СУМА(Надходження ТоварівПослугТовари.Кількість) ЯК Кількість,
СУМА(Надходження ТоварівПослугТовари.Сума) ЯК Сума
З
Документ.Надходження ТоварівПослуг.Товари ЯК НадходженняТоварівПослугТовари

ЗГРУПУВАТИ ПО
Надходження ТоварівПослугТовари.товар

СУМА(Надходження ТоварівПослугТовари.Кількість) > 5

Так ми відберемо кількість товарів, яких надійшло понад 5 штук.

ЗНАЧЕННЯ()

Наприклад:

ДЕ Банк = Значення (Довідник. Банки. Порожнє Посилання)

ДЕ ВидНоменклатури = Значення(Довідник.ВидиНоменклатури.Товар)

ДЕ ТипНоменклатури= Значення(Перерахування.ТипиНоменклатури.Послуга)

ТИП у запиті

Тип даних можна перевірити так: за допомогою функцій ТИП() та ТИПЗНАЧЕННЯ() або за допомогою логічного оператора ПОСИЛАННЯ.

ВИРАЗИТИ()

Оператор Виразити у запитах 1С служить перетворення типів даних.

Синтаксис: ВИРАЗИТИ(<Выражение>ЯК<Тип значения>)

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

У практичному застосуванні оператор Виразити() дуже часто використовується для перетворення полів необмеженої довжини, тому що поля необмеженої довжини не можна відбирати, групувати тощо. Якщо такі поля не перетворювати, Ви отримаєте помилку Не можна порівнювати поля необмеженої довжини та поля несумісних типів.

ВИБРАТИ
Контактна Інформація.Об'єкт,
ВИРАЗИТИ(КонтактнаяИнформация.Представление ЯК РЯДКУ(150)) ЯК Подання
З
РеєстрДовідок.КонтактнаІнформація ЯК КонтактнаІнформація

ЗГРУПУВАТИ ПО
ВИРАЗИТИ(КонтактнаяИнформация.Представление ЯК РЯДКУ(150)),
Контактна Інформація.Об'єкт

Є NULL (ISNULL)

Досить корисна функція мови запитів 1С, яка перевіряє значення в записі, і якщо воно дорівнює NULL,то дозволяє замінити своє значення. Найчастіше використовується при отриманні віртуальних таблиць залишків та оборотів, щоб приховати NULLі поставити зрозумілий 0 (нуль).

Є NULL (Податки Перед Місяця. Застосована Льгота ФСС, 0)

Така функція мови запитів 1С Є NULL за відсутності значення поверне нуль, що дозволить уникнути помилки.

З'ЄДНАННЯ (JOIN)

З'єднання бувають 4 типи: ЛІВОЕ, ПРАВО, ПОВНЕ, ВНУТРІШНЄ.

ЛІВОЕ І ПРАВОЕ З'ЄДНАННЯ

З'єднання використовуються для зв'язку двох таблиць за певною умовою. Особливість при ЛІВОМУ З'ЄДНАННІу тому, що ми беремо першу вказану таблицю повністю та прив'язуємо за умовою другу таблицю. Поля другої таблиці, які вдалося прив'язати за умовою, заповнюються значенням NULL.

Приклад лівого з'єднання у запиті 1С:

Поверне всю таблицю і заповнить поле «Банк» лише в тих місцях, де буде дотримуватися умова «Контрагенти. Найменування = Банки. Найменування». Якщо умови не дотримуються, у полі Банк буде встановлено NULL.

ПРАВА З'ЄДНАННЯ у мові 1С 8.3абсолютно аналогічно ЛІВОМУ з'єднанню, за винятком однієї відмінності: ПРАВОМУ З'ЄДНАННІ"Головна" таблиця - друга, а не перша.

ПОВНЕ З'ЄДНАННЯ

ПОВНЕ З'ЄДНАННЯвідрізняється від лівого та правого тим, що виводить усі записи з двох таблиць, з'єднує лише ті, які може з'єднати за умовою.

Наприклад:

ПОВНЕ З'ЄДНАННЯ
Довідник. Банки ЯК Банки

ПЗ

Мова запитів поверне обидві таблиці лише за виконаною умовою З'єднати записи. На відміну від лівого/правого з'єднання можлива поява NULL у двох полях.

ВНУТРІШНЯ З'ЄДНАННЯ

ВНУТРІШНЯ З'ЄДНАННЯвідрізняється від повного тим, що виводить ті записи, які змогли з'єднати за заданою умовою.

Наприклад:

З
Довідник.Контрагенти ЯК Клієнти

ВНУТРІШНЯ З'ЄДНАННЯ
Довідник. Банки ЯК Банки

ПЗ
Клієнти. Найменування = Банки. Найменування

Цей запит поверне лише рядки, в яких банк і контрагент мають однакову назву.

Висновок

Це лише невелика частина синтаксису з мови запитів 1С 8, надалі я спробую розглянути докладніше деякі моменти, показати і багато іншого!

 
Статті потемі:
Як у запиті отримати Вид (тип) документа?
1С дозволяє значно спростити ведення бухгалтерії або просто управління будь-якою організацією, чи то маленький магазинчик чи велике підприємство. Програма є великою системою управління базами даних . Щоб не заплутатися у всьому е
Як прошити супутниковий ресивер своїми руками?
Ще трохи уваги приділю програмам: є різні програми для того, щоб ресивер, але я рекомендую саме «AutoArioner», вона дозволяє встановлювати на ресивер ПЗ від ліцензійних виробників. Ще нам знадобиться сама. Якщо ви не впевнені у своїх силах
DriverPack Solution — автоматичне встановлення драйверів на комп'ютер Відкрити driverpack solution
DriverPack Solution - безкоштовна програма, призначена для автоматичної установки драйверів на комп'ютер, на якому встановлена ​​операційна система Windows. Програма виконує функції менеджера для автоматичного встановлення драйверів на комп'ютер.
Як дізнатися віддалених друзів в однокласниках і де переглянути список Якщо людина вийшла з друзів в однокласниках
Якщо у вас багато друзів у соціальній мережі, зрозуміти хто з них вирішив припинити дружбу непросто. Те саме стосується видалення особистих фото або навіть занесення вас до чорного списку. Сьогодні ми якраз і поговоримо про те, як дізнатися, хто пішов із друзів