Контакти

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

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

Розберемо перші три вкладки Схеми компонування даних (1С СКД) - набір даних, зв'язку набору даних і обчислювані поля.

Набір даних в 1С СКД

Набір даних включає в себе можливість створення трьох об'єктів - запит, об'єкт і об'єднання, зупинимося докладніше на кожному з них:

Являє собою звичайний запит, який формується по кнопці Конструктор запиту. Якщо встановлений прапор Заповнити форму, то всі вибрані реквізити автоматично потраплять в поля набору даних. Так само є можливість самим налаштувати заповнення полів в запиті на вкладці Компонування даних, де знаходяться три вкладки:

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

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

Умови, тут ми вибираємо ті об'єкти, які можна буде використовувати в умовах в СКД.

Частина роботи виконується в схемі компоновки даних, частина програмно, розглянемо на простому прикладі:

Спочатку створимо макет схема компонування даних у документа і назвемо СКД (наприклад: 1С СКД), в ньому створюємо набір даних об'єкт, далі заповнюємо поля, наприклад, маємо у документа табличну частину товари з реквізитами - номенклатура, кількість і ціна.

Додамо три поля і заповнюємо по кожному колонку поле найменуванням реквізитів, інші колонки заповняться автоматично:

Створимо кнопку на формі документа, опишемо механізм роботи в керованих формах:

& НаКліенте

Процедура Друк ()

НашОтчет \u003d ПечатьНаСервере (); // викликаємо функцію на сервері

НашОтчет.Показать (); // виводимо сформований звіт

КонецПроцедури

&На сервері

Функція ПечатьНаСервере ()

Об'ектДокумента \u003d РеквізітФормиВЗначеніе ( "Об'єкт");

//поміщаємо табличну частину Товари в структуру з найменуванням ТовариСКД так само, як ми вказали в самій СКД ім'я об'єкта, що містить дані

НаборДанних \u003d Новий Структура;

