THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Використання системи компоновки даних 1С неможливо без наборів даних. В одній схемі компоновки даних їх може бути кілька. І вони можуть зв'язуватися між собою певним чином. А точніше або, або об'єднуватися. У цій статті розглянемо об'єднання наборів даних. Об'єднання наборів даних в СКД подібно.

Щоб об'єднати два або більше набору даних в СКД, необхідно на закладці набори даних попередньо створити спеціальний набір даних - об'єднання


Отримуємо ось таку картину


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


Як приклад розглянемо об'єднання наборів даних із залишками товарів.

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


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


Робимо найпростіший запит

ВИБРАТИ ОстаткіТоваров.Товар.Представленіе ЯК Товар, ОстаткіТоваров.КолічествоОстаток ЯК Залишки (ВИБРАТИ Товар, Залишки) З РегістрНакопленія.ТовариОстаткі.Остаткі ЯК ОстаткіТоваров

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

Тепер звернемося безпосередньо до даних
У регістрі накопичення у мене зберігаються такі залишки товарів

а в зовнішньому джерелі даних ось така картина

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


В результаті виконання звіту з такими настройками СКД отримуємо ось таку таблицю

Як бачимо, Лампа, яка є в обох наборах даних, представлена \u200b\u200bв результаті запиту двома рядками. Щоб згорнути їх в один рядок необхідно трохи видозмінити структуру в налаштуваннях СКД і замість детальних записів зробити угруповання по полю товар.


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

На даній вкладці можна створити необмежену кількість наборів даних. Набір даних - це джерело отримання даних.

Розрізняють декілька видів наборів даних:

  • запит;
  • об'єкт;
  • об'єднання.

Запит - це звичайний 1с-запит тільки мову запитів трохи розширений. Для зручності можна використовувати конструктор запиту.

Об'єкт - зовнішній набір даних, наприклад таблиця значень.

Об'єднання - об'єднання декількох наборів даних типів запит і об'єкт.

У даній статті ми коротко пробіжимося по всіх вкладках конструктора схеми компонування даних. Набори даних На даній вкладці можна створити необмежену кількість наборів даних. Набір даних - це джерело отримання даних. Розрізняють декілька видів наборів даних: Запит; об'єкт; Об'єднання. Запит - це звичайний 1с-запит тільки мову запитів трохи розширений. Для зручності можна використовувати конструктор запиту. Об'єкт - зовнішній набір даних, наприклад таблиця значень. Об'єднання - об'єднання декількох наборів даних типів запит і об'єкт. Зв'язки наборів даних На даній вкладці описуються зв'язку наборів даних. Тут можна вказати які набори даних пов'язувати і по яких полях і з якими параметрами. Найголовніше, що потрібно запам'ятати: в схемі компоновки даних, при зв'язуванні наборів завжди використовується Ліве з'єднання! Обчислювані поля На даній вкладці можна створювати додаткові поля, не описані на вкладці Набори даних. Як виразів для розрахунку можна використовувати мову виразів компонування даних, поля з основних наборів даних, а також функції не глобальних загальних модулів. Ресурси Ресурси - це підсумкові дані по угрупованням. На вкладці можна призначити ресурсом поля з наборів даних, а також з обчислюваних полів. Також для ресурсів вказується вираз, за \u200b\u200bяким вони розраховуються, і можливо вказівку угруповання по якій буде розраховуватися вираз для ресурсів. На підставі значень ресурсів також розраховуються загальні підсумки звіту. Параметри Параметри даних, як правило, використовуються в наборі даних запит. Всі параметри, описані в запиті, з'являються на вкладці Параметри. На даній вкладці можна вказати заголовок, доступні типи, доступні значення і деякі інші речі. Детальніше про параметри трохи пізніше. Макети За замовчуванням макет сформованого звіту генерується автоматично системою компонування даних. Але в системі також є можливість розробнику самому оформляти окремі області звіту (полів, угруповань, ресурсів ...). Всі макети окремих областей, створені на цій вкладці, прив'язані тільки до поточного звіту. Вкладені схеми вкладені схеми використовуються у випадках коли дані одного звіту необхідно використовувати в іншому. Іншими словами ми "вбудовуємо" одну схему компоновки даних в іншу, вказуючи зв'язок за загальним полю. Приклад використання вкладених схем можна подивитися в цій статті. Налаштування На даній вкладці розробник створює стандартні настройки формування звіту. У верхній частині вікна задається ієрархічна структура. Структура формування звіту може складатися з наступних елементів: Угруповання; Таблиця; діаграма; Вкладена схема В нижньому частині вікна задаються настройки для всього звіту і для кожного елемента структури звіту. Коротко в вкладках налаштувань: Вибрані поля - список полів, що виводяться в звіт; Відбір - всілякі відбори записів звіту; Порядок - сортування записів в звіті; Параметри даних - значення параметрів звіту; Призначені для користувача поля - додаткові поля звіту, створювані користувачем; Умовне оформлення - задається умовне оформлення записів звіту; Інші настройки - всілякі додаткові настройки такі як: заголовок звіту, макет оформлення, розташування полів і тд ....

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

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

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

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

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

