Інтернет Windows Android

Періодичні регістри відомостей в 1с 8.3. Пошук і читання в регістрі відомостей

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

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

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

Параметри можуть бути різноманітними, залежно від типу інформації, що зберігається. У таблицях зберігаються властивості об'єктів. Наприклад, для вартості товару це будуть:

  • Найменування
  • Виробник
  • упаковка
  • Ціна закупівлі

У регістри записуються підсумки операцій, що проводяться в системі. Кожен з документів записує свої результати. Такі записи називають Рухами. За ним можна провести сортування і порівняння даних.

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

Налаштування в 1С 8.3 регістрів відомостей

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

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

Як в 1С 8.3 зробити запис в регістр відомостей

Записи в регістрах є наслідком проведення операцій в різних частинах програми. Але є можливість зробити безпосередні зміни. Для цього передбачена можливість запису в регістр відомостей 1С 8.3 програмно (нехай прикладом служить аналітика коливань валютних курсів):

  • Скористаємося Менеджером Записи щоб виконати одну дію:

НоваяЗапісь \u003d РегістриСведеній.КурсиВалют.СоздатьМенеджерЗапісі ();

НоваяЗапісь.Валюта \u003d Справочнікі.Валюти.НайтіПоНаіменованію ( «UA»);

НоваяЗапісь.Період \u003d Дата (30,07,2018);

НоваяЗапісь.Курс \u003d 50;

НоваяЗапісь.Кратность \u003d 1;

НоваяЗапісь.Запісать ();

  • Візьмемо Набір Записів для кількох введень:

НовийНаборЗапісей \u003d РегістриСведеній.КурсиВалют.СоздатьНаборЗапісей ();

//Увага! Тут важливо вказати критерії відбору. В іншому випадку всі зроблені раніше записи зникнуть.

НовийНаборЗапісей.Отбор.Валюта.Установіть (Гривня, Істина);

НовийНаборЗапісей.Отбор.Період.Установіть (Дата (30,07,2018), Істина);

// Тепер можна приступити до записування самого набору

НоваяЗапісьНабора \u003d НовийНаборЗапісей.Добавіть ();

НоваяЗапісьНабора.Валюта \u003d Справочнікі.Валюти.НайтіПоНаіменованію ( «UA»);

НоваяЗапісьНабора.Період \u003d Дата (30,07,2018);

НоваяЗапісьНабора.Курс \u003d 50;

НоваяЗапісьНабора.Кратность \u003d 1;

НовийНаборЗапісей.Запісать ();

Як видалити регістр відомостей в 1с 8.3

У програмі 1с 8.3 додати запис в регістр відомостей щодо легко. Тепер розглянемо варіант видалення. Візьмемо гіпотетичний варіант, де потрібно видалити інформацію про Організацію. У цьому випадку параметр УдаляемаяОрганізація матиме свою посилання.

Виконуємо такі дії:

  • Код 1C v 8.х
  • НаборЗапісей \u003d РегістриСведеній.Об'ектиСтроітельстваОрганізацій.СоздатьНаборЗапісей ();
  • НаборЗапісей.Отбор.Організація.Установіть (УдаляемаяОрганізація);
  • НаборЗапісей.Запісать ();

Після цього потрібно створити вариационную НаборЗапісей, де зробити вибірку по компанії такий же, як і УдаляемаяОрганізація. Вийде порожня сукупність записів. Для повного видалення потрібно його записати з заміщенням. Таким чином, вся інформація, призначена для стирання, замінена на порожні значення.

Зверніть увагу, що вибірку такого набору записів встановлюють виключно на рівність.

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