Робота з регістрами відомостей 1с 8.3 стаття. Властивості вимірювання регістра відомостей
Регістр відомостей 1С 8 - об'єкт метаданих, призначений для зберігання довідкової інформації в розрізі певних розробником вимірювань.
Типовий приклад використання регістра відомостей - зберігання інформації про курс валют в розрізі валюти і періоду.
Розглянемо докладніше властивості і налаштування регістру відомостей.
Два головних властивості регістра відомості - періодичність і режим запису.
Це унікальні властивості регістра відомостей, яких більше немає ні у одного об'єкта метаданих. Розглянемо їх докладніше.
Дана властивість дозволяє додати до списку вимірювань додатковий вимір - період. З його допомогою можна вирішити велика кількість задач: зберігання інформації в базі даних, з огляду на актуальність на певну дату. Прикладних прикладів використання періодів безліч: зберігання значення валюти на кожен день, зберігання ціни номенклатури і т.д.
Періодичність може набувати таких значень:
- неперіодичний
- В межах секунди
- В межах дня
- У межах місяця
- В межах кварталу
- В межах року
Отримайте 267 відеоуроків по 1С безкоштовно:
При виборі періодичності, відмінною від варіанту Неперіодичний, система контролюватиме унікальність записів в межах заданого проміжку часу. Якщо запис не унікальна, система 1C видасть повідомлення і не дасть зробити запис в базу даних.
А одна з головних особливостей періодичного регістра відомостей - можливість отримувати готові значення «Зрізу перших» і «Зрізу останніх». Ця інформація дозволяє дуже швидко отримати з бази даних інформацію про останньому (першому) на визначеному рівні на певну дату.
Режим запису регістра відомостей
В 1С 8.2 і 8.3 це властивість може бути або в значенні «Незалежний», або - «Підпорядкування реєстратору». У першому випадку записи можна буде зробити як програмно, так і з форми списку регістра відомостей. У другому випадку обов'язкова вказівка \u200b\u200bдокумента-реєстратора записи. Це накладає певні обмеження, але в той же час відкриває нові можливості.
Властивості вимірювання регістра відомостей
Також слід звернути увагу на палітру властивостей вимірювань регістра відомостей 1С 8.3. Особливо на прапори Провідне і Основний відбір:
- провідне - властивість вимірювання, що має на увазі під собою інформацію про те, що без значення цього виміру запис регістра не має сенс. На ділі це означає що система при видаленні значення з вимірювання видаляє ще й запис регістра з «Провідним» виміром. Може бути встановлено тільки один вимір.
- основний відбір - якщо регістр незалежний, цими вимірами буде встановлюватися реєстрація змін для плану обміну. аналогічно використання Основний відбір по періодувключає основний відбір для період для періодичних регістрів.
Програмна запис в регістр відомостей 1С
Додати нові записи в регістр відомостей можна двома способами - за допомогою менеджера записи і за допомогою набору записів. Перший випадок підійде для одиночної записи, другий - для двох і і більше записів.
Використання менеджера записи:
НоваяЗапісь \u003d РегістриСведеній.КурсиВалют.СоздатьМенеджерЗапісі ();
НоваяЗапісь.Валюта \u003d Справочнікі.Валюти.НайтіПоНаіменованію ( «USD»);
НоваяЗапісь.Період \u003d Дата (31,12,2016);
НоваяЗапісь.Курс \u003d 100;
НоваяЗапісь.Кратность \u003d 1;
НоваяЗапісь.Запісать ();
Використання набору записів регістра відомостей 1С:
НовийНаборЗапісей \u003d РегістриСведеній.КурсиВалют.СоздатьНаборЗапісей ();
// якщо ви не встановите відбір - втечуть всі записи регістру відомостей
НовийНаборЗапісей.Отбор.Валюта.Установіть (Долар, Істина);
НовийНаборЗапісей.Отбор.Період.Установіть (Дата (31,12,2016), Істина);
// формуємо безпосередньо запис набору
НоваяЗапісьНабора \u003d НовийНаборЗапісей.Добавіть ();
НоваяЗапісьНабора.Валюта \u003d Справочнікі.Валюти.НайтіПоНаіменованію ( «USD»);
НоваяЗапісьНабора.Період \u003d Дата (31,12,2016);
НоваяЗапісьНабора.Курс \u003d 100;
НоваяЗапісьНабора.Кратность \u003d 1;
НовийНаборЗапісей.Запісать ();
Регістри відомостей 1С це структурований набір даних з вимірами і ресурсами. Призначений для зберігання періодичної інформації.
періодичність
Інформація зберігається в розрізі вимірювань і періоду. Регістру відомостей, можна задати періодичність:
- неперіодичний
- по реєстратору
- секунда
- тиждень
- місяць
- квартал
Періодичність потрібна для вибору інформації з реєстру на певний період часу. Якщо вказати періодичність, записи в регістр будуть проводитися з періодом, коли було зроблено запис. Припустимо якщо подивитися регістр «Ціни номенклатури», можна побачити історію зміни цін, з якими вимірами і в який період часу був зроблений запис.
Періодичність в регістрах відомостей потрібні для інформації яка змінюється протягом часу, наприклад: курси валют, ціни номенклатури, знижки та націнки номенклатури і т.д.
реєстратори
Якщо робити запис в регістр відомостей за допомогою документа, потрібно встановити режим запису: «Підпорядкування реєстратору» і вибрати документ, яким буде робитися запис в регістр. Тоді в регістрі з'явиться поле «Реєстратор», де буде зберігатися інформація, яким документом було зроблено запис. Так само реєстратор можна використовувати як період, для цього вкажіть в полі «Періодичність» - «За реєстратору». Підпорядкування реєстратору роблять, коли потрібно жорстко прив'язати регістр до документа і зміна записів в регістрі в ручному режимі стає недоступним.
Документи, які будуть в ролі реєстраторів, може бути кілька. Для того щоб додати реєстратор, потрібно зайти в властивості потрібного регістра відомостей, перейти на вкладку «Реєстратори» і встановити галочки навпроти документів, які будуть виконувати роль реєстратора.
Подивитися руху, які робить реєстратор можна з документа. Для цього потрібно зайти в цікавить Вас документ, натиснути: Перейти - Руху документа по реєстратору.
У властивостях регістра не забудьте додати права, їх можна призначити на вкладці «Права». Потім в списку ролей потрібно вибрати роль, якої потрібно додати права на регістр і в списку прав встановити права на для обраної ролі.
унікальність записів
Унікальність запису залежить від періоду і вимірювань. Наприклад, якщо ви хочете записати в регістр «Ціни номенклатури» запис з однаковими вимірами, в один і той же день, то у вас це не вийде і програма викличе помилку, так як періодичність регістра в межах дня.
Якщо періодичність задана реєстратором, він так само бере участь в унікальності записи.
Для НЕ періодичних і не залежних регістрів унікальність залежить від комбінації вимірів.
форми
Для перегляду записів використовуйте форму списку, в ній можна встановити відбір, про що цікавлять Вас полях, подивитися історію записів і змінити їх через форму записи. Переглянути записи регістру можна наступним чином: в верхньому меню натиснути кнопку «Операції» - «Регістри відомостей». У вікні, виберете потрібний Вам регістр. Після цього відкриється форма списку у вигляді таблиці, де кожна стоку є унікальною записом.
Для редагування / створення, використовуйте форму записи, якщо запис підпорядкована реєстратору, тоді поле буде недоступне і форму створити не вийде.
Додавати форми потрібно в конфігураторі, зайшовши в регістр відомостей, у вкладці «Форми» і натиснути на «лупу» у потрібного виду форми. Далі відкриється вікно, де можна налаштувати поля майбутньої форми (розташування, назви і прописати функціонал).
Вимірювання, ресурси і реквізити
Вимірювання призначені для формування унікальності записи, по ним в подальшому можна здійснювати відбір і робити зріз по конкретному вимірюванню. Поєднання вимірювань і формує ключ записи. Краще не створювати велику кількість вимірювань, щоб таблиці не розросталася і в процесі роботи з нею, не гальмувала.
У вимірювань є галочка «Провідне», якщо вона встановлена \u200b\u200bто запис буде зберігатися в базі даних, поки існує дане вимір. Провідних вимірювань можна зробити кілька. Наприклад, в регістрі відомостей «Ціни номенклатури», ведучим виміром є номенклатура, якщо видалити номенклатуру, яка бере участь у записі, тоді автоматично віддалиться запис в регістрі відомостей по цій номенклатурі.
Ресурси призначені для зберігання сумову інформацію: кількість, ціна і т.д. Ресурси надалі будемо отримувати на певний період часу (якщо регістр періодичний), по вимірах.
Реквізити, в більшості випадків, призначені для зберігання додаткової інформації, Вони не беруть участь в унікальності записи. Наприклад, в реквізити можна заносити інформацію таку як автор, коментар і т.д.
З регістром відомостей можна проводити наступні дії:
- Видалення запису в реєстрі відомостей 1С
Особливості
- Унікальність записів по набору вимірів: кожен запис в регістрі відомостей - це нове значення ресурсу.
- Записи регістра відомостей можуть бути як періодичні, так і немає.
- Регістр відомостей може бути залежним і незалежним від реєстратора.
- Є можливість зробити зріз перших і останніх записів на потрібну дату. Це реалізовано віртуальними таблицями: «СрезПервих» і «СрезПоследніх». Для використання цих таблиць можна скористатися як відбором, так і запитом (в конструкторі запитів ви поведіть ці віртуальні таблиці і зможете зробити по ним запит). Ці таблиці будуть доступні, якщо регістр відомостей періодичний.
Регістр «Ціни номенклатури» - періодичний регістр відомостей, записи проводитися по реєстратору.
На зображенні видно, що періодичність встановлена \u200b\u200bв межах дня. Значить, ціну можна змінити один раз в день по унікальним протягом дня вимірам.
Регістр підпорядкований документу «Установка цін номенклатури». Значить, запис в регістр відбувається з цього документа. Рухи по конкретному документу можна подивитися з форми документа «Установка цін номенклатури».
Регістр призначений для зберігання інформації по ціна номенклатури, з вимірами «Тип цін», «Номенклатура» і «Характеристика номенклатури». Провідним вимірами є всі три поля вимірювання, по ньому можна буде робити відбір при вибірці.
висновок: після прочитання статті Ви зможете створити реєстр відомостей 1С, додати вимірювання і ресурси, налаштувати форми редагування і списку. Створити запис і зробити вибірку існуючих записів. Якщо залишилися питання, скористайтеся коментарями в статті, постараюся оперативно дати відповідь на Ваше запитання.
Існує кілька видів регістрів в 1С:
- Накопичення, що зберігають залишки або обороти в числовому вигляді;
- Розрахунку, що зберігають види розрахунків і самі розрахунки, зазвичай використовуються для розрахунку зарплати;
- Бухгалтерії з даними про бухгалтерських розрахунках у вигляді Дт-Кт;
- Регістри відомостей.
На останніх ми зупинимося детальніше, оскільки вони дозволяють компілювати дані з БД за розрізами вимірювань. Наприклад, в «Цениноменклатури» зберігаються дані для конкретної номенклатури і характеристики за певним видом цін.
Рис.1 Регістр «Цениноменклатури»
Характеристики
Регістр буває як періодичним, так і неперіодичних, коли не потрібно зберігати послідовність змін. Але якщо все-таки зберігати потрібно, то встановлюється, в межах якого періоду програма встановить контроль унікальності записів: посекундно, за день, місяць, за квартал і рік.
Рис.2 Періодичність і режим запису
Якщо спробувати створити два записи в межах одного періоду, програма видасть помилку «Запис з такими ключовими полями існує!» і не дасть зробити запис в базу даних.
Також можна вказати режим запису. Перший з «Підпорядкуванням реєстратору», при якому записи будуть реєструватися документами і в кожній з них буде вказано документ-реєстратор. Якщо вибирати другий - незалежний режим, то дані реєструється не реєстратором, а додаються, наприклад, безпосередньо зі списку або як обробка.
Рис.3 Режими запису
Особливість періодичного регістра в тому, що можна використовувати зріз крайніх або перше, отримуючи готові значення з бази даних про останньому / першому визначеному рівні на певну дату.
Запис в регістр відомостей 1С
Рядки в регістрі з періодом і реєстратором, що містять інформацію про ресурсах в розрізі вимірювань, називаються записами.
Щоб додати запис в регістр використовуються або менеджер записів, або набір записів. Якщо у записів в регістрі є загальний ключ, То необхідно використовувати НаборЗапісей. А для запису однієї єдиної записи, якщо в регістрі всі записи унікальні, необхідно використовувати МенеджерЗапісі.
Приклад запису при використанні об'єкта РегістрСведенійНаборЗапісей.
Використання менеджера записи:
НоваяЗапісь \u003d РегістриСведеній.КурсиВалют.СоздатьМенеджерЗапісі (); НоваяЗапісь.Валюта \u003d Справочнікі.Валюти.НайтіПоНаіменованію ( «USD»); НоваяЗапісь.Період \u003d Дата (31,12,2016); НоваяЗапісь.Курс \u003d 100; НоваяЗапісь.Кратность \u003d 1; НоваяЗапісь.Запісать ();При використанні набору записів і методу «Записати» відбувається запис в регістр відомостей набору записів. При цьому може відбуватися як просто додавання рядків, так і заміщення вже наявних рядків в регістрі. Для незалежних регістрів, без установки відборів, буде проведено видалення всіх записів в регістрі і заміщення на додаються записи.
Якщо записати без відбору дані в підвладні регістр, виникне помилка.
Приклад запису з використанням набору записів в підлеглий реєстратору регістр відомостей ЦениНоменклатури:
НовийНаборЗапісей \u003d РегістриСведеній.ЦениНоменклатури.СоздатьНаборЗапісей (); НовийНаборЗапісей.Отбор.Регістратор.Установіть (Посилання); НоваяЗапісьНабора \u003d НовийНаборЗапісей.Добавіть (); НоваяЗапісьНабора.Період \u003d Ссилка.Дата; НоваяЗапісьНабора.Номенклатура \u003d Ссилка.Номенклатура; НоваяЗапісьНабора.Цена \u003d Ссилка.Цена; НовийНаборЗапісей.Запісать ();Приклад запису через менеджер записи:
Запис \u003d РегістриСведеній.КурсиВалют.СоздатьМенеджерЗапісі (); Запісь.Період \u003d Дата; Запісь.Курс \u003d Курс; Запісь.Валюта \u003d Валюта; Запісь.Запісать ();Пошук і читання в регістрі відомостей
Щоб знайти в регістрі відомостей запис і прочитати її, потрібна допомога запитів. Наприклад, нам треба отримати ціни, внесені певним реєстратором:
ВИБРАТИ ЦениНоменклатури.Номенклатура, ЦениНоменклатури.Цена З РегістрСведеній.ЦениНоменклатури ЯК ЦениНоменклатури ДЕ ЦениНоменклатури.Регістратор \u003d & РеєстраторЗміна та видалення записів
Щоб видалити запис регістра відомостей, наприклад, всі курси валюти EUR, скористайтеся наступним кодом:
СтруктураОтбора \u003d новий Структура ( "Валюта", Справочнікі.Валюти.НайтіПоНаіменованію ( "EUR")); Вибірка \u003d РегістриСведеній.КурсиВалют.Вибрать (, СтруктураОтбора); Поки Виборка.Следующій () Цикл МенеджерЗапісі \u003d Виборка.ПолучітьМенеджерЗапісі (); Виборка.ПолучітьМенеджерЗапісі (). Видалити (); КонецЦікла;Для швидкої і повної очистки регістру можна використовувати наступний код:
НоваяЗапісь \u003d РегістриСведеній.ТестовийРегістр.СоздатьНаборЗапісей (); НоваяЗапісь.Запісать ();Щоб скорегувати і змінити регістр, а також швидко заповнити реєстр даними, можна написати універсальну обробку.