
Лекція 10
РОБОТА З ДОВІДНИКАМИ, ДОКУМЕНТАМИ І ЖУРНАЛАМИ ДОКУМЕНТІВ
План.
Довідники
Документи
Журнали документів
1. Довідники
Довідник – це агрегатний тип даних, засіб для роботи зі списками однорідних елементів даних. Назва і структура кожного конкретного довідника визначаються при його створенні в конфігураторі. У будь-якого довідника існують два реквізити, що створюються автоматично – «Код» і «Найменування». Реквізити довідників можуть бути періодичними, тобто мати значення, зв'язані з датою. При зміні значення періодичного реквізиту старе значення зберігається, при цьому нове значення починає діяти з зазначеної дати, старе – до зазначеної дати.
Властивості довідника редагуються у вікні редагування «Довідник». Для візуального представлення довідника існують «Форма елемента», «Форма групи» і «Форми списку».
1.1. Підлеглі довідники
Якщо один довідник підлеглий іншому (задається в поле «підлеглий» вікна редагування), то кожен елемент підлеглого довідника буде відповідати елементу довідника-власника. Для цього є спеціальний реквізит «Власник», по якому можна знайти елемент довідника-власника.
1.2. Групи елементів
Довідник може мати ієрархічну структуру. Число рівнів ієрархії визначається в поле «рівні» у вікні редагування. Для завдання ієрархії використовується реквізит «Батько», що і визначає, до якої групи відноситься елемент. Найбільш важливі функції:
Этогруппа() – повертає 1, якщо поточний елемент довідника – група;
ПринадлежитГруппе(<Група>) – повертає 1, якщо поточний елемент належить групі <Група>;
Рівень() – повертає номер рівня поточного елемента.
Глибина вкладеності груп будується в конфигураторі і не може перевищувати 10 рівнів.
1.3. Обробка елементів довідника
Звичайно для обробки елементів довідника використовується наступна послідовність команд:
Спр=Создатьобъект(«Довідник.Названиесправочника»);
Спр.Использоватьдату(<Дата>); // Використовується, якщо є періодичні //реквізити
Спр.Использоватьвладельца(<Власник>); // Використовується, якщо потрібно //вибрати тільки елементи, підлеглі Власнику
Спр.Использоватьродителя(<Група>); // Використовується, якщо потрібно вибрати //тільки елементи, що належать Групі
Спр.ВыбратьЭлементы(); // Робимо вибірку елементів
Пока Спр.Получитьэлемент()=1 Цикл
// Обробка поточного елемента вибірки, наприклад
Повідомити(Спр.Код+« »+Спр.Наименованние);
КонецЦикла;
1.4. Додавання нового елемента довідника
Спр.Новий();
Спр.Найменування = «Этоновыйэлемент»;
// Заповнюємо інші реквізити
Спр.Записать(); // Відбувається запис новий елемент у базу даних
1.5. Пошук елемента довідника
Є кілька способів пошуку елемента довідника:
Найтиэлемент(<Елемент>),
Найтипокоду(<Код>),
Найтипонаименованию(<Найменування>),
Найтипореквизиту (<Реквізит>, <Значення>).
В останньому випадку необхідно, щоб елементи довідника були відсортовані по цьому реквізиті – у властивості реквізиту в закладці «Додатково» потрібно поставити прапорець «Сортування».
Приклад. Наступна функція виконує пошук елемента довідника по найменуванню. Якщо елемент із таким найменуванням не знайдений, то створюється новий елемент. Параметр «Справ» – рядок з ідентифікатором довідника, «Наим» – найменування по який виробляється пошук елемента. Функція повертає посилання на знайдений чи створений елемент.
Функція Поискэлемента(Справ,Наим)
Спр=Создатьобъект(«Довідник»);
Спр.Вид(Справ);
Если Спр.Найтипонаименованию(Наим)=0 Тогда
Спр.Новий();
Спр.Наименование=Наим;
Спр.Записати();
Конецесли;
Повернення Спр.ТекущийЭлемент();
КонецФункции
1.6. Видалення елементів довідника
Для видалення поточного елемента довідника використовується функція Видалити(<Режим>), де <режим> може мати значення 0 – позначка на видалення, 1 – безпосереднє видалення (використовується за замовчуванням). Узагалі безпосереднє видалення не рекомендується, через можливе порушення посилальної цілісності бази даних.
Щоб видалити позначені на видалення об'єкти через систему 1С:Підприємство 7.7, потрібно зайти в програму в монопольному режимі i в меню «Операції» вибрати пункт «Видалення позначених об'єктів…»...