ставимо за мету

  • Зробити копію звіту з минулого уроку.
  • Вивести ті ж самі дані у вигляді діаграми.
  • При цьому серіями (стовпцями, вісь Y) повинні бути продукти, а точками (вісь X) - клієнти. Значення стовпців (по осі Y) і буде кількість їжі, яка замовив даних клієнт.

Міняємо копію минулого звіту

Робимо копію звіту з минулого уроку під ім'ям "Урок9" і відкриваємо цю копію в конфігураторі бази "Гастроном".

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

Ми не будемо міняти набори даних - наше завдання змінити їх уявлення для користувача.

Тому відразу переходимо на закладку "Налаштування" і звертаємо нашу увагу на ліву колонку з варіантами звіту.

Ми раніше не працювали з цією колонкою, але сьогодні я розповім вам в чому її сенс.

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

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

І ось у нас зараз є основний варіант, в настройках якого вказано - виводити дані у вигляді таблиці:

Давайте так перейменуємо цей варіант (подвійним клацанням) і основного в "Таблиця":

Додаємо новий варіант звіту

Тепер за допомогою плюсик додамо ще один варіант (куди ми запхати настройка виведення даних у вигляді діаграми):

Відразу назвемо цей варіант "Діаграма":

Налаштовуємо новий варіант звіту

Як бачите праворуч від цього варіанту (ми його виділили) порожньо, тобто немає ніяких налаштувань. Створимо їх за допомогою нашої чарівної палички:

На цей раз виберемо тип звіту "Діаграма ...":

Як полів для відображення виберемо "Кількість" (за аналогією з таблицею):

Як серій (вісь Y) вкажемо поле "Їжа", а в якості точок (вісь X) - поле "Клієнти":

Вийшло ось так:

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

Ми бачимо таблицю ... що таке ?! А справа в тому, що потрібно просто вибрати інший варіант звіту. Натискаємо на кнопку "Вибрати варіант ..." і вибираємо варіант "Діаграма":

діаграма готова

Ще раз формуємо звіт:

Відмінно, яка краса

Еталонна обробка, після виконання всіх кроків цього уроку

У висновку модуля

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

Якщо у вас в майбутньому ( я раджу робити це вже після закінчення всієї школи) Виникне потреба в більш глибокому вивченні системи компоновки даних - є чудова книга Е. Ю. Хрустальов "Розробка складних звітів в 1С: Підприємство 8".

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

Ми відмінно попрацювали, пора відпочити!

Часом для отримання певного результату компонування необхідно створити в СКД зв'язку наборів даних. Про те, коли це потрібно і як це зробити ми і постараємося розповісти в нашій статті.

Схема компонування даних, реалізована в 1С, підтримує три типи джерела даних (Рис.1)

джерела даних

Найбільш очевидним і часто використовуваним розробниками джерелом даних є «Запит».

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

У складних випадках, коли потрібно або доцільніше використовувати виконання деякого коду (припустимо, завантаження даних з стороннього файлу) або коли немає можливості використовувати запит, на допомогу приходить джерело даних "Об'єкт". Довільний код, що виконується в модулі, на виході повинен мати деяку структуру, до якої СКД зможе звернутися.

Третє джерело даних «Об'єднання». Фактично, це джерело можна розглядати як один з видів зв'язку. Він об'єднує (зводить в одну кілька таблиць), не приміряючи, проте збіг тих чи інших полів. Тобто, якщо в двох об'єднуються таблицях 3 і 4 рядки відповідно, то в результуючому джерелі даних, буде 7 рядків.