НаборДанних.Вставіть ( "ТовариСКД", Об'ектДокумента.Товари);

//отримуємо наш макет і виставляємо настройки за замовчуванням, щоб всі налаштування виводу звіту бралися з нашого макета

НашМакет \u003d Об'ектДокумента.ПолучітьМакет ( "СКД");

Налаштування \u003d НашМакет.НастройкіПоУмолчанію;

//створюємо макет компонування даних з нашими налаштуваннями

КомпоновщікМакета \u003d Новий КомпоновщікМакетаКомпоновкіДанних;

МакетКомпоновкі \u003d КомпоновщікМакета.Виполніть (НашМакет, Налаштування);

//виконуємо компонування даних з нашим набором даних

ПроцессорКомпоновкіДанних \u003d Новий ПроцессорКомпоновкіДанних;

ПроцессорКомпоновкіДанних.Ініціалізіровать (МакетКомпоновкі, НаборДанних);

//формуємо табличний документ і виводимо в нього наш звіт

ДокументОтчета \u003d Новий ТаблічнийДокумент;

ПроцессорВивода \u003d Новий ПроцессорВиводаРезультатаКомпоновкіДаннихВТаблічнийДокумент;

ПроцессорВивода.УстановітьДокумент (ДокументОтчета);

ПроцессорВивода.Вивесті (ПроцессорКомпоновкіДанних);

Повернення ДокументОтчета;

КонецФункціі

При бажанні можна отримати області і будь-якого іншого макета і так само вивести в даному звіті, наприклад, маємо типовий макет формування платіжки і в ньому дуже добре створена шапка, тоді, щоб нам не робити зайву роботу, просто спочатку отримаємо макет, виведемо шапку, потім сформуємо і виведемо наш звіт на СКД.

Про б'едіненіе

У нього ми можемо поміщати наш запити і об'єкти, але на відміну від зв'язку, він просто додає таблиці один до одного, тобто якщо ми зв'яжемо дві однакових таблиці, то отримаємо в підсумку одну, а при об'єднанні, вона подвоїться, розглянемо на простому прикладі :

Маємо таблиці:

При зв'язку ми отримаємо:

А при об'єднанні:

Розглянемо тепер заповнення колонок в наборах даних (деякі пропустимо, так як пов'язані з іншими вкладками, до них повернемося в майбутніх статтях):

- поле, Вказуємо загальна назва реквізиту;

­­- шлях, Вказуємо назву реквізиту, за яким будемо до нього звертатися в СКД, наприклад, в обчислюваних полях;

- заголовок, Вказуємо найменування реквізиту, яке буде виводиться в звіті;

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

- обмеження реквізитів, Вказуємо доступність дочірніх елементів, Важливо, якщо вказана доступність реквізитів, то і саме поле буде доступно, можливо в майбутніх релізах змінять цю механіку;

- вираз, за \u200b\u200bяким обчислюється уявлення поле, Зручно використовувати, коли нам потрібно змінити трохи висновок реквізитів, наприклад, нам потрібно, щоб після імені номенклатури виводився склад, На якому знаходиться вона, тоді заповнимо наступне: Номенклатура + "знаходиться на складі" + Склад. Повторюся, що звернення реквізитами здійснюється через назву, зазначену в колонці шлях;

- вираз упорядкування, Зручний механізм настройки упорядкування звіту, де умова можна задати вручну, аналогічно попередньому пункту, але як показує практика, часто цей механізм працює не так, як хотілося б, і раджу користуватися стандартною сортуванням;

- тип значення, Вказується тип значення реквізиту, заповнювати необхідно, якщо будете користуватися таким полем;

- доступні значення , Працює лише при заповненому типі значення, Відкриваємо форму заповнення і в колонці значення вказуємо елемент, який потрібно змінити, відповідно до типу, це може бути зумовлені об'єкти або у числових, наприклад, реквізитів прості значення, в поданні вказуємо, на що нам потрібно поміняти, приклад булевского типу:

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

Зв'язки набору даних в 1С СКД

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

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

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

Додаємо набір даних типу запит і пишемо, або вручну, або за допомогою конструктора запитів найпростіший запит:

1. Налаштовуємо запит в СКД.

2. Налаштовуємо обчислювані поля в СКД

3. Виконуємо настройку макета даних на закладці налаштування

4. Запускаємо 1С Підприємство 8.2.14. Відкриваємо звіт. Формуємо, отримуємо.

Опис самих нових функцій:

1. Поточна дата()

Повертає системну дату. При компонуванні макета компонування у всіх виразах, які присутні в компонуванні, функція ТекущаяДата () замінюється значенням поточної дати.

2. ВИЧІСЛІТЬВИРАЖЕНІЕ ()

синтаксис:

ВичіслітьВираженіе (<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

опис:

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

Функція враховує відбір угруповань, але не враховує ієрархічні відбори.

Функція не може застосовуватися до угруповання в груповому відборі цього угруповання. Наприклад, у відборі угруповання Номенклатура не можна використовувати вираз ВичіслітьВираженіе ( «Сума (СуммаОборот)", «ОбщійІтог»)\u003e 1000. Але такий вислів можна використовувати в ієрархічному відборі.

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

При розрахунку інтервальних виразів для загального підсумку (параметр Угруповання має значення ОбщійІтог) вважається, що записи для розрахунку детальних даних і розрахунку агрегатних функцій відсутні.

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

параметри

<Выражение>

Тип: Рядок. Вираз, який треба знайти.

<Группировка>

Тип: Рядок. Містить ім'я угруповання, в контексті якої необхідно обчислити вираз. У разі якщо в якості імені угрупування використовується порожній рядок, обчислення буде виконано в контексті поточної угруповання. У разі якщо в якості імені угруповання буде використана рядок ОбщійІтог, обчислення буде виконано в контексті загального підсумку. В інших випадках обчислення буде виконуватися в контексті батьківської угруповання з таким ім'ям.

наприклад:

Сума (Продажі.СуммаОборот) / Обчислити ( "Сума (Продажі.СуммаОборот)", "ОбщійІтог")

В даному прикладі в результаті вийде відношення суми по полю Продажі.СуммаОборот записи угруповання до суми того ж поля у всій компонуванні;

<ОбластьВычисления>

Тип: Рядок. Параметр може набувати таких значень:

  • ОбщійІтог - вираз буде обчислюватися для всіх записів угруповання.
  • Ієрархія - вираз буде обчислюватися для батьківської ієрархічної записи, якщо така є, і для всього угруповання, якщо батьківської ієрархічної записи немає.
  • Угруповання - вираз буде обчислюватися для поточної групової записи угруповання.
  • ГруппіровкаНеРесурса - при обчислення функції для групової записи по ресурсам, вираз буде обчислено для першої групового запису вихідної угруповання.

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

Компоновщик макета компонування даних при генерації макета компонування даних при виведенні в макет поля-ресурсу, за яким виконується угрупування, поміщає в макет вираз, що обчислюється за допомогою функції ВичіслітьВираженіе (), Із зазначенням параметраГруппіровкаНеРесурса. Для інших ресурсів в угрупованні по ресурсу поміщаються звичайні вирази ресурсів.

<Начало>

Тип: Рядок. Вказує, з якою записи потрібно починати фрагмент, в якому розраховувати агрегатні функції вираження і з якої записи отримувати значення полів поза агрегатних функцій. Значення може бути одним з наступних:

<Конец>

Тип: Рядок. Вказує, до якої записи потрібно продовжувати фрагмент, в якому розраховувати агрегатні функції вираження. Значення може бути одним з наступних:

  • Перша (First). Необхідно отримувати перший запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення від початку угруповання. Одержуване значення має цілим бути числом, більше нуля. Наприклад, Перша (3) - отримання третьому записі від початку угруповання.

Якщо перший запис виходить за межі угруповання, то вважається, що записів немає. Наприклад, якщо записів 3, а потрібно получітьПервая (4), то вважається, що записів немає.

  • Остання (Last). Необхідно отримати останній запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення від кінця угруповання. Одержуване значення має цілим бути числом, більше нуля. Наприклад, Остання (3) - отримання третьому записі від кінця угруповання.

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

  • Попередня (Previous). Необхідно отримати попередній запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення назад від поточної записи угруповання. Наприклад, Попередня (2) - отримання попередньої від попереднього запису.

Якщо попередній запис виходить за межі угруповання (наприклад, для другого запису угруповання потрібно отримати Попередня (3), то виходить перший запис угруповання.

При отриманні попередньої записи для підсумку по угрупованню вважається, що виходить перший запис.

  • Наступна (Next). Необхідно отримати такий запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення вперед від поточної записи угруповання. Наприклад, Наступна (2) - отримання наступної від наступного запису.

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

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

  • Поточна (Current). Необхідно отримати поточну запис.

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

  • ОгранічівающееЗначеніе (BoundaryValue). Необхідність отримати запис за вказаною значенням. Після слова ОгранічівающееЗначеніев дужках потрібно вказати вираз, зі значення якого потрібно починати фрагмент, першого поля упорядкування.

Як записи буде виходити перша запис, значення поля упорядкування у якій більше або дорівнює вказаному значенню. Наприклад, якщо в якості поля упорядкування використовується поле Період, і воно має значення 01.01.2010, 01.02.2010, 01.03.2010, та потрібно отримати ОгранічівающееЗначеніе (ДатаВремя (2010, 1, 15)), то буде отримана запис з датою 01.02. 2010 року.

<Сортировка>

Тип: Рядок. Перераховуються вираження, розділені комами, які опісиваютправіла упорядкування. Якщо не вказана, то упорядкування виконується також як і у угруповання, для якої обчислюється вираз. Після кожного виразу можна вказати ключове слово Вік (для упорядкування за зростанням), спад (для упорядкування по убування) і Автоупорядочіваніе (для упорядкування довідкових полів по полях, по яких потрібно упорядковувати об'єкт, на який виконується посилання). Слово Автоупорядочіваніе може використовуватися як зі словом Возр, так і зі словом спад.

<ИерархическаяСортировка>

Тип: Рядок. Аналогічно параметру Сортування. Застосовується для упорядкування ієрархічних записів. Якщо не вказано, компонувальник макета генерує упорядкування відповідно до упорядкуванням, зазначеним в параметрі Сортування.

<ОбработкаОдинаковыхЗначенийПорядка>

Тип: Рядок. Вказує правило визначення попередньої або наступний записи в разі якщо є кілька записів з однаковим значенням упорядкування:

  • Окремо (Separately) позначає, що для визначення попередньої і наступної записів використовується послідовність упорядкованих записів. Значення за замовчуванням.
  • Разом (Together) позначає, що попередня і наступні записи визначаються на підставі значень виразів упорядкування.

Наприклад, якщо отримана послідовність впорядкована за датою:

Дата ПІБ значення
1 01 січня 2001 року Іванов М. 10
2 02 січня 2001 року Петров С. 20
3 03 січня 2001 року Сидоров Р. 30
4 04 січня 2001 року Петров С. 40

Якщо значення параметра дорівнює Окремо, то:

§ попереднім записом до запису 3 буде запис 2.

§ якщо розрахунковий фрагмент визначається як Поточна, Поточна (відповідно, параметри початок і кінець), то для запису 2 цей фрагмент буде складатися з одного запису 2. Вираз ВичіслітьВираженіе ( «Сума (Значення)", Поточна, Поточна) дорівнюватиме 20.

Якщо значення параметра дорівнює Разом, то:

§ попереднім записом до запису 3 буде запис 1.

§ якщо розрахунковий фрагмент визначається як Поточна, Поточна (відповідно, параметри початок і кінець), то для запису 2 цей фрагмент буде складатися із записів 2 і 3. Вираз ВичіслітьВираженіе ( «Сума (Значення)", Поточна, Поточна) дорівнюватиме 50.

При вказівці значення параметра рівного Разом, в параметрах Початок і Кінець можна вказувати зміщення для позицій Перша, Остання, Попередня, Наступна.

ВичіслітьВираженіе ( "Сума (СуммаОборот)", "Перша", "Поточна")

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

ВичіслітьВираженіе ( "Курс", "Попередня")

перелік нових функцій:

ВичіслітьВираженіеСГруппіровкойМассів(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

ВичіслітьВираженіеСГруппіровкойТабліцаЗначеній(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

ЗначеніеЗаполнено(<Выражение>) - Повертає Істина, якщо значення відмінно від значення даного типу за замовчуванням, відмінно від значеніяNULL, відмінно від порожньої посилання, відмінно від значення Не визначено. Для логічних значень здійснюється перевірка на значення NULL. Для рядків здійснюється перевірка на відсутність не пробільних символів

формат(<Выражение>, <Форматная строка>) - Отримати отформатированную рядок переданого значення. Форматна рядок задається відповідно до форматної рядком системи «1С: Підприємство».

підрядок(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) – Ця функція призначена для виділення підрядка з рядка.

ДлінаСтрокі(<Выражение>) - Функція призначена для визначення довжини рядка. Параметр - вираз строкового типу

рядок(<Выражение>) - Якщо в якості параметра переданий масив, то функція повертає рядок, що містить рядкові подання всіх елементів масиву, розділених символами "; ". Якщо в якості параметра передана таблиця значень, то функція повертає рядок, що містить рядкові подання всіх рядків таблиці значень, причому уявлення осередків кожного рядка поділяються символами "; ", А рядки - сміволом перекладу рядка. Якщо у будь-якого елементу строкове представлення пусте, то замість його уявлення виводиться рядок<Пустое значение>.

Мова виразів системи компоновки даних

Мова виразів системи компоновки даних призначений для запису виразів, використовуваних в різних частинах системи.

Вирази використовуються в наступних підсистемах:

  • схема компонування даних - для опису обчислюваних полів, полів підсумків, виразів зв'язку і т.д .;
  • настройки компонування даних - для опису виразів користувальницьких полів;
  • макет компонування даних - для опису виразів зв'язку наборів даних, опису параметрів макета і т.д.

літерали

У вираженні можуть бути присутніми літерали. Можливі літерали наступних типів:

  • рядок;
  • число;
  • Дата;
  • Булево.

рядок

Строковий літерал записується в символах «" », наприклад:

"Строковий літерал"

При необхідності використання всередині строкового литерала символу «" », слід використовувати два таких символів.

наприклад:

"Літерал" "в лапках" ""

число

Число записується без пропусків, в десятковому форматі. Дробова частина відділяється за допомогою символу «.». наприклад:

10.5 200

Дата

Літерал типу дата записується за допомогою ключового литерала ДАТАВРЕМЯ (DATETIME). Після цього ключового слова, в дужках, через кому перераховуються рік, місяць, день, години, хвилини, секунди. Вказівка \u200b\u200bчасу не обов'язково.

наприклад:

ДАТАВРЕМЯ (1975, 1, 06) - Шосте січня 1975 року ДАТАВРЕМЯ (2006, 12, 2, 23, 56, 57) - Друге грудня 2006 року, 23 години 56 хвилин 57 секундода, 23 години 56 хвилин 57 секунд

булево

Булеві значення можуть бути записані за допомогою літералів Істина (True), Брехня (False).

значення

Для вказівки литералов інших типів (системних перерахувань, зумовлених даних) використовується ключове слово Значення, після якого в дужках йде вказівка \u200b\u200bімені литерала.

Значення (ВідСчета. Активний)

Операції над числами

унарний -

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

Продажі.Колічество

унарний +

Дана операція не виконує над числом ніяких дій. наприклад:

Продажі.Колічество

бінарний -

Дана операція призначена для обчислення різниці двох чисел. наприклад:

ОстаткіІОбороти.НачальнийОстаток - ОстаткіІОбороти.КонечнийОстаток ОстаткіІОбороти.НачальнийОстаток - 100 400 - 357

бінарний +

Дана операція призначена для обчислення суми двох чисел. наприклад:

ОстаткіІОбороти.НачальнийОстаток + ОстаткіІОбороти.Оборот ОстаткіІОбороти.НачальнийОстаток + 100 400 + 357

твір, добуток

Дана операція призначена для обчислення добутку двох чисел. наприклад:

Номенклатура.Цена * 1.2 2 * 3.14

розподіл

Дана операція призначена для отримання результату ділення одного операнда на другий. наприклад:

Номенклатура.Цена / 1.2 2 / 3.14

Залишок від ділення

Дана операція призначена для отримання залишку від ділення одного операнда на другий. наприклад:

Номенклатура.Цена% 1.2 2% 3.14

Операції над рядками

Конкатенація (Бінарний +)

Дана операція призначена для конкатенації двох рядків. наприклад:

Номенклатура.Артікул + ":" + Номенклатура.Наіменованіе

подібно

Дана операція перевіряє відповідність рядка переданому шаблоном.

Значним оператора ПОДІБНО є ІСТИНА, якщо значення<Выражения> задовольняє шаблоном, і БРЕХНЯ в іншому випадку.

Наступні символи в<Строке_шаблона> мають сенс, відмінний від просто чергового символу рядка:

  • % - відсоток: послідовність, яка містить нуль і більш довільних символів;
  • _ - підкреслення: один довільний символ;
  • [...] - один або кілька символів у квадратних дужках: один символ, будь-який з перерахованих всередині квадратних дужок. У перерахуванні можуть зустрічатися діапазони, наприклад a-z, які означають довільний символ, що входить в діапазон, включаючи кінці діапазону;
  • [^ ...] - в квадратних дужках значок заперечення, за яким слід один або кілька символів: будь-який символ, крім тих, які перераховані слідом за значком заперечення;

Будь-який інший символ означає сам себе і не несе ніякого додаткового навантаження. Якщо в якості самого себе необхідно записати один з перерахованих символів, то йому повинен передувати<Спецсимвол>, Вказаний після ключового слова спецсимволи (ESCAPE).

Наприклад, шаблон

"% АБВ [абвг] \\ _ абв%" спецсимволи "\\"

означає подстроку, що складається з послідовності символів: літери А; літери Б; літери В; однієї цифри; однією з букв а, б, в або г; символу підкреслення; літери а; літери б; букви в. Причому ця послідовність може розташовуватися, починаючи з довільної позиції в рядку.

операції порівняння

Так само

Дана операція призначена для порівняння двох операндів на рівність. наприклад:

Продажі.Контрагент \u003d Продажі.НоменклатураОсновнойПоставщік

Не дорівнює

Дана операція призначена для порівняння двох операндів на нерівність. наприклад:

Продажі.Контрагент<> Продажі.НоменклатураОсновнойПоставщік

менше

Дана операція призначена для перевірки того, що перший операнд менше другого. наприклад:

ПродажіТекщіе.Сумма< ПродажиПрошлые.Сумма

більше

Дана операція призначена для перевірки того, що перший операнд більше другого. наприклад:

ПродажіТекщіе.Сумма\u003e ПродажіПрошлие.Сумма

Менше або дорівнює

Дана операція призначена для перевірки того, що перший операнд менше або дорівнює другому. наприклад:

ПродажіТекщіе.Сумма<= ПродажиПрошлые.Сумма

Більше чи рівно

Дана операція призначена для перевірки того, що перший операнд більше або дорівнює другому. наприклад:

ПродажіТекщіе.Сумма\u003e \u003d ПродажіПрошлие.Сумма

операція В

Дана операція здійснює перевірку наявності значення в переданому списку значень. Результатом операції буде Істина, в разі, якщо значення знайдено, або Брехня - в іншому випадку. наприклад:

Номенклатура В (& Товар1, & Товар2)

Операція перевірки наявності значення в наборі даних

Операція здійснює перевірку наявності значення в зазначеному наборі даних. Набір даних для перевірки повинен містити одне поле. наприклад:

Продажі.Контрагент В Контрагенти

Операція перевірки значення на NULL

Дана операція повертає значення Істина в разі, якщо значення є значенням NULL. наприклад:

Продажі.Контрагент Є NULL

Операція перевірки значення на нерівність NULL

Дана операція повертає значення Істина в разі, якщо значення не є значенням NULL. наприклад:

Продажі.Контрагент Є НЕ NULL

Логічні операції

Логічні операції беруть в якості операндів виразу, що мають тип Булево.

операція НЕ

Операція НЕ повертає значення Істина в разі, якщо її операнд має значення Брехня, і значення Брехня в разі, якщо її операнд має значення Істина. наприклад:

НЕ Документ.Грузополучатель \u003d Документ.Грузоотправітель

операція І

Операція І повертає значення Істина в разі, якщо обидва операнда мають значення Істина, і значення Брехня в разі, якщо один з операндів має значення Брехня. наприклад:

Документ.Грузополучатель \u003d Документ.Грузоотправітель І Документ.Грузополучатель \u003d & Контрагент

операція АБО

Операція АБО повертає значення Істина в разі, якщо один з операндів має значення Істина, і Брехня в разі, якщо обидва операнда мають значення Брехня. наприклад:

Документ.Грузополучатель \u003d Документ.Грузоотправітель АБО Документ.Грузополучатель \u003d & Контрагент

агрегатні функції

Агрегатні функції здійснюють деяку дію над набором даних.

сума

Агрегатна функція Сума розраховує суму значень виразів, переданих їй як аргумент для всіх детальних записів. наприклад:

Сума (Продажі.СуммаОборот)

кількість

Функція Кількість розраховує кількість значень відмінних від значення NULL. наприклад:

Кількість (Продажі.Контрагент)

кількість різних

Ця функція розраховує кількість різних значень. наприклад:

Кількість (Різні Продажі.Контрагент)

максимум

Функція отримує максимальне значення. наприклад:

Максимум (Остаткі.Колічество)

мінімум

Функція отримує мінімальне значення. наприклад:

Мінімум (Остаткі.Колічество)

середнє

Функція отримує середнє значення для значень, відмінних від NULL. наприклад:

Середнє (Остаткі.Колічество)

інші операції

операція ВИБІР

Операція Вибір призначена для здійснення вибору одного з декількох значень при виконанні деяких умов. наприклад:

Вибір Коли Сума\u003e тисячі Тоді Сума Інакше 0 Кінець

Правила порівняння двох значень

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

  • NULL (найнижчий);
  • булево;
  • число;
  • Дата;
  • рядок;
  • довідкові типи

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

Якщо типи даних збігаються, то проводиться порівняння значень за такими правилами:

  • у типу Булево значення ІСТИНА більше значення БРЕХНЯ;
  • у типу Число звичайні правила порівняння для чисел;
  • у типу Дата більш ранні дати менше пізніших;
  • у типу Рядок - порівняння рядків відповідно до встановлених національними особливостями бази даних;
  • посилальні типи порівнюються на основі своїх значень (номера запису і т. п.).

Робота зі значенням NULL

Будь-яка операція, в якій значення одного з операндів NULL, буде давати результат NULL.

Є винятки:

  • операція І повертатимуть NULL тільки в разі, якщо жоден з операндів не має значення Брехня;
  • операція АБО буде повертати NULL тільки в разі, якщо жоден з операндів не має значення Істина.

пріоритети операцій

Операції мають наступні пріоритети (перший рядок має нижчий пріоритет):

  • В, Є NULL, Є НЕ NULL;
  • =, <>, <=, <, >=, >;
  • Бінарний +, бінарний -;
  • *, /, %;
  • Унарний +, Унарний -.

Функції мови виразів системи компоновки даних

обчислити

Функція Обчислити призначена для обчислення виразу в контексті деякої угруповання. Функція має такі параметри:

  • Вираз. Тип Рядок. Містить обчислюється вираз;
  • Угруповання. Тип Рядок. Містить ім'я угруповання, в контексті якої необхідно обчислити вираз. У разі якщо в якості імені угрупування використовується порожній рядок, обчислення буде виконано в контексті поточної угруповання. У разі якщо в якості імені угруповання буде використана рядок ОбщійІтог, обчислення буде виконано в контексті загального підсумку. В інших випадках обчислення буде виконуватися в контексті батьківської угруповання з таким ім'ям. наприклад:
Сума (Продажі.СуммаОборот) / Обчислити ( "Сума (Продажі.СуммаОборот)", "ОбщійІтог")

В даному прикладі в результаті вийде відношення суми по полю "Продажі.СуммаОборот" записи угруповання до суми того ж поля у всій компонуванні.

рівень

Функція призначена для отримання поточного рівня запису.

Рівень ()

Номер по порядку

Отримати наступний порядковий номер.

Номер по порядку()

НомерПоПорядкуВГруппіровке

Повертає наступний порядковий номер у поточному угрупованню.

НомерПоПорядкуВГруппіровке ()

формат

Отримати отформатированную рядок переданого значення.

Форматна рядок задається відповідно до форматної рядком 1С: Підприємство.

параметри:

  • значення;
  • Форматна рядок.

Формат (РасходниеНакладние.СуммаДок, "ЧДЦ \u003d 2")

Початок періоду

параметри:

    • хвилина;
    • день;
    • тиждень;
    • місяць;
    • квартал;
    • декада;
    • Півріччя.

НачалоПеріода (ДатаВремя (2002, 10, 12, 10, 15, 34), "Місяць")

результат:

01.10.2002 0:00:00

КонецПеріода

Функція призначена для виділення певної дати із заданої дати.

параметри:

  • Дата. Тип Дата. Задана дата;
  • Тип періоду. Тип Рядок. Містить одне із значень:
    • хвилина;
    • день;
    • тиждень;
    • місяць;
    • квартал;
    • декада;
    • Півріччя.

КонецПеріода (ДатаВремя (2002, 10, 12, 10, 15, 34), "Тиждень")

результат:

13.10.2002 23:59:59

ДобавітьКДате

Функція призначена для додавання до дати деякої величини.

параметри:

  • Тип збільшення. Тип Рядок. Містить одне із значень:
    • хвилина;
    • день;
    • тиждень;
    • місяць;
    • квартал;
    • декада;
    • Півріччя.
  • Величина - на скільки необхідно збільшити дату. Тип Число. Дрібна частина ігнорується.

ДобавітьКДате (ДатаВремя (2002, 10, 12, 10, 15, 34), "Місяць", 1)

результат:

12.11.2002 10:15:34

РазностьДат

Функція призначена для отримання різниці між двома датами.

параметри:

  • Вираз. Тип Дата. Вихідна дата;
  • Вираз. Тип Дата. Віднімається дата;
  • Тип різниці. Тип Рядок. Містить одне із значень:
    • секунда;
    • хвилина;
    • день;
    • місяць;
    • квартал;

РАЗНОСТЬДАТ (ДАТАВРЕМЯ (2002, 10, 12, 10, 15, 34), ДАТАВРЕМЯ (2002, 10, 14, 9, 18, 06), "ДЕНЬ")

результат:

підрядок

Ця функція призначена для виділення підрядка з рядка.

параметри:

  • Рядок. Тип Рядок. Рядок, з якої виділяють подстроку;
  • Позиція. Тип Число. Позиція символу, з якого починається виділяється з рядка підрядок;
  • Довжина. Тип Число. Довжина виділяється підрядка.

Підрядки (Контрагенти.Адрес, 1, 4)

ДлінаСтрокі

Функція призначена для визначення довжини рядка.

параметр:

  • Рядок. Тип Рядок. Рядок, довжину якої визначають.

Рядок (Контрагенти.Адрес)

рік

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

параметр:

  • Дата. Тип Дата. Дата, з якої визначають рік.

РІК (РасхНакл.Дата)

квартал

Ця функція призначена для виділення номера кварталу з значення типу Дата. Номер кварталу в нормі знаходиться в діапазоні від 1 до 4.

параметр

  • Дата. Тип Дата. Дата, з якої визначають квартал
КВАРТАЛ (РасхНакл.Дата)

місяць

Ця функція призначена для виділення номера місяця з значення типу Дата. Номер місяця в нормі знаходиться в діапа-зоні від 1 до 12.

  • Дата. Тип Дата. Дата, з якої визначають місяць.
МІСЯЦЬ (РасхНакл.Дата)

ДеньГода

Ця функція призначена для отримання дня року з значення типу Дата. День року в нормі знаходиться в діапазоні від 1 до 365 (366).

  • Дата. Тип Дата. Дата, з якої визначають день року.
ДЕНЬГОДА (РасхНакл.Дата)

день

Ця функція призначена для отримання дня місяця з значення типу Дата. День місяця в нормі знаходиться в діапазоні від 1 до 31.

  • Дата. Тип Дата. Дата, з якої визначають дня місяця.
ДЕНЬ (РасхНакл.Дата)

тиждень

Ця функція призначена для отримання номера тижні року з значення типу Дата. Тижня року нумеруються, починаючи з 1.

  • Дата. Тип Дата. Дата, з якої визначають номера тижні.
ТИЖДЕНЬ (РасхНакл.Дата)

День тижня

Ця функція призначена для отримання дня тижня з значення типу Дата. День тижня в нормі знаходиться в діапазоні від 1 (понеділок) до 7 (неділя).

  • Дата. Тип Дата. Дата, з якої визначають день тижня.
ДЕНЬНЕДЕЛІ (РасхНакл.Дата)

Година

Ця функція призначена для отримання години доби з значення типу Дата. Час доби знаходиться в діапазоні від 0 до 23.

  • Дата. Тип Дата. Дата, з якої визначають годину доби.
ЧАС (РасхНакл.Дата)

хвилина

Ця функція призначена для отримання хвилини години з значення типу Дата. Хвилина години знаходиться в діапазоні від 0 до 59.

  • Дата. Тип Дата. Дата, з якої визначають хвилина години.
ХВИЛИНА (РасхНакл.Дата)

секунда

Ця функція призначена для отримання секунди хвилини з значення типу Дата. Секунда хвилини знаходиться в діапазоні від 0 до 59.

  • Дата. Тип Дата. Дата, з якої визначають секунди хвилини.
СЕКУНДА (РасхНакл.Дата)

висловити

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

параметри:

  • Конвертувати вираз;
  • Вказівка \u200b\u200bтипу. Тип Рядок. Містить рядок типу. Наприклад, "Число", "Рядок" і т.п. Крім примітивних типів дана рядок може містити ім'я таблиці. У цьому випадку буде здійснена спроба висловити до заслання на зазначену таблицю.

Висловити (Данние.Реквізіт1, "Число (10,3)")

ЕстьNull

Ця функція повертає значення другого параметра в разі, якщо значення першого параметра NULL.

В іншому випадку буде повернуто значення першого параметра.

ЕстьNULL (Сума (Продажі.СуммаОборот), 0)

Функції загальних модулів

Вираз механізму компонування даних може містити виклики функцій глобальних загальних модулів конфігурації. Ніякого додатково синтаксису для виклику таких функцій не потрібно.

В даному прикладі буде здійснено виклик функції "СокращенноеНаіменованіе" із загального модуля конфігурації.

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

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

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

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

Додаємо набір даних типу запит і пишемо, або вручну, або за допомогою конструктора запитів найпростіший запит:

1. Налаштовуємо запит в СКД.

2. Налаштовуємо обчислювані поля в СКД

3. Виконуємо настройку макета даних на закладці налаштування

4. Запускаємо 1С Підприємство 8.2.14. Відкриваємо звіт. Формуємо, отримуємо.

Опис самих нових функцій:

1. Поточна дата()

Повертає системну дату. При компонуванні макета компонування у всіх виразах, які присутні в компонуванні, функція ТекущаяДата () замінюється значенням поточної дати.

2. ВИЧІСЛІТЬВИРАЖЕНІЕ ()

синтаксис:

ВичіслітьВираженіе (,)

опис:

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

Функція враховує відбір угруповань, але не враховує ієрархічні відбори.

Функція не може застосовуватися до угруповання в груповому відборі цього угруповання. Наприклад, у відборі угруповання Номенклатура не можна використовувати вираз ВичіслітьВираженіе ( «Сума (СуммаОборот)", «ОбщійІтог»)\u003e 1000. Але такий вислів можна використовувати в ієрархічному відборі.

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

При розрахунку інтервальних виразів для загального підсумку (параметр Угруповання має значення ОбщійІтог) вважається, що записи для розрахунку детальних даних і розрахунку агрегатних функцій відсутні.

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

параметри

Тип: рядок. Вираз, який треба знайти.

Тип: рядок. Містить ім'я угруповання, в контексті якої необхідно обчислити вираз. У разі якщо в якості імені угрупування використовується порожній рядок, обчислення буде виконано в контексті поточної угруповання. У разі якщо в якості імені угруповання буде використана рядок ОбщійІтог, обчислення буде виконано в контексті загального підсумку. В інших випадках обчислення буде виконуватися в контексті батьківської угруповання з таким ім'ям.

наприклад:

Сума (Продажі.СуммаОборот) / Обчислити ( "Сума (Продажі.СуммаОборот)", "ОбщійІтог")

В даному прикладі в результаті вийде відношення суми по полю Продажі.СуммаОборот записи угруповання до суми того ж поля у всій компонуванні;

Тип: рядок. Параметр може набувати таких значень:

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

· ієрархія - вираз буде обчислюватися для батьківської ієрархічної записи, якщо така є, і для всього угруповання, якщо батьківської ієрархічної записи немає.

· угруповання - вираз буде обчислюватися для поточної групової записи угруповання.

· ГруппіровкаНеРесурса - при обчислення функції для групової записи по ресурсам, вираз буде обчислено для першої групового запису вихідної угруповання.

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

Компоновщик макета компонування даних при генерації макета компонування даних при виведенні в макет поля-ресурсу, за яким виконується угрупування, поміщає в макет вираз, що обчислюється за допомогою функції ВичіслітьВираженіе () , Із зазначенням параметра ГруппіровкаНеРесурса. Для інших ресурсів в угрупованні по ресурсу поміщаються звичайні вирази ресурсів.

Тип: рядок. Вказує, з якою записи потрібно починати фрагмент, в якому розраховувати агрегатні функції вираження і з якої записи отримувати значення полів поза агрегатних функцій. Значення може бути одним з наступних:

· Перша (First)

· Остання (Last)

· Попередня (Previous)

· Наступна (Next)

· Поточна (Current)

· ОгранічівающееЗначеніе (BoundaryValue) ОгранічівающееЗначеніе

Тип: рядок. Вказує, до якої записи потрібно продовжувати фрагмент, в якому розраховувати агрегатні функції вираження. Значення може бути одним з наступних:

· Перша (First). Необхідно отримувати перший запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення від початку угруповання. Одержуване значення має цілим бути числом, більше нуля. Наприклад, Перша (3) - отримання третьому записі від початку угруповання.

Якщо перший запис виходить за межі угруповання, то вважається, що записів немає. Наприклад, якщо записів 3, а потрібно отримати Перша (4), то вважається, що записів немає.

· Остання (Last). Необхідно отримати останній запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення від кінця угруповання. Одержуване значення має цілим бути числом, більше нуля. Наприклад, Остання (3) - отримання третьому записі від кінця угруповання.

Якщо останній запис виходить за межі угруповання, то вважається, що записів немає. Наприклад, якщо записів 3, а потрібно отримати Остання (4), то вважається, що записів немає.

· Попередня (Previous). Необхідно отримати попередній запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення назад від поточної записи угруповання. Наприклад, Попередня (2) - отримання попередньої від попереднього запису.

Якщо попередній запис виходить за межі угруповання (наприклад, для другого запису угруповання потрібно отримати Попередня (3), то виходить перший запис угруповання.

При отриманні попередньої записи для підсумку по угрупованню вважається, що виходить перший запис.

· Наступна (Next). Необхідно отримати такий запис угруповання. Після слова в дужках можна вказувати вираз, результат якого буде використовуватися як зміщення вперед від поточної записи угруповання. Наприклад, Наступна (2) - отримання наступної від наступного запису.

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

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

· Поточна (Current). Необхідно отримати поточну запис.

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

· ОгранічівающееЗначеніе (BoundaryValue). Необхідність отримати запис за вказаною значенням. після слова ОгранічівающееЗначеніе в дужках потрібно вказати вираз, зі значення якого потрібно починати фрагмент, першого поля упорядкування.

Як записи буде виходити перша запис, значення поля упорядкування у якій більше або дорівнює вказаному значенню. Наприклад, якщо в якості поля упорядкування використовується поле Період, і воно має значення 01.01.2010, 01.02.2010, 01.03.2010, та потрібно отримати ОгранічівающееЗначеніе (ДатаВремя (2010, 1, 15)), То буде отримана запис з датою 01.02.2010.

Тип: рядок. Перераховуються вираження, розділені комами, які опісиваютправіла упорядкування. Якщо не вказана, то упорядкування виконується також як і у угруповання, для якої обчислюється вираз. Після кожного виразу можна вказати ключове слово Вік (Для упорядкування за зростанням), спадання (Для упорядкування по убування) і Автоупорядочіваніе (Для упорядкування довідкових полів по полях, по яких потрібно упорядковувати об'єкт, на який виконується посилання). слово Автоупорядочіваніе може використовуватися як зі словом Вік, Так і зі словом спадання.

Тип: рядок. аналогічно параметру Сортування. Застосовується для упорядкування ієрархічних записів. Якщо не вказано, компонувальник макета генерує упорядкування відповідно до упорядкуванням, зазначеним в параметрі Сортування.

Тип: рядок. Вказує правило визначення попередньої або наступний записи в разі якщо є кілька записів з однаковим значенням упорядкування:

· Окремо (Separately) позначає, що для визначення попередньої і наступної записів використовується послідовність упорядкованих записів. Значення за замовчуванням.

· Разом (Together) позначає, що попередня і наступні записи визначаються на підставі значень виразів упорядкування.

Наприклад, якщо отримана послідовність впорядкована за датою:

Дата ПІБ значення
1 01 січня 2001 року

Іванов М.

10
2 02 січня 2001 року Петров С. 20
3 03 січня 2001 року Сидоров Р. 30
4 04 січня 2001 року Петров С. 40

окремо, То:

§ попереднім записом до запису 3 буде запис 2.

Поточна, поточна (Відповідно, параметри початок і кінець), То для запису 2 цей фрагмент буде складатися з одного запису 2. Вираз дорівнюватиме 20.

Якщо значення параметра дорівнює разом, То:

§ попереднім записом до запису 3 буде запис 1.

§ якщо розрахунковий фрагмент визначається як Поточна, поточна (Відповідно, параметри початок і кінець), То для запису 2 цей фрагмент буде складатися із записів 2 і 3. Вираз ВичіслітьВираженіе ( «Сума (Значення)", Поточна, Поточна) дорівнюватиме 50.

При вказівці значення параметра рівного разом, В параметрах початок і кінець не можна вказувати зміщення для позицій Перша, Остання, Попередня, Наступна.

ВичіслітьВираженіе ( "Сума (СуммаОборот)", "Перша", "Поточна")

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

ВичіслітьВираженіе ( "Курс", "Попередня")

перелік нових функцій:

ВичіслітьВираженіеСГруппіровкойМассів(,) -

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

ВичіслітьВираженіеСГруппіровкойТабліцаЗначеній(,) -

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

ЗначеніеЗаполнено() - Повертає Істина, якщо значення відмінно від значення даного типу за замовчуванням, відмінно від значення NULL, відмінно від порожньої посилання, відмінно від значення Не визначено. Для логічних значень здійснюється перевірка на значення NULL. Для рядків здійснюється перевірка на відсутність не пробільних символів

формат(,) - Отримати отформатированную рядок переданого значення. Форматна рядок задається відповідно до форматної рядком системи «1С: Підприємство».

підрядок(,,) - Ця функція призначена для виділення підрядка з рядка.

ДлінаСтрокі() - Функція призначена для визначення довжини рядка. Параметр - вираз строкового типу

рядок() - Якщо в якості параметра переданий масив, то функція повертає рядок, що містить рядкові подання всіх елементів масиву, розділених символами ";". Якщо в якості параметра передана таблиця значень, то функція повертає рядок, що містить рядкові подання всіх рядків таблиці значень, причому уявлення осередків кожного рядка поділяються символами ";", а рядки - сміволом перекладу рядка. Якщо у будь-якого елементу строкове представлення пусте, то замість його уявлення виводиться рядок.

Ми досить детально розглянули настройки звітів, реалізованих на базі СКД. Тепер розберемо більш тонкі і детальні настройки варіантів звіту. Вікно «просунутих» налаштувань варіанту звіту викликається по команді «Ще» - «Інше» - «Змінити варіант звіту».

Вікно зміни варіанту звіту розділене на дві частини:

1. Структура звіту.

2. Налаштування звіту.


Розділ структури варіанту звіту аналогічний вкладці «Структура» стандартних налаштувань звіту. Призначення і настройка угруповань докладно розглянута в ч. 1 статті.

Таблиця структури варіанту звіту, крім безпосередньо колонки з угрупованнями, містить кілька додаткових колонок:

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

Розділ налаштувань складається з наступних вкладок:

1. Параметри. Містить параметри СКД, доступні користувачеві.

Параметр СКД - деяке значення, що використовується для отримання даних звіту. Це може бути значення умови для відбору або перевірки даних, а також допоміжне значення.


Таблиця параметрів представлена \u200b\u200bв форматі «Параметр» - «Значення». При необхідності можна змінювати значення параметрів. Натискання на кнопку «Властивості елемента налаштувань» відкриває для користувача настройки елемента.


В даному вікні можна вибрати, чи буде елемент включений в призначені для користувача настройки (тобто видно користувачеві при налаштуванні звіту), задати уявлення елемента і режим редагування ( швидкий доступ в шапці звіту, звичайний в настройках звіту і недоступний).

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

2. Призначені для користувача поля. Містить поля, які формує сам користувач на підставі даних, які обирають звітом.


Користувач може додати два види полів:

  • Нове поле вибір ...
  • Нове поле вираз ...

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


Наприклад, обчислимо оцінку кількості продажів. Будемо вважати, що, якщо продано менше 10 одиниць товару, продали мало, а якщо більше 10 одиниць - багато. Для цього задамо 2 значення обчислюваного поля: перше буде з відбором «Кількість товарів Менше або дорівнює" 10 "», друге з відбором «Кількість товарів Більше" 10 "».

Поля вирази дозволяють обчислювати значення використовуючи довільні алгоритми. У них можуть використовуватися функції мови запитів і вбудованої мови програмування 1С. Вікно редагування поля вираження містить два поля для виразів детальних і підсумкових записів. Підсумкові записи - це угруповання, налаштовані в області «Структура звіту», в них необхідно використовувати агрегатні функції ( «Сума», «Мінімум», «Максимум», «Кількість»).

Наприклад, обчислимо середній відсоток знижки. Середній відсоток знижки розраховується за формулою: [Сума продажів без знижки] - [Сума продажів зі знижкою] / [Сума продажів без знижки]. Необхідно пам'ятати, що сума продажів без знижки може бути нульовою, тому використовуємо оператор ВИБІР для перевірки. Отримаємо наступні вирази:

· Для детальних записів:

вибір

Коли [Сума продажів без знижки] \u003d 0

тоді 0

Інакше [Сума продажів без знижки] - [Сума продажів зі знижкою] / [Сума продажів без знижки]

кінець

· Для підсумкових записів:

вибір

Коли Сума ([Сума продажів без знижки]) \u003d 0

тоді 0

Інакше Сума ([Сума продажів без знижки]) - Сума ([Сума продажів зі знижкою]) / Сума ([Сума продажів без знижки])

кінець

Як було сказано раніше, в вираженні підсумкових записів використовуємо агрегатную функцію «Сума».

3. группіруемих поля. Містить поля, за якими буде групуватися результат варіанту звіту. Групуються поля налаштовуються окремо для кожної з угруповань, але можна задати загальні групуються поля для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт». Можна додати поле з результату звіту, призначене для користувача поле або вибрати авто поле, тоді система підбере поля автоматично. Також дана вкладка дозволяє змінювати порядок проходження группіруемих полів.


4. Поля. Містить поля, які будуть виведені в результат варіанту звіту. Поля налаштовуються окремо для кожної з угруповань, але можна задати загальні поля для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт». Можна додати поле з результату звіту, призначене для користувача поле або вибрати авто поле, тоді система підбере поля автоматично. Також дана вкладка дозволяє змінювати порядок проходження полів.

Поля можна групувати, щоб логічно виділити будь-яку частину звіту або задати особливу прихильність колонок. При додаванні групи стає активна колонка «Розташування» і дозволяє вибрати один з варіантів розташування:

  • Авто - система має поля автоматично;
  • Горизонтально - поля розташовуються горизонтально;
  • Вертикально - поля розташовуються вертикально;
  • В окремій колонці - поля розташовуються в різних колонках;
  • Разом - поля розташовуються в одній колонці.


5. Відбір. Містить відбори, використовувані в варіанті звіту. Налаштування відборів була докладно розглянута в частині 1 цієї статті. Відбори налаштовуються окремо для кожної з угруповань, але можна задати загальні відбори для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт».


6. Сортування. Містить поля сортування, використовувані в варіанті звіту. Налаштування полів сортування була докладно розглянута в частині 1 цієї статті. Сортування налаштовуються окремо для кожної з угруповань, але можна задати загальні поля сортування для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт».


7. Умовне оформлення. Містить елементи умовного оформлення, використовувані в варіанті звіту. Налаштування умовного оформлення була докладно розглянута в частині 1 цієї статті. Умовне оформлення налаштовується окремо для кожної з угруповань, але можна задати загальні елементи умовного оформлення для варіанту звіту, якщо вибрати в дереві структури корінь «Звіт».


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


На закінчення хотілося б відзначити, що настройки звіту можна не тільки зберігати в якості варіанту звіту, а й вивантажувати в файл (меню «Ще» - «Зберегти настройки»). Для завантаження необхідно вибрати «Завантажити настройки» і вибрати збережений файл. Таким чином, ми можемо передавати настройки варіанту звіту між різними базами, мають однакову конфігурацію.


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



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