Налаштування ролі поля СКД із властивістю «Період» в 1С, все для початківців та досвідчених програмістів 1С

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

Тепер налаштуємо вихідні поля. Нехай це будуть такі поля: «Реєстратор», «Період Місяць», «Номенклатура», «Якість» та інформація про залишки. Додавання поля здійснюється подвійним натисканням лівої кнопки на потрібному полі або за допомогою кнопки «>». Після додавання полів натисніть кнопку "ОК".

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

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

Налаштуємо наш звіт:
- Перейдемо на закладку «Ресурси» та визначимо ресурси нашого звіту.
- Натисніть кнопку «>>», щоб вибрати всі поля для ресурсів.
- Тепер перейдемо на закладку "Налаштування" і створимо налаштування у вигляді списку.
- Натисніть кнопку «Конструктор налаштувань компонування даних» (кнопка як чарівної палички).
- Тип звіту: "Список". Натисніть кнопку "Далі".
- Налаштуємо вихідні поля, натиснувши кнопку «>>». Упорядкуємо їх так: "Період Місяць", "Номенклатура", "Якість", "Реєстратор".
- Натисніть кнопку «Далі» та налаштуємо угруповання. Угруповання налаштуємо в наступному порядку: "Період Місяць", "Номенклатура", "Якість". Угруповання «Реєстратор» буде виводитись у вигляді детальних записів.
- Натисніть кнопку "ОК".

Відкриємо наш звіт у режимі 1С:Підприємство. Якщо ми виконаємо цей звіт, побачимо деякі особливості при отриманні залишків. Якщо уважно придивитися до результату звіту, то відразу помітно кілька помилок. Зокрема, чомусь на початку періоду діяльності компанії існує початковий залишок.

І це помилкапов'язана з особливістю системи компонування даних отримувати залишки за реєстратором. Щоб ці залишки виводилися коректно, необхідно додати ще одне поле у вихідні поля запиту до цього поля «ПеріодСекунда». Для додавання поля «ПеріодСекунда» відкриємо звіт у конфігураторі, натисніть кнопку «Відкрити схему компонування даних». Тепер натисніть кнопку «Конструктор запиту» і додамо «ПеріодСекунда». У цьому випадку поле "Реєстратор" у нас залишиться першим полем періоду, "ПеріодСекунда" буде другим, а "ПеріодМісяць" буде третім.
Навіщо потрібна секунда? Система компонування даних обчислює залишки розрахунковим шляхом, і щоб однозначно визначити положення реєстратора на тимчасової осі самого посилання на реєстратор недостатньо, потрібна ще й секунда, тобто дата цього реєстратора, і тоді система компонування зможе розрахунковим шляхом отримати правильний залишок. Якщо вкажемо правильний порядок полів та сформуємо звіт заново, то отримаємо:

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