Получить список помеченных на удаление объектов. |
Я |
20.11.08 — 13:05
Как получить список помеченных на удаление объектов со ссылками на объекты, которые после контроля невозможно удалить, в какой — нибудь текстовый файл. Т.К. когда их 12000, просто невозможно отследить их в Предприятии. Может есть какая-нибудь обработка
1 — 20.11.08 — 13:09
курим УдалитьОбъекты
2 — 20.11.08 — 13:09
НайтиСсылки() кажись. А что СП отсутствует как таковой?
3 — 20.11.08 — 13:09
перебрать 12000 + НайтиСсылки();
4 — 20.11.08 — 13:10
НайтиСсылки(<?>,);
FindReferences(<?>,);
Синтаксис:
НайтиСсылки(<Объекты>,<Ссылки>)
Назначение:
Находит ссылки на объекты, переданные в списке значений.
Параметры:
<Объекты> — конкретное значение искомого объекта или значение типа »СписокЗначений», в котором данной процедуре передаются объекты, по которым надо найти ссылки.
<Ссылки> — идентификатор объекта типа »ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. объект на который ссылаются; 2. объект, который содержит ссылку; 3. комментарий к ссылке.
5 — 20.11.08 — 13:11
если нужно готовое, то их как грязи ..
вот одно из них:
http://infostart.ru/profile/4246/projects/1281/),
6 — 20.11.08 — 13:12
НайтиПомеченныеНаУдаление(<?>);
Синтаксис:
НайтиПомеченныеНаУдаление(<Объекты>)
Назначение:
Находит все помеченные на удаление объекты.
Параметры:
<Объекты> — идентификатор объекта типа »СписокЗначений», в который данная процедура помещает найденные объекты.
7 — 20.11.08 — 13:25
Если написать эти 3 строчки, то можно удалить помеченные объекты, не заходя в монопольный режим:
Список=СоздатьОбъект(«СписокЗначений»);
НайтиПомеченныеНаУдаление(Список);
УдалитьОбъекты(Список,1);
8 — 20.11.08 — 14:18
Спасибо ребята
9 — 20.11.08 — 14:21
(7) А это теперь считается хорошим тоном — в один модуль пихать семерошные и восьмерошные методы?
10 — 20.11.08 — 14:23
(9) Нет, хорошим тоном считается знать то, о чём говорят
11 — 20.11.08 — 14:24
(9) А который из них чисто восмерошный?
12 — 20.11.08 — 14:24
(10) Пример этого — в (7)???
13 — 20.11.08 — 14:25
(11) Что-то отказывается у меня поиск искать в семерошном СП метод УдалитьОбъекты(Список,1);
14 — 20.11.08 — 14:26
УдалитьОбъекты(<?>,,);
Синтаксис:
УдалитьОбъекты(<Объекты>,<Проверять>,<Ссылки>)
Назначение:
Удаляет объекты, переданные в списке значений.
Параметры:
<Объекты> — конкретное значение объекта или значение типа »СписокЗначений», в котором данной процедуре передаются объекты, которые надо удалить.
<Проверять> — необязательный параметр. Число: 1 — перед удалением проверяется, нет ли ссылок на удаляемый объект. Если есть, то объект не удаляется, а ссылки помещаются в таблицу значений <Ссылки>. Любое другое число — проверку не выполнять. Значение по умолчанию: 0.
<Ссылки> — Необязательный параметр. Идентификатор объекта типа »ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок: 1. объект на который ссылаются; 2. объект, который содержит ссылку; 3. комментарий к ссылке.
15 — 20.11.08 — 14:27
(13) Бастует мужик в шапке, собако. Зажрался. Сокращать пора
УдалитьОбъекты
Удалить объекты, переданные в списке значений.
Синтаксис:
УдалитьОбъекты(<Объекты>, <Проверять>, <Ссылки>)
Англоязычный синоним:
DeleteObjects
Параметры:
<Объекты>
Конкретное значение объекта или объект типа «СписокЗначений», в котором данной процедуре передаются объекты, которые надо удалить.
<Проверять>
Необязательный параметр. Число: 1 — перед удалением проверяется — нет ли ссылок на удаляемый объект. Если есть, то объект не удаляется, а ссылки помещаются в таблицу значений <Ссылки>. Любое другое число — проверку не выполнять. Значение по умолчанию: 1.
<Ссылки>
Необязательный параметр. Идентификатор объекта типа «ТаблицаЗначений», в который данная процедура помещает найденные ссылки на объекты. Таблица значений состоит из 3 колонок:
1. Объект — объект, на который ссылаются;
2. Ссылка — объект, который содержит ссылку;
3. Комментарий — комментарий к ссылке.
Описание:
Процедура УдалитьОбъекты удаляет объекты, переданные в списке значений.
Пример:
Список = СоздатьОбъект(«СписокЗначений»);
ТаблицаСсылок = СоздатьОбъект(«ТаблицаЗначений»);
НайтиПомеченныеНаУдаление(Список);
УдалитьОбъекты(Список, 1, ТаблицаСсылок);
16 — 20.11.08 — 14:27
(14) АААА!!!! Это заговор!!!
Пока ты тут не выложил цитату из своего СП, мой СП отказывался искать этот метод! А потом — сразу нашел…
P.S. Туплю, блин…
17 — 20.11.08 — 14:29
(160) Надо было полнее набирать Не УдалитьОб, а УдалитьОбъ …
18 — 20.11.08 — 14:32
(17) Ага… Ты у меня за спиной стоял и все видел? И сказать не мог???
На «УдалитьОб» СП честно нашел УдалитьОбработчикСобытия(<?>) и дальше я буковки набирать не стал
19 — 20.11.08 — 14:32
вот вам и грибочки ..
ужо лень по клаве стучать..
20 — 20.11.08 — 14:33
(18) Я точно так же искал И в результате нашёл через НАйтиСсылки, а там рядом…
21 — 20.11.08 — 14:33
(19) Да и не говори… Пипец, как обленились…
(20) Уфф… Я не один такой
22 — 20.11.08 — 14:38
а я и так помнил … в (1)
:))
Sadovnikov
23 — 20.11.08 — 14:42
(22) Эх… Мне бы твою памать… А то моя мне с кем-то изменяет.
Не с тобой? А?
В этой статье узнаем как осуществляется удаление в 1С, научимся удалять объекты в 1С 8.3 напрямую, помечать их на удаление, и удалять помеченные на удаление объекты 1С.
Прямое удаление в 1С
В платформе 1С 8.3 имеется возможность удалить любой объект так, что он сразу исчезнет из базы 1С. Чтобы такая возможность предоставлялась, необходимо для нужного объекта у роли установить право «Интерактивное удаление».
Если такое право у объекта установлено, то в меню «Ещё» формы списка объекта появится команда «Удалить».
После применения этой команды, объект будет полностью удален из базы. Перед его удалением появится вопрос о том, согласны мы удалить этот объект или нет.
Не рекомендуется в реальной базе оставлять возможность интерактивного удаления объектов.
Сейчас я продемонстрирую почему.
Допустим, у нас ссылка на элемент справочника Контрагент, который мы собираемся удалить, указана в каком-то реквизите документа.
Если мы удалим этот элемент справочника Контрагент, как мы это делали выше, то после повторного открытия документа, в котором была указана ссылка на удаленный элемент справочника Контрагент, на месте удаленного элемента мы обнаружим сообщение «Объект не найден».
Таким образом, интерактивное удаление проходит без контроля ссылочной целостности: удаляя какой-то объект, платформа не проверяет, указана ли ссылка этот объект где-то ещё, тем самым мы ставя под угрозу ссылочную целостность данных базы.
Пометка удаления 1С
Для того, чтобы случайно не удалить объект, ссылка на который возможно указана в каких-то других данных базы 1С, необходимо сначала пометить этот объект на удаление, а потом удалить его при помощи специальной утилиты, которая в процессе удаления будет осуществлять контроль ссылочной целостности.
Чтобы пользователь имел возможность пометить на удаление какой-то объект, необходимо, у роли для этого объекта было установлено право «Интерактивная пометка на удаление».
На рисунке выше я также снял право «Интерактивное удаление», с целью запретить удалять экземпляры объекта без контроля ссылочной целостности.
Сейчас пользователь не может сразу удалить какой-то элемент объекта, для этого ему необходимо сначала пометить этот объекта на удаление. Делается это так: нужно выделить объект в форме списка, вызвать контекстное меню и выполнить команду «Пометить на удаление/снять пометку» (или просто нажать клавишу Del).
Также, можно пометить сразу несколько элементов, выделив нужные.
После выполнения команды, выйдет вопрос о том, нужно ли помечать объекты или нет.
Если мы ответим Да, то выделенные объекты будут помечены на удаление — слева появятся соответствующие значки.
Нам осталось удалить помеченные объекты из базы.
Удаление помеченных в 1С
Если нам нужно дать пользователю возможность удалять из базы помеченные на удаление элементы какого-нибудь объекта, то необходимо, чтобы у роли было для этого объекта установлено право «Интерактивное удаление помеченных».
Для удаления помеченных на удаление объектов следует воспользоваться утилитой «Удаление помеченных объектов». Начиная с платформы 1С 8.3.15, путь к ней следующий: необходимо в меню «Сервис и настройка» выполнить команду «Функции для технического специалиста».
В открывшемся окне следует в ветке «Стандартные» найти и выполнить команду «Удаление помеченных объектов».
В платформе редакции 8.3.14 и ниже, путь к окну с командой «Удаление помеченных объектов» будет следующий:
В открывшейся утилите «Удаление помеченных объектов», сначала будет предложено выбрать вариант удаления: полное удаление или выборочное.
Если выбрать выборочное удаление, то в следующем окне будет предложено выбрать те объекты, которые следует удалить.
После выбора объектов и нажатия на кнопку «Удалить», утилита проведет контроль ссылочной целостности и удалит те объекты, на которые нет ссылок в базе. Объекты же, на которые присутствуют ссылки в каких-то данных, удалены не будут, о чем выйдет сообщение.
В этой же утилите можно посмотреть, где в базе присутствует ссылка на объект, который пытались удалить.
Таким образом, установка пометки на удаление и последующее применение утилиты «Удаление помеченных объектов» позволяет производить более щадящее для ссылочной целостности базы данных удаление объектов.
Продолжение: как программно удалить объект в 1С
Более подробно и основательно разработка в 1С дается в моей книге:
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009
Не могу найти «Удаление помеченных объектов»
Автор Leviathan, 13 янв 2016, 04:21
0 Пользователей и 1 гость просматривают эту тему.
Доброго дня!
Какой-то фейспалмный вопрос, но я что-то реально в тупике.
Установили новую конфигурацию Управление автотранспортом Стандарт, редакция 2.0 (2.0.1.2)
Права все дал. Меню все перерыл. Даже поиском по конфигурации пошерстил.
Где же оно?.. Что я делаю не так? И не гуглится ничего на эту тему.
Заранее спасибо.
Удаление помеченных объектов — это системная операция.
Она сидит в меню «Операции».
Иногда настраивая интерфейс это меню прячут…
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Не вижу никакого меню «Операции» в УАТ 2.0
Рабочий стол
Работа ТС
Учет ГСМ
Управление ремонтами и учет агрегатов
Складской учет
Управление персоналом и учет зарплаты
Управление затратами
Нормативно-справочная информация
Администрирование
В администрировании ничего нет. У меня полные права…
Управляемое приложение?
Тогда слева вверху «кружок», меню выпадет «Файл, Правка и т.д.»
В самом низу должен быть пункт «Все функции», вот там теперь и запрятано.
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Огромное спасибо!!
Я там искал. Но смотрел «Обработки». А там оказывается в самом низу появился неприметный пунктик со странным названием «Стандартные», и вот там-то оно и сидит.
Ох, может я и не прав в виду небольшого опыта в неродных конфах, но по-моему Рарус те еще затейники…
Рарус не причем, это фишка любой конфиги на управляемом приложении.
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
Я имел в виду что в Бухгалтерии, например, «Удаление помеченных объектов» также есть в Администрировании и доступно через интерфейс
ну это уже на усмотрение разработчиков
Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.
0
Вывести все помеченные на удаление элементы справочника
Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ПометкаУдаления = ИСТИНА
|";
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
Пока Результат.Следующий() Цикл
//Код обработки результата запроса
КонецЦикла;
Код 1C v 7.x
Спр=СоздатьОбъект("Справочник.Контрагенты");
спр.выбратьЭлементы();
Пока спр.ПолучитьЭлемент()=1 Цикл
Если спр.ПометкаУдаления()=1 тогда //выводим, если стоит пометка на удаление
сообщить(спр.наименование);
конецЕсли;
КонецЦикла;
Запрос=новый Запрос;
Запрос.Текст="
|ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ПометкаУдаления = ИСТИНА
|";
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
Пока Результат.Следующий() Цикл
//Код обработки результата запроса
КонецЦикла;
Код 1C v 7.x
Спр=СоздатьОбъект("Справочник.Контрагенты");
спр.выбратьЭлементы();
Пока спр.ПолучитьЭлемент()=1 Цикл
Если спр.ПометкаУдаления()=1 тогда //выводим, если стоит пометка на удаление
сообщить(спр.наименование);
конецЕсли;
КонецЦикла;
Хотите узнать больше по этому вопросу?
Подпишитесь на нашу рассылку новостей
Подписаться
Чтобы задать вопрос или предложить тему статьи, нажмите на кнопку ниже:
Предложить статью