1с 8 управляемое приложение как удалить документы
Каждый пользователь программы 1С сталкивается с ситуациями, когда нужно удалить из программы какой-либо объект: документ, элемент справочника и т.п. При этом, в программе 1С 8.3 реализован механизм контроля ссылочной целостности, когда сначала устанавливается пометка на удаление на объект, а затем происходит контроль ссылок на другие объекты и его удаление (при возможности). Это значит, что если данный объект или его данные используются в другом документе, то программа его не удалит, указав ссылку на связанный объект. Хотя возможность непосредственного удаления объектов, без контроля ссылочной целостности существует и задается разработчиком или администратором при настройке ролей пользователей.
Пометка на удаление в 1С 8.3
Рассмотрим на примере программы 1С 8.3 Бухгалтерия 3.0 как удалить помеченные на удаление объекты. Для начала разберемся, как поставить пометку на удаление.
Для того чтобы поставить пометку на удаление, достаточно выделить объект и нажать кнопку Del на клавиатуре, нажать кнопку Еще и выбрать команду Пометить на удаление/Снять пометку .
Эта же команда доступна, если щелкнуть на объекте правой кнопкой мыши. При этом мы можем выделить группу объектов, если при выделении удерживать кнопку Ctrl или Shift.
В этом случае пометка на удаление будет установлена на выделенные объекты.
Обработка Удаление помеченных объектов
Для того чтобы удалить помеченные на удаление объекты, в пункте меню Администрирование есть раздел Удаление помеченных объектов .
Для их удаления нам нужно или пометить на удаление связанные с этим элементом объекты, или заменить их в перечисленных местах использования (документах и т.п.)
Таким образом, нам необходимо проанализировать все неудаляемые элементы. После чего нажать кнопку Повторить удаление .
При удалении большого объема информации, для ускорения выполнения действия можно временно заблокировать работу программы 1С 8.3 (установив галочку Заблокировать всю работу в программе и ускорить удаление ), установив тем самым монопольный режим. Но использовать эту настройку нужно только при необходимости, чтобы не блокировать работу пользователей.
См. также:
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
Карточка публикации
(6 оценок, среднее: 4,33 из 5)
Данную публикацию можно обсудить в комментариях ниже.Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>
Все комментарии (1)
Спасибо за важную и полезную информацию.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Как не попасть в ловушку, работая с контрагентами из ЕАЭС
[25.11.2021 запись] Практический переход на ФСБУ 25 в 1С - Часть 1
[17.11.2021 запись] Практический переход на ФСБУ 6 и ФСБУ 26 в 1С
Изменения в 2021 году, о которых нужно знать бухгалтеру
Переход на ФСБУ 6/2020 «Основные средства» в 1С по альтернативному алгоритму
[29.10.2021 запись] Пообъектный учет ОС и подходы к определению и пересмотру СПИ
Большое спасибо Мария, за Ваш профессиональный подход к теме, подробный разбор сложных вопросов и отличное владение всеми возможностями программы, которое Вы передаете нам.
Решал задачу - создания новой базы для новой организации, но с теми же контрагентами и номенклатурой.
Самым простым решением стало - скопировать имеющуюся базу и почистить ее от всех документов. Так и родилась данная внешняя обработка - открывается через Файл - Открыть .
Протестирована на конфигурациях, платформы 1С:Предприятие 8.3 (8.3.13.1644, 8.3.17.1851 и 8.3.18.1289):
- Бухгалтерия предприятия, редакция 3.0 (3.0.71.89, 3.0.96.35)
- Зарплата и управление персоналом, редакция 3.1 (3.1.7.61)
- Управление нашей фирмой, редакция 1.6 (1.6.13.54)
- Управление торговлей, редакция 11 (11.4.13.123)
1. Оптимизирован алгоритм обхода списка документов - теперь обход документов происходит намного быстрее.
2. Решены "детские" проблемы: например, была ошибка запроса для документа ПоказателиЕНВД программы УНФ (подробности смотрите в комментариях).
3. Изменен алгоритм распроведения документов - теперь никакие проверки при распроведении не срабатывают - а значит не надо дополнительно включать/отключать, какие-либо параметры или настройки в программах, и, как дополнение, теперь распроведение работает на многих конфигурациях корректно
4. Порядок обработки документов (распроведение или удаление) происходит так: если вы задали список видов документов, значит по тому порядку как он задан, если не задали, то по порядку имен объектов метаданных (по возрастанию от А до Я).
6. Если вам нужно контролировать процесс и иметь возможность останавливать процесс обработки документов, моя рекомендация - запускать процесс через отладку конфигуратора.
Немного теории и практики.
1. Если надо удалить/распровести документы до определенной даты, то ставьте в поле "До даты" любой период. По умолчанию период устанавливается текущей датой.
Можете указать организацию, иначе будут обработаны документы без учета организации.
2. При свертке баз я уже неоднократно использовал удаление только помеченных на удаление документов. Получается так - что те документы, которые вы хотите удалить, вы заранее помечаете на удаление с помощью, например, групповой обработки документов. И наоборот, те документы, которые не нужно удалять, вы не помечаете на удаление.
В связи с этим добавлена функциональность
3. Однажды удалял документы на измененной типовой базе и столкнулся с тем, что документ-регистратор был удален из базы без проверки связанных ссылок, а записи по регистру сведений удалены не были.
После чего программно или интерактивно удалить записи из регистра не удается!
Задействовал "Тестирование и исправление" с режимом "создания объекта - при наличии ссылок на несуществующие объекты". После чего почистил записи программно.
Так как в той ситуации подобных баз было несколько (филиальная сеть) - решил перед удалением распроводить документы.
И так появилась еще одна функциональность "Распроводить документы перед удалением":
4. В дальнейшем, идея "распроводить" документы перед удалением мне понравилась, и я выделил "Распроведение документов" в отдельный функционал:
5. Иногда при чистке баз требуется оставить вместе с номенклатурой цены, поэтому появилась функциональность "Не удалять документы Установка цен номенклатуры":
7. Добавил возможность отбирать документы для удаления / распроведения в виде прямых и обратных списков: "Обрабатывать только из списка" и "Не обрабатывать из этого списка".
С помощью данных списков можно исключить из обработки документы, по которым специфичным образом настроены типовые механизмы и из-за которых, к примеру, нельзя распровести документы перед удалением.
ПС. Во время разработки понадобилось узнать максимальную длину наименований документов в БП, разработал вспомогательную обработку (прикладываю в публикации). Оказалось, что в БП максимальная длина документов составляет 93 символа (см. вложенные скрины).
Иногда возникает ситуация, когда из программы надо удалить все документы, очистить базу, оставив одни справочники. Сделать это можно несколькими способами. Рассмотрим их все, чтобы определить, какой будет удобен именно вам. В любом случае, удаление документов из базы начинается с проставления пометок на удаление. Это несложное действие, но если у вас все же возникнут вопросы, обращайтесь за консультацией по программе 1С к нашим специалистам – мы с радостью вам поможем.
Удаление документов в журнале документов
Если нам надо удалить все счета, как пометить на удаление сразу группу документов? Зайдем в журнал документов «Счета покупателям».
Выделить все документы в журнале, можно нажав комбинацию клавиш «Ctrl+A». Затем или нажав правой кнопкой мышки, или в кнопке «Еще» выбрать команду «Пометить на удаление/Снять пометку». Также можно это сделать, нажав кнопку «Del» на клавиатуре.
Документы помечены на удаление. При этом если в журнале мы установим отбор (по дате, контрагенту), то выделятся только те документы, которые отобразятся в отборе.
Установка пометки на удаление с помощью группового изменения реквизитов
Еще один способ пометить на удаление все документы –с помощью встроенной в библиотеку стандартных подсистем обработки «Групповое изменение реквизитов.»
Эту обработку возможно открыть по прямой ссылке: e1cib/command/Обработка.ГрупповоеИзменениеРеквизитов.Команда.ГрупповоеИзменениеРеквизитов
…или использовать стандартный переход по меню панели разделов «Администрирование-Обслуживание-Корректировка данных-Групповое изменение реквизитов».
В первую очередь важно определить перечень типов объектов, которые мы хотим поменять.
Мы можем задать несколько типов объектов, чтобы менять только общие для этих объектов реквизиты. Если нужно, мы можем установить отбор для документов (например, ограничить группу документов датой). Отобранные объекты отображаются в подвале открытого окна.
Для активации пометки на удаление необходимо включить специальную опцию в дополнительных параметрах, поскольку пометка на удаление является служебным реквизитом и по умолчанию недоступна в интерфейсе.
В интерфейсе обработки появился реквизит пометки на удаление, поэтому появилась возможность установить его значение для выбранных объектов.
При необходимости можно проверить результат, перейдя в журнал счетов покупателям. Обратите внимание, что перед пометкой на удаление документы нужно будет распровести, а также на наличие связанных объектов.
После установки пометки на удаление на все документы, которые нужно удалить, идем в пункт меню «Администрирование» и запускаем процедуру «Удаление помеченных объектов», установив режим «Автоматическое удаление всех помеченных объектов», и нажимаем «Удалить». После проведения контроля ссылочной целостности, документы будут удалены.
Удаление всех документов из программы без контроля ссылочной целостности
Этот способ хорошо использовать, когда надо очистить полностью информационную базу от всех документов. Сделать это можно с помощью обработки «Универсальный обмен данными в формате XML». Найти ее можно в разделе «Все функции»-«Обработки».
Эта обработка предназначена для обмена данными, но в ней имеется закладка «Удаление данных». Хотя разработчики предупреждают, что использовать ее не рекомендуется, т.к. может нарушиться ссылочная целостность информации, ею мы воспользуемся, т.к. нам она нужна именно для полной очистки информационной базы. Устанавливаем галочку, что удалять мы будем все документы.
При значительном объеме данных эта процедура может занять очень длительное время. Поэтому рекомендуется выполнять удаление по частям.
Работая в программах 1С, рекомендуется периодически удалять помеченные объекты. Накапливаясь в программе, они приводят к увеличению информационной базы, снижается быстродействие программы, появляются недочеты в работе пользователя. Ошибки могут возникнуть, если пользователь случайно выберет помеченный на удаление объект, что часто бывает при копировании документов, создании дублей записей и потом установки пометки на удаление на одну из них и т.п. При установлении даты запрета редактирования на определенную дату будет проблемно удалить такие объекты. Поэтому необходимо вовремя освобождать программу от ненужной информации самостоятельно или осуществлять данные действия силами специалистов в рамках сопровождения 1С 8.3.
Из этой статьи вы узнаете, как в удалить в 1С объект при помощи программного кода, а также как поставить пометку на удаление.
В предыдущей статье, я рассказывал, как интерактивно удалить в 1С объект, и что для этого нужно настроить в правах конфигурации:
Программное удаление справочника в 1С
Для того чтобы программно удалить экземпляр справочника в 1С, необходимо воспользоваться методом Удалить объекта справочника. Для демонстрации разберу пример: разместим на форме обработки реквизит с ссылкой на справочник Контрагенты.
И при выполнении команды формы обработки, будем удалять этот экземпляр справочника.
В этом коде удаление экземпляра справочника я производил в серверном контексте. Сначала при помощи метода ПолучитьОбъект() из ссылки был получен экземпляр объекта справочника, а потом этот экземпляр удален при помощи метода Удалить(). В реквизит Контрагент управляемой формы я записал пустую ссылку, чтобы отображение ссылки удаленного объекта не вводило в заблуждение.
Замечу, что программное удаление произошло при таких правах на объект.
Право «Интерактивное удаление» снято, то есть мы не можем непосредственно удалять экземпляр этого объекта, но мы можем удалить его программно (благодаря установленному праву Удалить).
Замечу, что при программном удалении объекта контроль ссылочной целостности не происходит! Поэтом не следует злоупотреблять этой возможностью!
Программное удаление документа в 1С
Документ программным способом удаляется также, как и справочник: нужно воспользоваться методом Удалить() экземпляра объекта документа. Например, на форме этой обработки я размещу реквизит с ссылкой на документ.
А при выполнении команды документ будет удаляться.
Как и в случае справочника, программное удаление документа стало возможным благодаря установленному праву «Удалить».
Пометка на удаление программно в 1С
Для того, чтобы программно пометить на удаление объект необходимо воспользоваться методом объекта УстановитьПометкуУдаления.
Для документов он имеет следующий синтаксис: УстановитьПометкуУдаления(<ПометкаУдаления>), где параметр ПометкаУдаления имеет тип булево.
Переделаем предыдущий пример: на форме разместим две команды.
Одна команда будет устанавливать пометку на удаление у документа в реквизите, вторая снимать.
В этом коде, в процедуре УстановитьНаСервере() мы устанавливаем пометку на удаление, передав в метод УстановитьПометкуУдаления параметр Истина, а в процедуре СнятьНаСервере() снимаем пометку, передав Ложь.
Для объектов справочников метод УстановитьПометкуУдаления имеет следующий синтаксис:
Параметр ВключаяПодчиненные имеет тип Булево, и если установлено Истина, то будут помечены на удаление подчиненные элементы (если справочник иерархический), а также все объекты подчиненного справочника (если есть).
Продемонстрируем работу второго параметра: на форму поместим реквизит с типом булево, реквизит с типом ссылка на справочник Контрагенты , и сделаем две команды: установить и снять.
В обработчиках команд будем устанавливать и снимать пометку на удаление.
У справочника Контрагенты включим иерархию.
И также сделаем подчиненный справочник.
Если мы установим пометку для группы с флажком подчиненные.
То будет помечена группа и все входящие в неё объекты.
А без установленного флага Подчиненные будет помечена только группа.
Тоже самое с объектами из подчиненного справочника. При установленном флаге Подчиненные.
Будет помечен на удаление и сам элемент справочника, и объекты подчиненного ему справочника.
А иначе, будет помечен только сам элемент.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
В программе 1С практически ни один объект нельзя сразу физически удалить. Данная возможность настраивается в ролях (права «удаление» и «интерактивное удаление»). Обычно разработчик не разрешает выполнение таких действий во избежание плачевных последствий в дальнейшем.
Пометка на удаление означает неактуальность объекта для пользователя. При установке пометки на документ, автоматически отменяется его проведение.
Далее будет подробно рассмотрено, как можно не только пометить объект на удаление в 1С 8.3, но и физически удалить помеченный объект. Этот принцип применяется во всех конфигурациях 1С.
Пример удаления элемента справочника Номенклатура
В нашем примере мы будем удалять элемент справочника «Номенклатура», но процесс удаления документа или любого другого объекта ничем не отличается от приведенной инструкции.
Установим пометку на удаление непосредственно из формы списка данного справочника. Для этого выделим нужную нам позицию и нажмем на клавиатуре клавишу Del (либо воспользовавшись контекстным меню).
Программа задаст нам вопрос о необходимости (либо снятии) пометки на удаление. Ответим «Да».
После этого у выбранного нами элемента справочника появится знак . Напоминаем, что если у объекта конфигурации доступны права на удаление, либо интерактивное удаление, тогда при помощи комбинации Shift+Del вы сразу сможете удалить его физически.
Теперь можно приступить к непосредственному удалению нашего объекта справочника. Если у вас не будет доступен данный функционал, значит, вы не имеете соответствующих на него прав.
Выберите в меню «Администрирование» пункт «Удаление помеченных объектов».
Получите понятные самоучители по 1С бесплатно:
Так же данный функционал доступен в меню «Все функции».
В открывшемся окне программа предложит вам выбрать, хотите ли вы удалить все помеченные на удаление объекты или только некоторые. В нашем примере мы будем удалять только номенклатуру «Доска обрезная 50*250*300».
После того, как вы нажмете «Далее», выведутся все помеченные на удаление объекты. Отметим флагом только нашу номенклатурную позицию «Доска обрезная 50*250*300» и нажмем «Удалить».
Некоторое время система будет вычислять, не ссылаются ли другие объекты информационной базы на нашу доску. В результате программа выдала нам уведомление о том, что удаление невозможно.
Нажмем на кнопку «Далее» для просмотра тех объектов, из-за которых удаление невозможно.
Чтобы наша номенклатура все-таки удалилась, необходимо пометить на удаления все объекты в таблице справа. Еще одним вариант – везде заменить наш объект на другой.
С простановкой пометки на удаления у связанных объектов у вас не должно возникнуть проблем, поэтому мы выберем замену.
Нажмите на кнопку «Заменить…».
Выберем ту номенклатурную позицию, на которую будет произведена замена во всех связанных объектах. После этого вам снова будет доступно окно для повторного удаления. На этот раз все прошло успешно, о чем нас уведомила программа.
Автоматическое удаление помеченных объектов по расписанию
В более новых версиях программы 1С (начиная с 8.3) разработчики добавили очень удобную возможность автоматического удаления помеченных объектов по расписанию. Давайте рассмотрим, как сделать данную настройку.
В открывшейся форме перейдите в раздел «Регламентные операции» и установите флаг в пункте «Автоматически удалять помеченные объекты по расписанию». После этого для вас станет активной гиперссылка «Настроить расписание». Перейдите по ней.
Перед вами откроется стандартная форма настройки расписания. При необходимости можете изменить установленные по умолчанию значения, но так чтобы время запуска данной регламентной операции не совпадало с рабочим временем сотрудников вашей организации.
Читайте также:
- Как пользоваться приложением money manager
- У вас нет доступа к этому чату так как вас заблокировал его администратор телеграм
- Не могу перейти по ссылке в инстаграм с телефона
- Assembly csharp csproj приложение на котором основан этот тип проектов не найдено
- Как поменять карту магнит на другую в приложении