Програмної обробки видаляти записи

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

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба

// сЗнач список значень, куди будуть розміщені записи про обєкти,

/ / Вибрані для видалення

// сЗнач2 список обєктів, переданих процедурі НайтіСсилкі перем сЗнач, сЗнач2, ​​тЗнач, ин, значен, пред ОчістітьОкноСообщеній ()

сЗнач = СоздатьОбект (СпісокЗначеній) НайтіПомеченниеНаУдаленіе (сЗнач)

якщо сЗначРазмерСпіска ()> 0 тоді

/ / Діалог для проставлення позначок у списку см на рис 562 сЗначОтметітьЗначенія (, Виберіть обєкти для пошуку посилань)

/ / Після проставлення позначок у списку сЗнач перенесемо

/ / Вибрані елементи в список сЗнач2 (Рис 563) сЗнач2 = СоздатьОбект (СпісокЗначеній)

для ін = 1 по сЗначРазмерСпіска () цикл

/ / Якщо елемент списку не має позначки якщо сЗначПометка (ін) = 1 тоді

значен = сЗначПолучітьЗначеніе (ін, пред) сЗнач2ДобавітьЗначеніе (значен, пред)

КонецЕсли конецЦікла / / Для

якщо сЗначРазмерСпіска ()> 0 тоді

/ / Перегляд результату

сЗнач2ВибратьЗначеніе (, Список для процедури НайтіСсилкі)

// тЗнач таблиця, в яку розмістимо посилання на віддалені обєкти тЗнач = СоздатьОбект (ТабліцаЗначеній)

НайтіСсилкі (сЗнач2, ​​тЗнач)

/ / Перегляд результату Можливий варіант наведено на рис 564 тЗначВибратьСтроку (, Таблиця посилань)

інакше

Повідомити (Список для процедури НайтіСсилкі порожній”) КонецЕсли

інакше

Повідомити (Немає записів з 1С-поміткою видалення”) КонецЕсли

КонецПроцедури / / Виконати

Рис 562 Обєкти, відібрані в списку сЗнач для пошуку посилань

Рис 563 Список сЗнач2 обєктів для пошуку посилань

Рис 564 Виявлена ​​посилання на документ № 4 з довідника Сотруднікі_2

ЗауваженняУ процедурі НайтіСсилкі в якості першого параметра можн про вжити не список значень, а значення одного обєкта, посилання на який потрібно про бнаружіть, наприклад, так:

тЗнач = СоздатьОбект (ТабліцаЗначеній)

док = СоздатьОбект (ДокументІзмененіеОклада) докНайтіПоНомеру (4) / / Шукаємо документ НайтіСсилкі (докТекущійДокумент (), тЗнач)

/ / Перегляд таблиці посилань тЗначВибратьСтроку (, Таблиця посилань)

Переданий процедурі обєкт може не мати позначки видалення

Процедура УдалітьОбекти проставляє DBF-помітки видалення Процедура, так само як і процедура НайтіСилкі, може приймати в якості першого параметра або окремий видаляється обєкт, або список обєктів Причому обєкти можуть загалом-то і не мати 1С-позначок видалення Процедура має наступний синтаксис:

УдалітьОбекти (обєкт | спісок_обектов, [перевірка], [табліца_ссилок])

де перший параметр це або видаляється обєкт, або список обєктів, що повертається, наприклад, процедурою НайтіПомеченниеНаУдаленіе Якщо параметр перевірка = 1, то здійснюється пошук посилань на обєкти, задані першим параметром процедури Знайдені заслання повертаютьсявихіднимпараметромтабліца_ссилок,мають тип ТабліцаЗначеній Причому обєкти, посилання на які знайдені, не видаляються Якщо жперевірка= 0, то посилання і всі обєкти, задані параметром 1, видаляються (зрозуміло, в тому випадку, якщо перший параметр заданий без помилок)

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

ПрикладВидаляється документ № 4 про зміну окладу

процедура Виконати () / / Повязана з кнопкою Пуск обробки Проба перем тЗнач, док

тЗнач = СоздатьОбект (ТабліцаЗначеній)

док = СоздатьОбект (ДокументІзмененіеОклада)

/ / Шукаємо документ

