admin / 05.04.2020

Битрикс: «Ошибка удаления. Возможно есть ссылающиеся объекты.» при попытке удалить инфоблок

Как удалить помеченные на удаление в 1С?

В программных продуктах фирмы 1С нет удаления объектов системы в его исходном понимании. Все объекты системы предварительно могут быть только помечены на удаление, а сам процесс безвозвратного удаления запускается при помощи встроенной обработки – Удаление помеченных объектов.

Чтобы объект стал помеченным на удаление с последующей возможностью его удалить, необходимо выбрать этот объект, нажав на него левой кнопкой мыши, и далее нажатием правой кнопки мыши в вызванном меню выбрать «Пометить на удаление/Снять пометку» (см. рис. 1)

Рис. 1 – Пометка на удаление объекта

После того, как объект помечен на удаление, можно приступить к его непосредственному удалению.

Для этого нужно зайти в раздел Администрирование – Обслуживание – Удаление помеченных объектов, либо сразу воспользоваться сервисом Удаление помеченных объектов (там же в разделе Администрирование)

Рис.2 – Расположение обработки удаления помеченных объектов

Также стоит отметить, что все объекты системы можно найти через главное меню, воспользовавшись командой «Все функции» – Обработки – Удаление помеченных объектов.

После выбора удаления помеченных объектов, открывается окно, в котором задаются параметры будущего удаления.

Рис. 3 – форма настроек удаления помеченных объектов

Рекомендуется устанавливать значение «Выборочное удаление объектов», т.к. данная настройка позволит избежать удаления случайно помеченных документов или объектов системы.

В нижней части можно указать настройку автоматического удаления объектов по расписанию, а также настройку блокировки работы в системе с целью ускорения процесса удаления.

После выбора необходимых настроек, нужно нажать на кнопку Далее – будет запущен поиск помеченных на удаление объектов, после которого все помеченные объекты будут выведены на экран.

Рис. 4 – Помеченные на удаление объекты в обработке удаления

Ненужные к удалению объекты необходимо снять с пометки, а те, которые нужно удалить – отметить соответствующей галкой.

Стоит отметить, что при большом количестве помеченных на удаление объектов, наиболее рационально удалять их порционно.

После того, как необходимое отмечено нажимаем Удалить.

В процессе удаления программа информирует о том, сколько из помеченных объектов удалено, а сколько нет.

Те помеченные на удаление объекты, которые не связаны с другими объектами системы удаляются сразу, в случае же, если удаляемый объект связан с другими объектами системы, то такие объекты сразу не удаляются, а программа выдает следующее сообщение (рис. 5).

Рис. 5 – Процесс удаления связанных объектов

В данном случае программа информирует о том, что нельзя удалить реализацию, т.к. на ее основании создан счет-фактур, т.е. эти два документа взаимосвязаны.

Часто удаляются дубли объектов (т.е. два одинаковых объекта, например, два одинаковых контрагента, один из которых помечается на удаление), при этом, как правило, оба объекта где-то использованы. В таком случае, при запуске процесса удаления, программа также выдаст сообщение о том, что объект где-то используется, но в данном случае, нам нужно подменить дублирующий элемент на основной.

Чтобы проделать данную манипуляцию, необходимо использовать кнопку «Заменить» обработки удаления, при нажатии на данную кнопку, программа предложит объекты системы, которыми можно заменить удаляемый.

Рис. 6 – Замена дублирующего элемента

Выбираем объект, нажимаем «Заменить», программа производит «подмену» одного элемента на другой.

После этого, необходимо повторно произвести удаление помеченного объекта, нажав на кнопку «Повторить удаление».

Информация об успешном удалении объекта выглядит следующим образом:

Рис. 7 – Удаленный объект

Для того, чтобы провести анализ базы на наличие дублирующих элементов, с последующим их удалением из системы, необходимо запустить встроенную обработку – Поиск и замена дублей.

Данная обработка находится в разделе Администрирование – Обслуживание – Корректировка данных.

Рис. 8 – Обработка поиска дублей

Также данную обработку можно найти через Главное меню – Все функции – Обработки.

По заданным параметрам программа осуществляет поиск дублирующих элементов, предоставляет право выбора – какой объект останется основным, а какой будет помечен на удаление (стрелкой отмечается оригинальный объект) и после нажатия на кнопку Удалить дубли, помечает на удаление ненужные объекты.

Рис. 9 – Процесс замены дублей

Дальнейшее удаление помеченных на удаление объектов производится по этапам, описанным ранее.

Функция Удаляет указанные файлы.
УдалитьФайлы(<Путь>, <Маска>)
Параметры: <Путь> (обязательный) Тип: Строка. Путь к удаляемым файлам.
<Маска> (необязательный) Тип: Строка. Маска для выбора удаляемых файлов. В строке маски допускается использование символа «*» (звездочка), обозначающего любое число произвольных символов, и «?» (знак вопроса), обозначающего один произвольный символ.
!!! — Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.
Для удаления одного файла, можно передать его полное имя через первый параметр, либо передать путь к нему через первый параметр, а его короткое имя — через второй.
Удаление файлов производится, если в указанных файлах не установлено свойство «Только чтение». В противном случае возникает сообщение об ошибке.
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши ‘/’, а не обратные ‘\’.
Код 1C v 8.х // Удаление каталога и всех вложенных в него каталогов и файлов
Попытка
УдалитьФайлы(«C:\temp\Works»);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Код 1C v 8.2 УП // Удалим в каталоге все файлы CSV
Попытка
УдалитьФайлы(КаталогВыгрузкиДанных, «*.csv»);
Исключение
#Если Клиент Тогда
Сообщить(ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
В 7-рке для удаления используется
Код 1C v 7.x ФС.УдалитьКаталог(Стр);
//или
ФС.УдалитьФайл(Стр);
Как удалить каталог с файлами?
Код 1C v 7.x // пример привел smaharbA
//Данный пример не работает, если в папке есть файлы с атрибутами только для чтения и системные
Функция Рекурсия(Знач Путь,Сп)
Перем А;
ФСО=СоздатьОбъект(«ФС»);
Стр=ФСО.НайтиПервыйФайл(Путь+»\*.*»);
Пока ПустоеЗначение(Стр)=0 Цикл
Если (Стр<>»..») и (Стр<>».») Тогда
Представление=»»;
Для к=1 По СтрЧислоВхождений(Путь+»\»+Стр,»\») Цикл
Представление=Представление+»\»;
КонецЦикла;
Сп.ДобавитьЗначение(Путь+»\»+Стр,Представление+Стр);
ФСО.АтрибутыФайла(Путь+»\»+Стр,,А);
Если Сред(А,4,1)=»1″ Тогда
Рекурсия(Путь+»\»+Стр,Сп);
КонецЕсли;
КонецЕсли;
Стр=ФСО.НайтиСледующийФайл();
КонецЦикла;
КонецФункции // Рекурсия
//*******************************************
Процедура Сформировать()
Перем Каталог,А;
Если ФС.ВыбратьКаталог(Каталог,»»)=0 Тогда
Возврат;
КонецЕсли;
Сп=СоздатьОбъект(«СписокЗначений»);
Рекурсия(Каталог,Сп);
Сп.СортироватьПоПредставлению(0);
Для к=1 По Сп.РазмерСписка() Цикл
Стр=Сп.ПолучитьЗначение(к);
ФС.АтрибутыФайла(Стр,,А);
Если Сред(А,4,1)=»1″ Тогда
ФС.УдалитьКаталог(Стр);
Иначе
ФС.УдалитьФайл(Стр);
КонецЕсли;
КонецЦикла;
ФС.УстТекКаталог(Каталог+»\. .\»);
ФС.УдалитьКаталог(Каталог);
КонецПроцедуры
Информация взята с сайта http://helpf.pro

Отправить эту статью на мою почту

При попытке удалить ненужный объект системы (элемент справочника, документ, вариант отчета и т.д.) пользователь не сможет окончательно убрать его из базы 1С ему доступно только установка пометки на удаление. Поэтому возникает вопрос- Как удалить помеченные объекты в 1С 8.3?

В данной статье рассмотрим, как выполнить этот процесс. Функционал по удалению для многих конфигураций идентичен и описанная методика подойдет для УТ, ERP, Бухгалтерии и ЗУП.

Для полного удаления объекта из базы 1С необходимо запустить обработку Удаление помеченных объектов. Сделано это не для того чтобы усложнить работу пользователей, а во избежание возникновения ошибок. Например, если убрать контрагента, на которого оформлена реализация то продукция будет продана никому. Следовательно, просто изъят объектов из системы нельзя, необходимо предварительно убедиться, что он нигде не используется и его отсутствие не приведет к ошибкам в программе и именно для этой цели предусмотрена обработка Удаление помеченных объектов.

Таким образом, в 1С удаление выполняется в два этапа:

 Установка пометки на удаление в 1С;

 Окончательное удаление с помощью обработки, если объект никак не задействован в системе.

Как установить пометку на удаление в 1С 8.3?

Для установки пометки на удаление в 1С, выделите нужный справочник/документ (можно так же выделить сразу список объектов), в меню Еще выберите команду Пометить на удаление/Снять пометку (в некоторых журналах выведена пиктограмма этой команды ) или нажмите кнопку delete на своей клавиатуре. Система попросит подтвердить ваши намерения и после этого будет установлен пометку.

Обратите внимание, если вы попытаетесь установить пометку на уже помеченный элемент, то будет выполнено обратное действие-снятие пометки.

Как удалить помеченные объекты?

В Бухгалтерии и ЗУП обработка доступна в разделе Администрирование, в УТ и ERP в разделе НСИ и администрирование → Поддержка и обслуживание. И если Вы вдруг забыли, в каком разделе искать нужный объект системы, всегда можно воспользоваться разделом Все функции.

Обработка Удаление помеченных объектов контролируется ссылочную целостность, т.е. если на удаляемый объект есть ссылки в других объектах, то процедура удаления выполнена не будет.

Доступно два режима работы с обработкой, автоматический и ручной (выборочной), а так же можно настроить регламентное задание для осуществления автоматического удаление согласно заданному расписанию.

При выборочном режиме система отобразит все помеченные на удаление элементы, сгруппированные по виду. С помощью флажков осуществляется выбор объектов, которые требуется окончательно убрать из системы. Двойным щелчком мыши можно открыть объект. После того как выбор сделан надо нажать Удалить и будет запущен процесс очистки базы от помеченных объектов.

При автоматическом режиме данный процесс будет запущен сразу.

В результате, независимо от выбранного режима, обработка произведет попытку удаления всех объектов имеющих пометку. Если удаление невозможно, то будет выведен список не удаленных объектов с ссылками на их места использования.

Доступные в этом случае варианты действий:

 Пометить на удаление и места использования и повторить попытку удаления.

 Внести исправления в места использования. Например, если надо удалить сотрудника, который есть в документе Прием на работу списком, надо удалить его из этого документа.

 Выполнить процедуру замены по команде Заменить. Будет предложен список аналогичных элементов для замены. Например, если надо заменить характеристику номенклатуры в документе, то будет предложен список характеристик этой же номенклатуры.

Для автоматического выполнения процедуры с помощью регламентного задания надо в обработке установить флаг Автоматически удалять помеченные объекты по расписанию и настроить расписание.

Ситуация: при настройке в 1С и тестах обменов в Битрикс выгружается номенклатура. На сайте создались несколько ненужных каталогов товаров и предложений. Содержимое этих ИБ не использовалось в работе сайта (не создавались заказы и пр.).

Проблема: при попытке удалить любой из этих ИБ возникает ошибка: «Ошибка удаления. Возможно есть ссылающиеся объекты.»

Задача: таки удалить бесполезные инфоблоки, появившиеся врезультате тестов.

Причина: инфоблоки каталога и предложений создаются и всегда сосуществуют вместе, ссылаясь друг на друга. Просто взять и сразу удалить их нельзя. Хотя решение очень простое.

Решение

Для начала следует открыть админку и перейти в раздел Контент > Инфоблоки > Типы инфоблоков > Каталог.

Для наглядности я переименовал ненужные ИБ, которые нужно удалить, тебе этого можно не делать:

Открываем ИБ каталога товаров (не предложений), на вкладке Торговый каталог снимаем отметки с чекбоксов Является торговым каталогом и Инфоблок имеет торговые предложения:

Сохраняем. Удаляем.

FILED UNDER : Статьи

Submit a Comment

Must be required * marked fields.

:*
:*