1с Скд звіт з параметрами. Використання параметрів у СКД

1с Скд звіт з параметрами. Використання параметрів у СКД

У СКД є запит, в якому є умови і параметри.

Є параметр, зумовлений при відкритті звіту щоразу. Як його правильно вказати в СКД?

Можна робити так:

Процедура ПріВідкриття()

//.........................

ПараметрДаних= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Товар");

ПараметрДаних.Значення = Довідники.Номенклатура.ЗнайтиПо найменуванню("Цвяхи");

ПараметрДаних.Використання=Істина;

//...........................................

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

//////////////////////////////////////////

Особливості роботи з параметрами віртуальних функцій

Параметр запиту

У мові запитів можна вказати значення параметра віртуальної функції. При цьому для більшості параметрів значення параметра може використовуватися вираз. Як вираз може виступати і параметр.

Приклад: Регістр Накопичення. Продаж. Обороти (& Початок)

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

Параметр компонування даних

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

Регістр Накопичення. Продаж. Обороти ((& ПочатокПеріоду))

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

Спільне використання параметра запиту та параметра компонування даних

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

Регістр Накопичення. Продаж. Оберти (& Початок (& ПочатокПеріоду ))

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

Параметри автоматичного заповнення полів набору даних

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

Таким чином, запис:

Регістр Накопичення. Продаж. Обороти (& Початок)

відповідає наступній:

Регістр Накопичення. Продаж. Обороти (& Початок (& ПочатокПеріоду ), (& КінецьПеріоду))

І значення &Початок використовується лише у випадку, якщо в установках не встановлено значення &ПочатокПеріоду.

[необхідно зареєструватися для перегляду посилання]

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

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

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

Система компонування даних 1С 8.3 для початківців: робимо зв'язок наборів даних

  • Написати звіт, який виводить клієнтів та їх улюблені продукти. Кожен клієнт має улюблений колір, а кожен продукт має свій колір - ось на підставі цих кольорів і потрібно визначати "улюбленість" продукту. Наприклад, якщо у Андрія улюблений колір червоний, то одним із його улюблених продуктів будуть помідори (вони червоного кольору).
  • Застосувати у звіті два набори даних. Перший набір – це дані з таблиці довідника "Клієнти". Другий – дані з таблиці довідника "Їжа".
  • Здійснити зв'язок цих двох наборів, щоб у звіті залишилися улюблені продукти для кожного з клієнтів.

Створюємо новий звіт

Відкриваємо базу "Гастроном" у конфігураторі та через головне меню створюємо новий звіт:

Вид документа - "Зовнішній звіт":

У формі нового звіту вказуємо ім'я "Урок6" та натискаємо кнопку "Відкрити схему компонування даних":

Залишаємо ім'я схеми за замовчуванням:

Додаємо перший набір даних

У схемі, що відкрилася, переходимо на закладку "Набори даних" і через зелений плюсик вибираємо "Додати набір даних - запит":

Викликаємо конструктор запиту:

Вказуємо таблицю "Клієнти" та поля, які потрібно отримати із запиту:

Додаємо другий набір даних

Додаємо другий набір даних:

Виділяємо його (НаборДаних2) і знову викликаємо конструктор запиту:

Вказуємо таблицю довідника "Їжа" та поля, які потрібно отримати із запиту:

Вийшов такий текст запиту:

Зверніть увагу, що у нас зараз у звіті є два набори даних: НаборДанних1 і НаборДанных2. У кожного свій текст запиту та свої дані.

Робимо імена наочнішими

Для наочності, давайте перейменуємо НаборДаних1 на Клієнти, а НаборДаних2 на Їжа.

Зробіть це подвійним клацанням по кожному з наборів:

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

На даний момент у набору "Клієнти" наступні поля: "Найменування" та "Улюблена Колір", а у набору "Їжа": "Найменування" та "Колір".

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

Виділяємо набір "Клієнти" та міняємо імена полів так:

Потім виділяємо набір "Їжа" та міняємо імена полів так:

Викликаємо конструктор налаштувань

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

Тип звіту - "Список...":

Вибираємо поля для звіту з обох наборів:

Чому так важливо було змінити імена полів? На етапі налаштувань компонування даних ми бачимо з яких наборів ці поля. Бачимо лише їхні імена.

Перевіряємо звіт

Зберігаємо звіт та формуємо в режимі користувача:

Ага. Добре, але не зовсім. Відбулося так зване перехресне з'єднання двох наборів (вам це має бути добре знайоме зі з'єднань у запитах, які ми вивчали в попередніх модулях). Кожному запису з таблиці "Клієнти" зіставлено запис із таблиці "Їжа".

Але нам потрібно з усіх цих записів залишити тільки ті у яких поле "Улюблений Квіт Клієнта" дорівнює полю "Квіти Єди":

Здійснюємо зв'язок двох наборів даних

Для цього здійснимо зв'язок двох наборів даних (Клієнти та Їжа) по полях Улюблений Квіт Клієнта та Колір Єди.

Переходимо на закладку "Зв'язки наборів даних" та натискаємо на кнопку-плюсик, щоб додати новий зв'язок:

Налаштовуємо параметри як на малюнку нижче:

Зроблю пояснення.

Джерело та приймач зв'язку.Ну, тут все зрозуміло. Вказуємо перший набір (Клієнти) та другий набір (Їжа) даних. Хочу звернути особливу увагу, що зв'язок здійснюватиметься за принципом зовнішнього лівого з'єднання(Ми його проходили в темі запитів у минулих модулях). Тому і потрібно вибирати який набір буде джерелом, а який приймачем.

Вираз джерело.Вказуємо тут вираз або просто поле із набору даних джерела (ми тут вказали поле Улюблений Квіт Клієнта з набору Клієнти).

Вираз приймача.Вказуємо тут вираз або просто поле із набору даних приймача (ми тут вказали поле Колір Їди з набору Їжа).

Таким чином цей зв'язок залишить з минулого списку тільки ті рядки, у яких поле Улюблений Квіт Клієнта дорівнює полю Колір Єди.

Збережемо звіт і запустимо в режимі користувача:

Чудово!

Зроблю пояснення про поле Умова зв'язку", Про яке так часто б'ють свої списи програмісти-початківці.

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

У цьому випадку для всіх рядків із джерела зв'язку перед здійсненням зв'язку перевірятиметься цей вираз (умова зв'язку). І якщо цей вислів дорівнює ІСТИНА, то буде спроба встановити зв'язки цього рядка з рядками з приймача зв'язку. Якщо ж вираз одно Брехня, то таких спроб робити не буде.

 

 

Це цікаво: