1с erp как удалить помеченные на удаление
Не редкость, когда в работе бухгалтера встречаются ненужные файлы. Но программа 1С:Предприятие 8.3 не позволяет удалять справочные компоненты и документы в тот же момент. На то есть объективные причины, однако это не всегда удобно для пользователя. О том, как произвести процедуру удаления помеченных объектов, расскажем в этой статье.
Объекты удаляются из 1С в два этапа, независимо от конфигурации:
- Пометка на удаление — устанавливаем признак, что документ/справочник нужно удалить.
- Удаление объекта из 1С – процедура, с помощью которой ссылки проверяются на их наличие в базе данных. После проверки ссылок программа разрешает, удалить или нет.
Переходим непосредственно к удалению самих документов. Установить пометку на удаление в 1С не составит труда, единственное, что требуется — выбрать из списка нужный для нас документ или элемент их справочника. Правой кнопкой мыши выбираем Пометить на удаление/Снять пометку или нажимаем кнопку «delete».
В 1С выйдет информационное окно, которое уточнит, действительно ли мы хотим пометить на удаление объект. После согласия в журнале мы видим пометку «X», это означает, что можно переходить ко второму этапу нашей операции.
Сделаем этот шаг с помощью отдельной служебной обработки «Удаление помеченных объектов». Её мы найдём в разделе «Администрирование».
Программа предложит нам на выбор 2 пути — автоматически удалить все объекты или выборочно. При выборе первого способа, автоматического удаления, удалятся все помеченные на удаление объекты. Не всегда этот вариант удобен для пользователей 1С. Поэтому подробнее рассмотрим вариант, когда можно удалить объекты на свой выбор.
Устанавливаем курсор и переходим к действию «Далее», программа проанализирует справочник и выведет все объекты, помеченные на удаление.
Теперь нам нужно определить, какой документ мы удаляем. Устанавливаем курсор на «Снять все флажки», выбираем нужный для нас элемент или раскрываем элемент и выбираем только один документ или несколько и нажимаем на «Удалить».
В результате мы без особых проблем удалили документ. Но не всегда удаётся с такой лёгкостью удалить ненужный элемент. После процедуры удаления 1С часто выдаёт конфликтные ситуации, в ходе которых мы понимаем, что помеченный на удаление элемент участвует в проведённых документах. Если мы хотим всё-таки удалить элемент, то нужно пометить на удаление и документы, в которых он учавствует. Если всё же эти документы важны, то производить все вышеуказанные операции нежелательно.
На платформе 1С:Предприятие 8.3 появилась новая возможность удаления объектов автоматическим образом. Это реализовали с помощью регламентного задания. Программа производит эту операцию по расписанию, и занимает это несколько минут.
Для настройки перейдём в «Администрирование» → «Удаление помеченных объектов». Нужно установить флажок «Автоматически удалять помеченные объекты по расписанию». Можно установить своё расписание, а можно оставить настройки, установленные по умолчанию. В этом случае удаление помеченных «крестиком» объектов будет осуществляться в ночное время, когда в программе отсутствует активность.
Чтобы удалить объекты, помеченные на удаление в 1С 8.3, недостаточно просто нажать «Del» на клавиатуре. Это поможет лишь поставить метку, что мы хотим избавиться от конкретного объекта. Отметить на удаление или, наоборот, снять выделение можно через нажатие «Еще», находясь в справочнике или журнале документов.
Рис.1 Отметить на удаление или, наоборот, снять выделение
Еще один способ установки метки – нажать на выделенном элементе мышкой и выбрать нужную команду.
Рис.2 Еще один способ установки метки – нажать на выделенном элементе мышкой и выбрать нужную команду
Здесь можно использовать небольшие хитрости для выделения нескольких объектов: выделяем их, удерживая кнопку «Ctrl» или «Shift». Чтобы выделить группу объектов от текущего элемента до конца списка можно, выделив первый элемент, нажать комбинацию клавиш «Shift+End» или от текущего выделенного элемента до начала списка – «Shift+Home».
Объекты при этом помечаются красным крестиком.
Контроль ссылочной целостности
Поговорим о реализации механизма контроля в конфигурациях и зачем он нужен.
Постановка пометки – еще не удаление как таковое, а лишь намерение это сделать. По сути, это первый этап нашего процесса. А второй этап – запуск проверки, не связан ли помеченный объект с другими в информационной базе, чтобы сохранить целостность связей.
Механизм запускается как раз при выполнении нашей процедуры, которая, в свою очередь, активируется через «Администрирование-Сервис».
Рис.3 Контроль ссылочной целостности
Обработкой предлагается два режима выполнения нашего процесса – автоматический и выборочный. При автоматическом варианте программа обработает все документы в системе, а при выборочной – объекты из указанного пользователем списка. В условиях больших объемов данных, при необходимости удалить какой-то определенный объект, удобно пользоваться выборочным удалением, чтобы процедура не занимала много времени.
Рис.4 Варианты удаления
Рис.5 Объекты на удаление помечены галочками
Для ускорения процесса удаления можно временно заблокировать программу, установив одноименную галочку. Это актуально при удалении большого объема информации. Программа при этом устанавливает монопольный режим, и другие сотрудники в это время не могут работать с ней.
Как уже было сказано, в рамках процесса удаления программа осуществляет контроль целостности: объект, имеющий связь с другими, удален не будет. Поэтому, чтобы довести наш процесс до конца, надо удалить все связанные с ним объекты.
Это можно сделать с помощью следующего окна, где программа нам показывает помеченные объекты, и если выделить какой-либо из них, справа отразится информация, где он был задействован. Например, наша номенклатура «Костюм рабочий мужской» не может быть удалена, так как она введена в документах «Операция», «Передача материалов в эксплуатацию», «Поступление (акт, накладная)».
Рис.6 Информация о применении объектов, помеченных на удаление
Настройка удаления помеченных объектов по расписанию
Программа будет выполнять данную операцию по расписанию в фоновом режиме, если установить галочку «Автоматически удалять помеченные объекты по расписанию». Для этого достаточно лишь настроить это расписание.
Рис.7 Настройка удаления помеченных объектов по расписанию
Данная настройка также доступна в разделе «Администрирование-Регламентные операции», гиперссылка «Регламентные и фоновые задания».
Рис.8 Регламентные и фоновые задания
Рис.9 Регламентные и фоновые задания
Понимание процесса удаления в 1С немаловажно, ведь зачастую пользователь не может понять, почему после выполнении процедуры удаления, некоторые объекты остаются на месте. Это непонимание может привести к их накоплению и увеличению объема информационной базы. Разобравшись в этом вопросе, а также в том, как происходит контроль целостности, пользователь без труда может навести порядок в своей базе.
Иногда возникает ситуация, когда из программы надо удалить все документы, очистить базу, оставив одни справочники. Сделать это можно несколькими способами. Рассмотрим их все, чтобы определить, какой будет удобен именно вам. В любом случае, удаление документов из базы начинается с проставления пометок на удаление. Это несложное действие, но если у вас все же возникнут вопросы, обращайтесь за консультацией по программе 1С к нашим специалистам – мы с радостью вам поможем.
Удаление документов в журнале документов
Если нам надо удалить все счета, как пометить на удаление сразу группу документов? Зайдем в журнал документов «Счета покупателям».
Рис.1 Зайдем в журнал «Счета покупателям»
Выделить все документы в журнале, можно нажав комбинацию клавиш «Ctrl+A». Затем или нажав правой кнопкой мышки, или в кнопке «Еще» выбрать команду «Пометить на удаление/Снять пометку». Также можно это сделать, нажав кнопку «Del» на клавиатуре.
Рис.2 Пометить на удаление/Снять пометку
Документы помечены на удаление. При этом если в журнале мы установим отбор (по дате, контрагенту), то выделятся только те документы, которые отобразятся в отборе.
Рис.3 Документы помечены на удаление
Установка пометки на удаление с помощью группового изменения реквизитов
Еще один способ пометить на удаление все документы –с помощью встроенной в библиотеку стандартных подсистем обработки «Групповое изменение реквизитов.»
Эту обработку возможно открыть по прямой ссылке: e1cib/command/Обработка.ГрупповоеИзменениеРеквизитов.Команда.ГрупповоеИзменениеРеквизитов
Рис.4 Переход по ссылке
…или использовать стандартный переход по меню панели разделов «Администрирование-Обслуживание-Корректировка данных-Групповое изменение реквизитов».
Рис.5 Переход в групповое изменение реквизитов по меню панели разделов
В первую очередь важно определить перечень типов объектов, которые мы хотим поменять.
Рис.6 Выбор объектов для изменения реквизитов
Мы можем задать несколько типов объектов, чтобы менять только общие для этих объектов реквизиты. Если нужно, мы можем установить отбор для документов (например, ограничить группу документов датой). Отобранные объекты отображаются в подвале открытого окна.
Рис.7 Отбор по дате объекта в обработке
Для активации пометки на удаление необходимо включить специальную опцию в дополнительных параметрах, поскольку пометка на удаление является служебным реквизитом и по умолчанию недоступна в интерфейсе.
Рис.8 Дополнительные параметры обработки
В интерфейсе обработки появился реквизит пометки на удаление, поэтому появилась возможность установить его значение для выбранных объектов.
Рис.9 Установка пометки на удаление
При необходимости можно проверить результат, перейдя в журнал счетов покупателям. Обратите внимание, что перед пометкой на удаление документы нужно будет распровести, а также на наличие связанных объектов.
Рис.10 Документы «Счета покупателям» помечены на удаление
После установки пометки на удаление на все документы, которые нужно удалить, идем в пункт меню «Администрирование» и запускаем процедуру «Удаление помеченных объектов», установив режим «Автоматическое удаление всех помеченных объектов», и нажимаем «Удалить». После проведения контроля ссылочной целостности, документы будут удалены.
Рис.11 После контроля ссылочной целостности, документы удаляются
Удаление всех документов из программы без контроля ссылочной целостности
Этот способ хорошо использовать, когда надо очистить полностью информационную базу от всех документов. Сделать это можно с помощью обработки «Универсальный обмен данными в формате XML». Найти ее можно в разделе «Все функции»-«Обработки».
Рис.12 Универсальный обмен данными в формате XML
Эта обработка предназначена для обмена данными, но в ней имеется закладка «Удаление данных». Хотя разработчики предупреждают, что использовать ее не рекомендуется, т.к. может нарушиться ссылочная целостность информации, ею мы воспользуемся, т.к. нам она нужна именно для полной очистки информационной базы. Устанавливаем галочку, что удалять мы будем все документы.
Рис.13 Удаление данных
При значительном объеме данных эта процедура может занять очень длительное время. Поэтому рекомендуется выполнять удаление по частям.
Работая в программах 1С, рекомендуется периодически удалять помеченные объекты. Накапливаясь в программе, они приводят к увеличению информационной базы, снижается быстродействие программы, появляются недочеты в работе пользователя. Ошибки могут возникнуть, если пользователь случайно выберет помеченный на удаление объект, что часто бывает при копировании документов, создании дублей записей и потом установки пометки на удаление на одну из них и т.п. При установлении даты запрета редактирования на определенную дату будет проблемно удалить такие объекты. Поэтому необходимо вовремя освобождать программу от ненужной информации самостоятельно или осуществлять данные действия силами специалистов в рамках сопровождения 1С 8.3.
В этой статье узнаем как осуществляется удаление в 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 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Из этой статьи вы узнаете, как в удалить в 1С объект при помощи программного кода, а также как поставить пометку на удаление.
В предыдущей статье, я рассказывал, как интерактивно удалить в 1С объект, и что для этого нужно настроить в правах конфигурации:
Программное удаление справочника в 1С
Для того чтобы программно удалить экземпляр справочника в 1С, необходимо воспользоваться методом Удалить объекта справочника. Для демонстрации разберу пример: разместим на форме обработки реквизит с ссылкой на справочник Контрагенты.
И при выполнении команды формы обработки, будем удалять этот экземпляр справочника.
В этом коде удаление экземпляра справочника я производил в серверном контексте. Сначала при помощи метода ПолучитьОбъект() из ссылки был получен экземпляр объекта справочника, а потом этот экземпляр удален при помощи метода Удалить(). В реквизит Контрагент управляемой формы я записал пустую ссылку, чтобы отображение ссылки удаленного объекта не вводило в заблуждение.
Замечу, что программное удаление произошло при таких правах на объект.
Право «Интерактивное удаление» снято, то есть мы не можем непосредственно удалять экземпляр этого объекта, но мы можем удалить его программно (благодаря установленному праву Удалить).
Замечу, что при программном удалении объекта контроль ссылочной целостности не происходит! Поэтом не следует злоупотреблять этой возможностью!
Программное удаление документа в 1С
Документ программным способом удаляется также, как и справочник: нужно воспользоваться методом Удалить() экземпляра объекта документа. Например, на форме этой обработки я размещу реквизит с ссылкой на документ.
А при выполнении команды документ будет удаляться.
Как и в случае справочника, программное удаление документа стало возможным благодаря установленному праву «Удалить».
Пометка на удаление программно в 1С
Для того, чтобы программно пометить на удаление объект необходимо воспользоваться методом объекта УстановитьПометкуУдаления.
Для документов он имеет следующий синтаксис: УстановитьПометкуУдаления(), где параметр ПометкаУдаления имеет тип булево.
Если — Истина, то пометка будет установлена, если Ложь – пометка будет снята.
Переделаем предыдущий пример: на форме разместим две команды.
Одна команда будет устанавливать пометку на удаление у документа в реквизите, вторая снимать.
В этом коде, в процедуре УстановитьНаСервере() мы устанавливаем пометку на удаление, передав в метод УстановитьПометкуУдаления параметр Истина, а в процедуре СнятьНаСервере() снимаем пометку, передав Ложь.
Для объектов справочников метод УстановитьПометкуУдаления имеет следующий синтаксис:
Параметр ВключаяПодчиненные имеет тип Булево, и если установлено Истина, то будут помечены на удаление подчиненные элементы (если справочник иерархический), а также все объекты подчиненного справочника (если есть).
Продемонстрируем работу второго параметра: на форму поместим реквизит с типом булево, реквизит с типом ссылка на справочник Контрагенты , и сделаем две команды: установить и снять.
В обработчиках команд будем устанавливать и снимать пометку на удаление.
У справочника Контрагенты включим иерархию.
И также сделаем подчиненный справочник.
Если мы установим пометку для группы с флажком подчиненные.
То будет помечена группа и все входящие в неё объекты.
А без установленного флага Подчиненные будет помечена только группа.
Тоже самое с объектами из подчиненного справочника. При установленном флаге Подчиненные.
Будет помечен на удаление и сам элемент справочника, и объекты подчиненного ему справочника.
А иначе, будет помечен только сам элемент.
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Читайте также: