8.х Удаление объектов без регистрации изменений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем TylerDurdenIII, 21 июн 2015.

  1. TopicStarter Overlay
    TylerDurdenIII
    Offline

    TylerDurdenIII

    Регистрация:
    19 фев 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Всем привет.

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

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

    Спасибо огромное всем заранее за участие в обсуждении.
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Варианты, имхо, равнозначны в плане быстродействия.
    В любом случае, операция не быстрая и попытку, если не ошибаюсь, делать необязательно, т.к. УдалитьРегистрациюИзменений не вываливается в ошибку, если указанные объекты не обнаружены в таблицах регистрации.
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Сам не пробовал, думаю есть вариант проще: просто не регистрировать изменения при удалении, испытайте:
    У вас ведь там есть строка МойОбъект.УстановитьПометкуУдаления(Истина);
    Вот перед ней напишите либо
    Код:
    МойОбъект.ОбменДанными.Загрузка = Истина;
    либо
    Код:
    МойОбъект.ОбменДанными.Получатели.Автозаполнение = Ложь;
    Ну есть еще вариант если это не поможет, но он зависит от того какую конфигурацию используете и какой тип обмена (с чем).
  4. TopicStarter Overlay
    TylerDurdenIII
    Offline

    TylerDurdenIII

    Регистрация:
    19 фев 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Спасибо за советы. Придется все таки делать запросы видимо, т.к. попытка все же нужна (отсутствие объекта в узле выдает исключение), а Автозаполнение не работает для многих документов, т.к. узлы в них прописываются в модулях (УПП).
  5. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    СтароеЗначениеПараметра = ПараметрыСеанса.НаличиеОбменаУПП;
    ПараметрыСеанса.НаличиеОбменаУПП = Ложь;
    МойОбъект.УстановитьПометкуУдаления(Истина);
    ПараметрыСеанса.НаличиеОбменаУПП = СтароеЗначениеПараметра;
    
    Имя параметра сеанса зависит от того какой обмен используется.
  6. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    ээээ....это все через привилегированный модуль скорее всего придется пускать......хотя, мож, и есть права у роли "Пользователь" на установку этого параметра.
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А почему Пользователь? У ПолныхПрав есть право на Установку.
  8. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Ну ты ж не знаешь, под каким пользователем крутится обмен, оно может и с ограниченными правами быть.

Поделиться этой страницей