Інтернет Windows Android

Створення макета звіту скд 1с 8.2. макети скд

Дуже часто в запитах 1С доводиться працювати з датами. Особливо коли запит будується до об'єктів метаданих в яких міститься періодична інформація. Як правило це регістри (відомостей, накопичення, розрахунку, бухгалтерії). Розглянемо найбільш часто використовувані функції мови запитів 1С для роботи з датами. Приклади будемо будувати на основі регістра відомостей РаботнікіОрганізацій Конфігурації ЗУП редакція 2.5.

  • ДАТА ЧАС

    Дозволяє отримати в запиті дату (згодом або без) шляхом зазначення року, місяця, дня, години, хвилини, секунди.
    синтаксис:
    ДАТАВРЕМЯ (Рік, Місяць, День, Час, Хвилина, Секунда)
    Зазвичай година, хвилина і секунда не вказуються. Давайте наведемо міні приклад. Введіть в консолі запитів наступний текст:

    ВИБРАТИ ДАТАВРЕМЯ (2016, 1, 1)

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

    ВИБРАТИ РаботнікіОрганізацій.Період, РаботнікіОрганізацій.Сотруднік, РаботнікіОрганізацій.Должность, РаботнікіОрганізацій.ПодразделеніеОрганізаціі З РегістрСведеній.РаботнікіОрганізацій ЯК РаботнікіОрганізацій ДЕ РаботнікіОрганізацій.ПеріодЗавершенія \u003d ДАТАВРЕМЯ (1, 1, 1)

  • ПОЧАТОК ПЕРІОДУ

    Для зазначеної дати повертає початок періоду в який вона входить.
    синтаксис:
    НАЧАЛОПЕРІОДА (Дата, ТіпПеріода)
    ТіпПеріода може набувати таких значень: ХВИЛИНА, ЧАС, ДЕНЬ, ТИЖДЕНЬ, МІСЯЦЬ, КВАРТАЛ, РІК, ДЕКАДА, ПІВРІЧЧЯ
    В консолі запитів введіть:

    ВИБРАТИ НАЧАЛОПЕРІОДА (ДАТАВРЕМЯ (2016, 1, 15), МІСЯЦЬ)

    Запит поверне - 01.01.2016
    А тепер приклад. Як відомо періодичність у регістру РаботнікіОрганізацій один день. Складемо запит в якому замість дійсного періоду записів буде відображатися дата початку місяця.

    ВИБРАТИ НАЧАЛОПЕРІОДА (РаботнікіОрганізацій.Період, МІСЯЦЬ) ЯК НачалоМесяца, РаботнікіОрганізацій.Сотруднік, РаботнікіОрганізацій.Должность, РаботнікіОрганізацій.ПодразделеніеОрганізаціі З РегістрСведеній.РаботнікіОрганізацій ЯК РаботнікіОрганізацій

  • КОНЕЦПЕРІОДА

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

    ВИБРАТИ КОНЕЦПЕРІОДА (ДАТАВРЕМЯ (2016, 1, 15), МІСЯЦЬ)

    Повертає 31.01.2016 23:59:59
    Як бачимо значення повертається з точністю до секунди.

  • ДОБАВІТЬКДАТЕ

    Додає до дати зазначена кількість тимчасових інтервалів.
    синтаксис:
    ДОБАВІТЬКДАТЕ (Дата, ТіпПеріода, Кількість)
    ТіпПеріода приймає ті ж значення, що і для функції ПОЧАТОК ПЕРІОДУ
    Для прикладу виберемо лютневу дату:

    ВИБРАТИ ДОБАВІТЬКДАТЕ (ДАТАВРЕМЯ (2016, 2, 15), МІСЯЦЬ, 2)

    Отримуємо дату 15.04.2016 0:00:00 Незважаючи на те, що лютий короткий місяць, день отриманої дати той же самий, що і у вихідній. Дуже зручно, що не доводиться замислюватися про кількість днів у місяцях.
    Кількість може бути і негативним. Тоді відлік інтервалу проводиться в зворотній бік.

  • РАЗНОСТЬДАТ

    Расчітиват різницю між двома датами в зазначених одиницях виміру.
    синтаксис:
    РАЗНОСТЬДАТ (ДатаНачала, ДатаОкончанія, ТіпПеріода)
    Тип періоду може приймати значення: СЕКУНДА, ХВИЛИНА, ЧАС, ДЕНЬ, МІСЯЦЬ, КВАРТАЛ, РІК
    наприклад:

    ВИБРАТИ РАЗНОСТЬДАТ (ДАТАВРЕМЯ (2016, 2, 15), ДАТАВРЕМЯ (2016, 3, 1), ДЕНЬ)

    повертає 15

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

Пісочниця

Леонід Якубович 23 серпня 2011 о 10:22

Макети в 1С 8.2 - це не складно (Частина 1 - Створення макета)

Припустимо, Вам необхідно вивести подібний звіт:

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


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

Тепер створимо новий звіт і назвемо його «СпісокСотрудніков». Перейдемо на вкладку «Макети» і створимо новий макет типу «ТаблічнийДокумент».
Перед нами відкриється порожній табличний документ, Готовий до роботи. Тепер нам потрібно представити необхідний звіт у вигляді макету.
Для цього спочатку скопіюємо вихідний звіт в чистий табличний документ, тобто в макет звіту. Вийде щось на зразок цього:

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

Для кожної області необхідно присвоїти відповідне ім'я, для цього необхідно виділити потрібну область (В даному випадку все області представляють собою групи рядків) і натиснути на кнопку з піктограмою, або комбінацію клавіш Ctrl + Shift + N. У вікні потрібно вписати ім'я даної області. Назвемо області так, як вони вказані на малюнку.
Тепер ті елементи таблиці, в яких повинні виводитися дані з інформаційної бази, Необхідно позначити як містять шаблон. Для цього виділяється це поле, і в контекстному меню (Права клавіша миші) вибирається «Властивості». У випадаючому списку властивості осередку «Заповнення» необхідно вибрати «Шаблон» (приклад на малюнку нижче).

Після цього якщо в тексті осередку зустрінеться вираз в квадратних дужках, то воно буде сприйматися системою 1С як параметр. Наприклад, якщо текст комірки наступний:

Мене звуть [МоеІмя],

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

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

Теги: 1С 8, макет, звіти, макети