Постановка задачі

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

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

Таким чином, ми повинні:

  1. Взяти табличну частину документа надходження;
  2. Завантажити файл в джерело даних «Об'єкт»;
  3. Зв'язати ці два джерела за певним параметру (в нашому випадку це буде код);
  4. Вивести результуючу таблицю.

процес виконання

Пройдемо всі перераховані кроки:

  • Створюємо запит до табличній частині документа надходження (Рис.2)

рис.2

  • Створюємо набір даних об'єкт (Рис.3);

рис.3

Тут важливо звернути увагу на «Ім'я об'єкта, що містить дані», саме це ім'я нам доведеться вказати в коді модуля звіту.

  • Переходимо в модуль звіту і створюємо там процедуру «ПріКомпоновкеРезультата» (Рис.4);


рис.4

Саму процедуру отримання даних із зовнішнього файлу ми описувати не будемо, звернемо увагу на ту частину коду, яка обов'язково має бути присутня в компонуванні для того, щоб ми могли отримати дані для «Набору даних 2» (Рис.5).

рис.5

Важливо! При створенні «Об'єкту» в коді процедури при компонуванні, значення параметра СтандартнаяОбработка має бути Брехня.

Переходимо на закладку «Зв'язки наборів даних».

пов'язуємо набори

Заходимо на відповідну закладку схеми (Рис.6).

Ми бачимо табличну частину, яка дуже схожа на табличну частину, яка є в конструкторі запитів, за деяким винятком. Для набору джерела і набору приймача зв'язку не можна встановити галочку «Все», зате додані декілька додаткових колонок.

У зв'язках наборів даних можна встановити тільки зв'язок, подібну зовнішньому лівому з'єднанню конструктора запиту.

Перш, ніж створити зв'язок, давайте визначимося з призначенням колонок:

  1. Джерело зв'язку - перший набір даних, з якого візьмуться всі наявні значення;
  2. Приймач зв'язку - набір даних, з якого виберуться значення, відповідні нашого умові;
  3. Вираз джерело - поле або вираз першого набору даних, за яким буде відбуватися зіставлення;
  4. Вираз приймач - поле або вираз залежного набору;
  5. Параметр - якщо в цьому полі вказати ім'я параметра, то зв'язок з набором - приймачем буде здійснюватися тільки за вказаною в параметрі значенням;
  6. Список параметрів - визначає можливість використання списку значень в якості параметра;
  7. Умова зв'язку - вказавши тут вираз з використанням полів джерела, можна створити умову, виконання якого буде служити сигналом до встановлення зв'язку;
  8. Початкове значення - показує початкове значення зв'язку;
  9. Обов'язкова зв'язок - визначає, чи задіяні поля, використовувані в джерелі (встановлено БРЕХНЯ) або в приймальнику (встановлено ІСТИНА) і на підставі цього додає зв'язок в макет.

Таким чином:

  • Як джерело зв'язку виступатиме результат нашого запиту;
  • Як приймач буде виступати об'єкт;
  • Вираз джерело буде «НоменклатураКод»;
  • Вираз приймач «Номенклатура»;
  • Зв'язок буде обов'язковою (Рис.7).

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

рис.8

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

41
Робив недавно звіт з невизначеною кількістю колонок. Возитися з кодом було неохота, вирішив зробити на СКД. З цим проблема не виникла, необхідно було натягнути результат на довільний макет (свій заголовок + ... 27
Незважаючи на те, що вивчають СКД зустрічаються з цим на перший або другий день, це повинно бути в розділі FAQ. Простий приклад програмного виведення звіту на компонуванні, що використовує стандартні параметри. // Отримуємо схему з ... 18
При формуванні звітів на СКД за замовчуванням всі угруповання розгорнуті, але буває що необхідно відразу після формування показати звіт зі згорнутими угрупованнями! Даний код в модулі звіту дозволяє згорнути ... 10
На цій закладці можна вказати, які здійснюються зв'язки між двома і більше наборами даних, за якими параметрами і условіям..png 1. «Джерело зв'язку» - вказується перший набір даних, від ... 9
Що при розробці звітів потрібно щоб у користувача з обмеженими правами, звіт формувався повністю без перевірки прав! Особливо якщо налаштований RLS Є кілька способів як це зробити: 1. Встановити ...

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму