Контакти

Робота з регістрами відомостей 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 РегістриСведеній.ТестовийРегістр.СоздатьНаборЗапісей (); НоваяЗапісь.Запісать ();

Щоб скорегувати і змінити регістр, а також швидко заповнити реєстр даними, можна написати універсальну обробку.



Сподобалася стаття? поділіться їй