Довідники - мова 1с підприємство 8

призначення довідників

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

Система 1С: Підприємство 8 дозволяє вести практично необмежену кількість необхідних довідників. Кожен довідник являє собою список однорідних об'єктів: посад, співробітників, клієнтів, товарів і т. Д. Кожен такий об'єкт називається елементом довідника.

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

Реквізити довідника (поля)

В якості обов'язкових реквізитів кожен довідник має Код і Найменування. Код елемента довідника може бути як числовим, так і текстовим. Система 1С: Підприємство 8 надає широкі можливості по роботі з кодами елементів довідника: автоматичне присвоєння кодів, автоматичний контроль унікальності коду і інші.

Крім Коду та Назви, в довідниках системи 1С: Підприємство може зберігатися будь-яка додаткова інформація про елемент довідника. Для зберігання такої інформації в довіднику можуть бути створені додаткові реквізити (поля). Використовуючи механізм реквізитів довідника, легко організувати, наприклад, картотеку співробітників. Наприклад, довідник Співробітники майже напевно буде мати реквізити Посада, Оклад, ДатаПріема і інші. Фірма 1С передбачила програмістів і ввела в усі довідники два обов'язкових (зумовлених) реквізиту: Код і Найменування. Дійсно, практично будь-який об'єкт з реального життя містить ці атрибути. Наприклад, для співробітників кодом виступає табельний номер, а найменуванням - Прізвище, Ім'я та По батькові (ПІБ). Крім того, використання кодів (при використанні автоматичної нумерації) дозволяє з легкістю зрозуміти, який елемент був введений раніше, а який пізніше в базу даних.

типи даних

Для кожного реквізиту довідника необхідно задати тип даних, наприклад, "число", "рядок", "дата", булево (Істина або Брехня). Це базові типи, але можна вказати і складні типи даних. Наприклад, реквізит Посада має тип даних Посади. В цьому випадку, значення цього реквізиту будуть вибиратися з довідника Посади. Так реалізується найпростіша зв'язок між довідниками, коли значення реквізитів одного довідника вибираються з елементів іншого довідника.

ієрархічні довідники

Список елементів довідника в системі 1С: Підприємство 8 може бути багаторівневим. В цьому випадку всі рядки довідника будуть розділятися на 2 види: «просто» елементи довідника і групи довідника. Групи дозволяють переходити на нижні рівні багаторівневого довідника. Використання багаторівневих довідників дозволяє організувати введення інформації в довідник з потрібним ступенем деталізації. Елементи і групи елементів в багаторівневому довіднику можна переносити з однієї групи в іншу.

підлеглі довідники

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

табличні частини

Починаючи з версії 1С 8.0, в платформі реалізована можливість для елемента довідника задавати одну або кілька табличних частин. Цю можливість рекомендується використовувати для відображення інформації, пов'язаної з даним елементом, але не має власної об'єктної сутності (для яких рекомендується заводити підлеглі довідники). Наприклад, для довідника Співробітники можуть бути заведені табличні частини Освіта та СоставСемьі. Робота з табличними частинами схожа на роботу з підлеглими довідниками за винятком того, що табличні частини не можуть використовуватися в якості значень реквізитів інших об'єктів.

Де використовується програмний код для роботи з довідниками?

Так як для виконання програмного коду нам необхідно звертатися до бази даних, дані шматки програмного коду повинні розміщуватися в процедурах і функціях (або модулях) виконуваних на стороні сервера. Додаткову інформацію дивись в розділі Про програмних модулях.

Для роботи з довідником з будь-якого модуля потрібно спочатку створити посилання на цей довідник.

СпрСотруднікі = Довідники. співробітники; // або 2 варіант
СпрДолжності = Довідники [ "Посади"];

2. Створення і запис нового елемента довідника

НОВЕЛ = Довідники. Співробітники. СоздатьЕлемент ();
НОВЕЛ. Найменування = "Петров Петро Петрович";
НОВЕЛ. Оклад = 25000;
НОВЕЛ. Записати (); // саме в цей момент відбувається запис в базу даних

3. Створення і запис нової групи довідника (для ієрархічного довідника)

Нов = Справочнікі.Сотруднікі. Створити групу ();
Нов. Найменування = "Працюючі";
Нов. Записати ();
// або 2 варіант
Нов = Довідники [ "Співробітники"]. Створити групу ();
Нов. Найменування = "Працюючі";
Нов. Записати ();

4. Пошук елемента довідника

// якщо елемент знайдений, то він повертається, інакше повертається значення Не визначено

СпрСотр = Довідники. співробітники;

НайденнийСотр = СпрСотр. НайтіПоКоду (123); / / Шукаємо по коду
НайденнийСотр = СпрСотр. НайтіПоНаіменованію ( "Іванов Іван Іванович"); // по найменуванню
НайденнийСотр = СпрСотр. НайтіПоРеквізіту ( "Оклад". 5000); // з реквізиту

// далі потрібно перевірити знайдене значення

Якщо НайденнийСотр = Не визначено Тоді
// елемент не знайдений
КонецЕсли;

5. Видалення елемента довідника

СпрСотр = Довідники. співробітники;

СпрСотр. Видалити (); // безпосереднє видалення поточного елемента довідника

СпрСотр. УстановітьПометкуУдаленія (Істина); // позначка на видалення
СпрСотр. УстановітьПометкуУдаленія (Брехня); // зняти позначку на видалення

// можна перевірити, позначений елемент на видалення
// властивість ПометкаУдаленія має тип Булево (Істина або Брехня)

Позначка = СпрСотр. ПометкаУдаленія; // зверніть увагу: це властивість
Якщо Позначка = Істина Тоді
// елемент позначений на видалення
КонецЕсли;

6. Перебір елементів довідника


Вибірка = Довідники. Сотруднікі.Вибрать ();
Поки Вибірка. Наступний () = 1 Цикл // початок перебору елементів довідника в циклі
// дії з черговим елементом.
Повідомити ( "Співробітник" + Вибірка. Найменування);
КонецЦікла;

7. Батько. Перебір елементів всередині групи.


Група в термінах 1С - це "батько".

СпрСотр = Довідники. співробітники;
ГруппаРаботающіе = СпрСотр. НайтіПоНаіменованію ( "Працюючі");
Вибірка = СпрСотр. Вибрати (ГруппаРаботающіе);
Поки Вибірка. Наступний () = 1 Цикл
// дії з черговим елементом
Повідомити ( "Співробітник" + Вибірка. Найменування);
КонецЦікла;

8. Власник. Перебір елементів довідника, що належать елементу іншого довідника.


Один довідник підпорядкований іншому довіднику, наприклад довідник НалоговиеЛьготи підпорядкований довіднику Співробітники.


9. Транзакція

СпрСотр = Довідники. співробітники;
НачатьТранзакцію ();

Для Ном = 1 За 100 Цикл
Нов = СпрСотр. СоздатьЕлемент ();
Нов. Найменування = "Новий" + Рядок (Ном);
Нов. Записати ();
КонецЦікла;