8.х как посчитать данные в БД

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

  1. TopicStarter Overlay
    for_maricat
    Offline

    for_maricat Опытный в 1С

    Регистрация:
    11 ноя 2010
    Сообщения:
    236
    Симпатии:
    0
    Баллы:
    26
    В общем, хочется узнать сколько и каких элементов заведено в базе (сколько записей справочника номенклатура, сколько записей регистра сведений "паспортныеданныйфизлиц", сколько документов "авансовыйОтчет" и т.д.). Причем заранее не зная ни конфигурации базы, ни продолжительности и особенностей учета.

    Короче, нужно перебрать все объекты всех видов и для каждого определить их количество в базе и все это выдать каким-нибудь деревом.

    Есть какая-то готовая вещь на эту тему, или подскажите, как организовать перебор объектов конфигурации, не зная имен объектов?
  2. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Можно как-то так:
    Код:
    Для каждого Справочник Из Метаданные.Справочники Цикл
    СпрМенеджер = Справочники[Справочник.Имя];
    // дальше выборка или запрос..
    КонецЦикла;
    
    Аналогично для документов, регистров и т.д..
  3. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.949
    Симпатии:
    149
    Баллы:
    104
    Была у меня подобная задача. Но только касательно справочников. Надо было сосчитать количество элементов. Написал простенькую обработку. Сейчас выложить не могу (она на рабочем компе). Ну если надо будет, выложу. Она просто в таб. документ выводит данные по количеству элементов в нужных справочниках.

    В общем виде реализовано примерно так:

    Код:
    Запрос = Новый Запрос;
    
    Для каждого Справочник Из Метаданные.Справочники Цикл
    
    Запрос.Текст = "
    |ВЫБРАТЬ
    |   Ссылка
    |ИЗ
    |   Справочник." + Справочник.Имя + "";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Сообщить("Количество элементов в справочнике " + Справочник.Имя + ": " + Выборка.Количество());
    
    КонецЦикла;
    
    
    
    Чуть-чуть опоздал :)
  4. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54

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