якщо докНайтіПоНомеру (4) = 0 тоді Попередження (Документ під номером 4 не найден”)

КонецЕсли

/ / Перед видаленням проводимо пошук посилань на документ № 4

УдалітьОбекти (докТекущійДокумент (), 1, тЗнач)

/ / Якщо є посилання, то перш їх переглянемо, а потім приймемо рішення,

/ / Видаляти документ чи ні

якщо тЗначКолічествоСтрок ()> 0 тоді

/ / Перегляд таблиці посилань тЗначВибратьСтроку (, Таблиця посилань)

якщо Питання (Видалити документ, на який є посилання”, Так + Ні) = Так тоді

/ / Видаляємо документ без пошуку посилань (проставляємо DBF-позначку видалення) УдалітьОбекти (докТекущійДокумент ())

інакше

Попередження (Документ не видалений”) КонецЕсли

інакше

Попередження (Документ № 4 видалений”) КонецЕсли

КонецПроцедури / / Виконати

Після видалення у вікні повідомлень виникне наступний текст: Дистанційні запису:

Документ: ІзмененіеОклада Номер: 4 Дата: 29112001

ДокументІзмененіеОклада: видалено обєктів 1

Зауваження  Видалення обєктів, на які є посилання, не вітається, оскільки призводить до порушення цілісності інформаційної бази даних системи

1 Довідник 1С це в загальному випадку сукупність декількох взаємоповязаних DBF-файлів

2 Головна таблиця довідника в загальному випадку, крім елементів, включає і групи, до яких ці елементи належать Така організація таблиці дозволяє представляти довідник у вигляді ієрархічного списку

3 Періодичні реквізити довідника зберігаються у файлі 1 SCONSTDBF

4 Для додавання, редагування та перегляду даних довідника можна використовувати форми елемента, групи, списку та документи, а також відповідні методи довідника

5 Реквізити, автоматично формуються програмою (наприклад код) слід робити доступними тільки для читання

6 Атрибути Батько та Власник мають тип Довідник

7 Видалення записів довідника виконується в 3 етапи: на першому записи позначаються для видалення символом * у полі Ismark таблиці довідника, на другому в спеціально виділеному полі DBF-файлу таблиці, на третьому виконується упаковка вибрані для видалення даних записи, видалення яких призведе до порушення цілісності бази даних, не можна видалити в інтерактивному режимі, зате це можна виконати програмно, вживши вбудовану процедуру УдалітьОбекти

8 При простановке позначки видалення на запис-власник автоматично такі помітки проставляються і на підпорядковані їй записи Для інтерактивного режиму справедливо і зворотне: зняття позначки видалення із запису-власника призводить, якщо користувач дав згоду, до зняття таких позначок і з підлеглих записів

9 Зумовлену процедуру ПріЗапісі слід застосовувати для контролю введення імих даних

10 Зумовлена ​​процедура ВводНового вживається для завдання початкових значень вводяться реквізитів

11 Відбір значень довідника можливий тільки за реквізитами, які мають властивості Сортування і Відбір з реквізиту

12 У підлеглому довіднику відображаються лише рядки, повязані із записом, обраної в довіднику-власника

13 Звязок між підлеглим довідником і його власником здійснюється через атрибут Власник підлеглого довідника Звязок між їх елементами через поля Parentext і Id DBF-таблиць цих файлів

14 Довгий код за вибором даних слід замінювати запитами

15 Для швидкого відображення вибірки, створеної в результаті виконання запиту, її можна вивантажити в таблицю значень, а останню вивести на екран, вживши метод ВибратьСтроку

16 Перебір записів вибірки запиту виконується в циклі Поки, использующем метод Угруповання Причому для доступу до вкладеної групі вибірки колись потрібно вибрати запис групи більш високого рівня

17 Методи ІспользоватьДату, ІспользоватьВладельца і ІспользоватьРодітеля вживаються для обєктів, що мають тип Довідник, які або повертаються функцією СоздатьОбект, або є компонентами інших обєктів, наприклад документів або інших довідників, або повертаються параметром контекст функції ОткритьФорму або методу ОткритьПодбор

Джерело: Бартеньев О В 1С: Підприємство: програмування для всіх Базові обєкти та розрахунки на одній дискеті М: Діалог-МІФІ, 2005 464 с

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*