• Главная
  • Карта сайта
Не найдено

1С: Обчислювані поля в СКД

  1. Що таке обчислюване поле
  2. Масив значень в одній комірці
  3. Звернення до експортних функцій загального модуля
  4. Вирази мови компонування

Грамотне використання схеми компонування даних (СКД) дозволяє:

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

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

Що таке обчислюване поле

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

Справа в тому, що СКД - це щось більше, ніж просто відображення результату виконання запиту і це прекрасно видно з форми створення схеми (Рис.1).

рис рис.1

Обчислювані поля дозволяють виконувати певні дії зі сформованим набором даних:

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

Давайте з цього списку і підемо.

Масив значень в одній комірці

Змоделюємо ситуацію, коли необхідно отримати в окрему клітинку всі номери документів надходження по контрагенту:

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

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

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

  1. РазделітельЕлементов - вказує, який символ буде відокремлювати один елемент масиву або один рядок таблиці значень від іншого (в нашому випадку ми опустили цей параметр і за замовчуванням був призначений перенесення рядка);
  2. РазделітельКолонок - символ, який використовується для поділу колонок таблиці значень (за замовчуванням використовується крапка з комою).

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

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

Кілька важливих моментів:

  • Функція обов'язково повинна бути експортної;
  • Якщо функція розташована в загальному модулі з встановленим ознакою «Глобальний», її виклик здійснюється безпосередньо на ім'я, в іншому випадку виклик функції має відбуватися за схемою «Ім'я загального модуля». «Ім'я викликається функції».

Як приклад використання ми візьмемо той же самий запит до документів надходження і виведемо «Суму документа» прописом в окрему колонку. Сам запит ми описувати не будемо, перейдемо безпосередньо до обчислюваним полях:

  1. Створимо нове поле «СуммаПропісь»;
  2. Визначимо його вираз, як на Рис.6; рис.6
  3. Загалом модулі створимо експортну функцію (Рис.7); рис.7
  4. Етап настройки звіту пропустимо і відразу подивимося на результат (Рис.8). Мал. 8

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

Вирази мови компонування

Досить часто в роботі розробника виникає ситуація, коли в поле СКД необхідно вивести результат ділення:

  1. Розрахувати середню вартість номенклатури;
  2. Всілякі відсотки;
  3. Розрахунки середнього заробітку і т.д.

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

Зробити це можна за допомогою конструкції «Вибір Коли ... .Тоді ... Інакше ... Кінець».

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

Припустимо, отримати СуммуДокумента з попереднього рядка нашого запиту можна вказавши в полі «Вираз» значення ВичіслітьВираженіе ( «СуммаДокумента» ,,, «ПредидущаяСумма»).


Виникає закономірне питання, навіщо ж потрібен дублюючий функціонал?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью