8.х Очистка справочника

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

  1. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Добрый день!
    Добавляю новые справочники в конфигурацию и тестирую их заполнение данными.
    Может кто подскажет, как можно очистить эти справочники программно или как по-другому, чтобы порядковый номер кода опять начинался с 1?
    Может есть какой-то аналог DROP, как в SQL-таблицах?

    Пока что ставлю мультивыделение строк и из режима предприятия удаляю все строки... :unsure:
    (1С: 8.1)
  2. Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    написать обработку для удаления элементов из справочника
    что-то типо этого, но это грубо

    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    выборка = справочники.Номенклатура.Выбрать();
    пока выборка.Следующий() цикл
    выборка.ПолучитьОбъект().Удалить();
    конеццикла;
    КонецПроцедуры
    
    
    можно получить объект, установить пометку удаления а потом в предприятии удалить
  3. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    А нумерация кодов обнулится?
  4. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А режим автонумерации у вас какой?

    P.S. В принципе, то что вы делаете вручную, то и делает предложенная обработка.
  5. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Автонумерация - галочка :)
    Так в таком случае будут использоваться первые пустые коды? т.е. типа с нуля опять начнётся? пробовал - вроде продолжает нумерацию с последнего старшего номера... к сожалению...
    Неужели нету какого-то аналога DROP?
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Попробуйте после цикла написать:
    Код:
    ОбновитьНумерациюОбъектов(Метаданные.Справочники.Номенклатура);
    
  7. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    э-э-э Исходя из Синтакс-помощника:
    т.е. трошки не то, что надо...
  8. Muggsy
    Offline

    Muggsy одно ЭС

    Регистрация:
    10 сен 2008
    Сообщения:
    243
    Симпатии:
    0
    Баллы:
    26
    насколько помню у меня при проставленной галочке автонумерации все удалялось и коды обнулялись.

    в смысле я не "обновляла" нумерацию.....
  9. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Поэксперементировал:
    1) при запуске предложенной обработки - глюки, т.к. справочник иерархический... сами понимаете, раньше удаляем группу, а потом на элемент уже ссылки не существует, так что нужно использовать "ВыбратьИерархически" или что-то типа того.
    2) коды или продолжают нумерацию или начинаются с какого-то непонятного предыдущего числа... но никак не обнуляются до 1.

    А вот "ОбновитьНумерациюОбъектов(Метаданные.Справочники.Номенклатура);" - очень даже помогло после удаления всех элементов. так что спасибо огромное!
  10. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    НАРОД!
    работал код, работал... а потом перестал. уже пробегал в дебаге
    Код:
    Процедура ОчиститьМоделиНажатие(Элемент)
    Выборка = Справочники.МоделиАвто.Выбрать();//пробовал ещё и  ВыбратьИерархически()
    пока Выборка.Следующий() цикл
    Если Выборка.ПолучитьОбъект()<>Неопределено Тогда
    Выборка.ПолучитьОбъект().Удалить();
    КонецЕсли;
    КонецЦикла;
    ОбновитьНумерациюОбъектов(Метаданные.Справочники.МоделиАвто);
    КонецПроцедуры
    
    
    справочник заполнен, но в дебаге, почему-то пишет "Выборка.Следующий()=Нет"... и соотвественно ничего не удаляет :unsure:
    Может кто чего подскажет, в чём проблема?
  11. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    Вопрос снимается - сам виноват перепутал справочники Модели и МоделиАвто...
  12. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    В продолжении темы:
    А как очищать программно регистры и документы... ?
    так же или есть какие-то другие методы?
  13. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    1) регистры подчиненные регистраторам, удалив регистратор
    2) независимый РС - чтением всего регистра без отбора, а затем записью
    3) по докам - смотрю раздел СП прикладные объекты - документы - класс док объект есть метод удалить =)
  14. TopicStarter Overlay
    vihuhol
    Offline

    vihuhol Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    64
    Симпатии:
    0
    Баллы:
    26
    спасибо, муторно конечно... :angry:
    :D где-то предложили попробовать обработку конвертация данных с диска ИТС, типа если конфы одинаковые и надо только данные подчистить - то это вроде оптимальнее будет...
    буду пробовать

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