Интерактивное удаление помеченных объектов что это
Программирование в 1С для всех
В этой статье узнаем как осуществляется удаление в 1С, научимся удалять объекты в 1С 8.3 напрямую, помечать их на удаление, и удалять помеченные на удаление объекты 1С.
Прямое удаление в 1С
В платформе 1С 8.3 имеется возможность удалить любой объект так, что он сразу исчезнет из базы 1С. Чтобы такая возможность предоставлялась, необходимо для нужного объекта у роли установить право «Интерактивное удаление».
Если такое право у объекта установлено, то в меню «Ещё» формы списка объекта появится команда «Удалить».
После применения этой команды, объект будет полностью удален из базы. Перед его удалением появится вопрос о том, согласны мы удалить этот объект или нет.
Не рекомендуется в реальной базе оставлять возможность интерактивного удаления объектов.
Сейчас я продемонстрирую почему.
Допустим, у нас ссылка на элемент справочника Контрагент, который мы собираемся удалить, указана в каком-то реквизите документа.
Если мы удалим этот элемент справочника Контрагент, как мы это делали выше, то после повторного открытия документа, в котором была указана ссылка на удаленный элемент справочника Контрагент, на месте удаленного элемента мы обнаружим сообщение «Объект не найден».
Таким образом, интерактивное удаление проходит без контроля ссылочной целостности: удаляя какой-то объект, платформа не проверяет, указана ли ссылка этот объект где-то ещё, тем самым мы ставя под угрозу ссылочную целостность данных базы.
Пометка удаления 1С
Для того, чтобы случайно не удалить объект, ссылка на который возможно указана в каких-то других данных базы 1С, необходимо сначала пометить этот объект на удаление, а потом удалить его при помощи специальной утилиты, которая в процессе удаления будет осуществлять контроль ссылочной целостности.
Чтобы пользователь имел возможность пометить на удаление какой-то объект, необходимо, у роли для этого объекта было установлено право «Интерактивная пометка на удаление».
На рисунке выше я также снял право «Интерактивное удаление», с целью запретить удалять экземпляры объекта без контроля ссылочной целостности.
Сейчас пользователь не может сразу удалить какой-то элемент объекта, для этого ему необходимо сначала пометить этот объекта на удаление. Делается это так: нужно выделить объект в форме списка, вызвать контекстное меню и выполнить команду «Пометить на удаление/снять пометку» (или просто нажать клавишу Del).
Также, можно пометить сразу несколько элементов, выделив нужные.
После выполнения команды, выйдет вопрос о том, нужно ли помечать объекты или нет.
Если мы ответим Да, то выделенные объекты будут помечены на удаление — слева появятся соответствующие значки.
Нам осталось удалить помеченные объекты из базы.
Удаление помеченных в 1С
Если нам нужно дать пользователю возможность удалять из базы помеченные на удаление элементы какого-нибудь объекта, то необходимо, чтобы у роли было для этого объекта установлено право «Интерактивное удаление помеченных».
Для удаления помеченных на удаление объектов следует воспользоваться утилитой «Удаление помеченных объектов». Начиная с платформы 1С 8.3.15, путь к ней следующий: необходимо в меню «Сервис и настройка» выполнить команду «Функции для технического специалиста».
В открывшемся окне следует в ветке «Стандартные» найти и выполнить команду «Удаление помеченных объектов».
В платформе редакции 8.3.14 и ниже, путь к окну с командой «Удаление помеченных объектов» будет следующий:
В открывшейся утилите «Удаление помеченных объектов», сначала будет предложено выбрать вариант удаления: полное удаление или выборочное.
Если выбрать выборочное удаление, то в следующем окне будет предложено выбрать те объекты, которые следует удалить.
После выбора объектов и нажатия на кнопку «Удалить», утилита проведет контроль ссылочной целостности и удалит те объекты, на которые нет ссылок в базе. Объекты же, на которые присутствуют ссылки в каких-то данных, удалены не будут, о чем выйдет сообщение.
В этой же утилите можно посмотреть, где в базе присутствует ссылка на объект, который пытались удалить.
Таким образом, установка пометки на удаление и последующее применение утилиты «Удаление помеченных объектов» позволяет производить более щадящее для ссылочной целостности базы данных удаление объектов.
Более подробно и основательно разработка в 1С дается в моей книге:
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Программирование в 1С для всех
Из этой статьи вы узнаете, как в удалить в 1С объект при помощи программного кода, а также как поставить пометку на удаление.
В предыдущей статье, я рассказывал, как интерактивно удалить в 1С объект, и что для этого нужно настроить в правах конфигурации:
Программное удаление справочника в 1С
Для того чтобы программно удалить экземпляр справочника в 1С, необходимо воспользоваться методом Удалить объекта справочника. Для демонстрации разберу пример: разместим на форме обработки реквизит с ссылкой на справочник Контрагенты.
И при выполнении команды формы обработки, будем удалять этот экземпляр справочника.
В этом коде удаление экземпляра справочника я производил в серверном контексте. Сначала при помощи метода ПолучитьОбъект() из ссылки был получен экземпляр объекта справочника, а потом этот экземпляр удален при помощи метода Удалить(). В реквизит Контрагент управляемой формы я записал пустую ссылку, чтобы отображение ссылки удаленного объекта не вводило в заблуждение.
Замечу, что программное удаление произошло при таких правах на объект.
Право «Интерактивное удаление» снято, то есть мы не можем непосредственно удалять экземпляр этого объекта, но мы можем удалить его программно (благодаря установленному праву Удалить).
Замечу, что при программном удалении объекта контроль ссылочной целостности не происходит! Поэтом не следует злоупотреблять этой возможностью!
Программное удаление документа в 1С
Документ программным способом удаляется также, как и справочник: нужно воспользоваться методом Удалить() экземпляра объекта документа. Например, на форме этой обработки я размещу реквизит с ссылкой на документ.
А при выполнении команды документ будет удаляться.
Как и в случае справочника, программное удаление документа стало возможным благодаря установленному праву «Удалить».
Пометка на удаление программно в 1С
Для того, чтобы программно пометить на удаление объект необходимо воспользоваться методом объекта УстановитьПометкуУдаления.
Для документов он имеет следующий синтаксис: УстановитьПометкуУдаления( ), где параметр ПометкаУдаления имеет тип булево.
Если — Истина, то пометка будет установлена, если Ложь – пометка будет снята.
Переделаем предыдущий пример: на форме разместим две команды.
Одна команда будет устанавливать пометку на удаление у документа в реквизите, вторая снимать.
В этом коде, в процедуре УстановитьНаСервере() мы устанавливаем пометку на удаление, передав в метод УстановитьПометкуУдаления параметр Истина, а в процедуре СнятьНаСервере() снимаем пометку, передав Ложь.
Для объектов справочников метод УстановитьПометкуУдаления имеет следующий синтаксис:
Параметр ВключаяПодчиненные имеет тип Булево, и если установлено Истина, то будут помечены на удаление подчиненные элементы (если справочник иерархический), а также все объекты подчиненного справочника (если есть).
В обработчиках команд будем устанавливать и снимать пометку на удаление.
У справочника Контрагенты включим иерархию.
И также сделаем подчиненный справочник.
Если мы установим пометку для группы с флажком подчиненные.
То будет помечена группа и все входящие в неё объекты.
А без установленного флага Подчиненные будет помечена только группа.
Тоже самое с объектами из подчиненного справочника. При установленном флаге Подчиненные.
Будет помечен на удаление и сам элемент справочника, и объекты подчиненного ему справочника.
А иначе, будет помечен только сам элемент.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Для чего сделана пометка на удаление объектов в 1с
Давайте ответим с Вами на вопрос “Зачем сделана эта пометка для удаления?”, ведь быстрее удалить объект из 1с сразу. Сделано это по нескольким причинам:
В программе объекты 1с можно удалить двумя способами:
Давайте рассмотри что такое ссылочная целостность в 1с. Но для того чтобы нам с вами ответить на этот вопрос мы должны знать что такое “битые” ссылки в 1с. Для тех кто не знает, битые ссылки в 1с это ссылки которые указывают на не используемую область памяти, то есть по сути указывают в никуда. Теперь давайте возьмем для примера любой документ в системе 1с предприятие. В нем находится множествои различных реквизитов. Эти реквизиты могут быть как простыми (примитивные типы такие как число, дата, булево), так могут быть и объектными (такие как ссылки на другие объекты системы, например различные справочники, перечисления и т.д.) Так вот контроль ссылочной целостности в 1с как раз и означает тот факт, что объект не будет удален из системы 1с до тех пор, пока на него ссылаются какие-либо другие объекты системы. Как раз пометка на удаление объектов 1с позволяет сохранить механизм ссылочной целостности в 1с, так как обработка удаления помеченных объектов не даст удалить объект пока на него ссылаются другие объекты.
Как восстановить удаленные объекты в 1с? Что происходит с объектами после их удаления из 1с?
Подобные вопросы нам задают многие люди, и ответ тут один, физическое удаления данных из 1с (с помощью способов описанных ниже) приводит к ПОЛНОМУ УНИЧТОЖЕНИЮ ФАЙЛА ИЗ БАЗЫ! Восстановление удаленных файлов из базы не возможно.
Интерактивное удаление в 1с
Откроется список пользователей, выберите пользователя под которым Вы хотите включить интерактивное удаление 1с объектов и нажмите карандашик или F2. Откроется окно свойств пользователя, перейдите на вторую вкладку “Прочие”. Там найдите ту роль которую мы с Вами копировали, в моем случае это “ПолныеПрава1”, ставим галочку и жмем OK.
После этого запускайте 1с предприятие, выбирайте того пользователя которому установили новую роль. Теперь Вы можете удалять объекты напрямую, чтобы удалить объект выберите его и нажмите сочетание клавиш SHIFT + DEL, система спросит уверены ли вы в удалении, при положительном ответе объект будет удален из системы.
Если у Вас управляемый интерфейс, как например в “Бухгалтерии предприятия ред. 3.0”, то там Вам нужно перейти на вкладку “Администрирование”, там Вы увидите подгруппу “Сервис”, и уже в ней нужно выбрать ” Удаление помеченных объектов “.
Альтернативный способ открытия помощника удаления объектов в 1С 8.2 и 1С 8.3
Если же Вы работаете на платформе 1С 8.3 и у Вас конфигурация с управляемым интерфейсом, то Вам необходимо включить кнопку “Все функции”, как это сделать смотрите здесь.
Начало поиска помеченных на удаление объектов в 1с
Системе потребуется какое то время чтобы выполнить данную задачу, чуть позже Вы увидите окно которое изображено ниже. Обратите внимание у Вас могут быть объекты как с зелеными галочками так и с красными.
Зеленые означают то, что объект можно удалить, красные соответственно что нет. Объект отмеченный красной галочкой нельзя удалить, так как на него ссылаются другие объекты системы, в окошке расположенном ниже Вы увидите те объекты которые ссылаются на него, и прежде чем удалить объект отмеченный красной галочкой, Вам нужно убрать ссылки на этот объект у других объектов. Что это означает на практике?
В нашей компании Вы всегда получите первоклассное обслуживание программы 1С по очень приятным ценам!
Завершение удаления помеченных объектов в 1с
Теперь давайте удалим объекты до конца. Нажимаем кнопку “Удалить”. Система удалит все объекты которые были отмечены зелеными галочками.
Останутся только те которые помечены красными галочками, нажимаем “Закрыть”, на этом процесс удаления объектов из 1с завершен. Если у Вас что-то не получилось мы готовы подключиться к Вашей 1с удалённо и помочь решить Ваши задачи.
1с удаление помеченных объектов, подробная видео-инструкция про удаление объектов 1с
Кто-то любит читать, а кто предпочитает смотреть. Именно для тех кто предпочитает смотреть мы сняли очень интересное видео которое содержит даже больше интересной информации по сравнению со статьей:
Мы надеемся что наша статья про удаление в 1с объектов помеченных на удаление очень Вам помогла, и ответила на все Ваши вопросы.
Как удалить объект из системы 1С?
Сама по себе система 1С лишена опции удаления объектов любого типа из хранилища. Исключение – через пометку на удаление. Как вариант, допускалось внесение настроек в роль пользователя, благодаря чему можно было удалять объекты из памяти без соответствующей пометки. Логично, что внесение подобных настроек – весьма рискованно, так как возникает большая вероятность случайного удаления важных документов или отчетов. К тому же даже такие рискованные настройки не дают возможности удалять все типы объектов (без пометки на удаление).
Пометка на удаление объектов в 1С
Пользователи системы 1С часто задаются вопросом, почему необходимо удалять объекты из памяти через специальную пометку.
Есть две важные причины, обосновывающие подобное положение дел:
Иными словами, отсутствие возможности прямого удаления объектов используется для защиты, в первую очередь, данных предприятия.
Виды удаления
Пользователи системы 1С могут выбрать один из двух методов для удаления объектов:
Отдельно стоит акцентировать внимание на самом понятии ссылочной целостности в 1С. Для большей ясности сначала стоит понять значение выражения «битая ссылка» — это линк, указывающий на несуществующий или неактивный объект памяти. Контроль ссылочной целостности исключает возможность удаления объекта, пока он задействован в ссылочной структуре. И это главное предназначение пометки на удаление – защитить от удаления файл, на который ссылаются другие файлы.
Виды удаления и восстановление удаленных объектов в 1С
Восстановить объект, который был удален из платформы 1С можно только на этапе установки пометки на удаление. Во всех остальных случаях происходит физическое удаление информации, и возобновить ее уже не представляется возможным.
Первый способ
Данный способ годится только для информационных баз с включенной возможностью изменения ИБ.
Главный недостаток интерактивного удаления – отсутствие контроля ссылочной целостности, что в будущем имеет просто фатальные последствия.
На этом этапе нужно выполнить копирование роли «Полные права». Сделать это можно при помощи клавиши F9. В результате появляется еще одна активная роль с наименованием «Полные права 1». Закрепить действие кликом на клавишу «ОК».
Дальнейшие действия направлены на сохранение конфигурации базы данных. Сделать это можно одним из двух способов:
Статус данных можно проверить по изменению активности иконки с бочонком – когда она станет неактивной, сохранение выполнено.
Итог – создание роли с правами на интерактивное удаление объектов из 1С.
Теперь следует вернуться в Конфигуратор и активировать вкладку Администрирование – Пользователи.
Из выпадающего списка пользователей нужно выбрать того, кому будет присвоена функция интерактивного удаления в 1С. Откройте Свойства (F7 или «карандашик») – вкладка Прочие – «Полные права 1». Обязательно установите галочку активности и подтвердите действие кнопкой «Ок».
Теперь для выполнения нужной задачи достаточно войти в систему под именем пользователя, которому присвоены все права на совершение данного действия. Само удаление происходит через комбинацию клавиш SHIFT + DEL.
Второй способ
Рассмотрим вариант более безопасного удаления объектов. Начинается процесс с открытия нужной базы данных, выбора пункта меню Операции – Удаление …:
Пользователи, которые не досконально знают меню платформы 1С, могут испытывать сложности с самостоятельным поиском в интерфейсе ссылок на мастер удаления помеченных объектов 1С. Тогда можно воспользоваться цепочкой Операции – Обработка – Удаление помеченных объектов, для приложений с обычными формами.
После выполнения указанных действий активируется окно, в котором будут показаны все файлы, отмеченные на удаление. Важно установить галочки напротив всех объектов, которые действительно нужно удалить. Предпочтительно – выбрать все. Так как соответствующие отметки должны быть установлены только возле данных, которые уже не будут использоваться и не представляют собой никакой ценности.
Далее, нажав кнопку Удалить все или Удалить выбранные в случае если удаляемые объекты связаны с другими объектами, мы получим список связанных объектов:
Во избежание системных ошибок важно своевременно удалять все отмеченные файлы на удаление.














































