Здравствуйте, сейчас пишу обработку для выгрузки значений поля из таблицы базы MSSQL. Вот примерный код:

```1c
    Перем Соединение;

    Процедура БДConnect()

    Соединение = Новый COMОбъект ("ADODB.Connection");
    СтрокаСоединения = "-----";

    Попытка
    Соединение.Open(СокрЛП(СтрокаСоединения));
    Исключение
    Сообщить("Не могу подключиться к базе!");
    КонецПопытки;

    КонецПроцедуры

    Процедура БДDisConnect()
    Соединение.Close();
    КонецПроцедуры

    Процедура КнопкаСформироватьНажатие(Кнопка)

    БДConnect();
    Command = Новый COMОбъект ("ADODB.Command");
    Command.ActiveConnection = Соединение;

    НачалоПериода = Формат(НачалоДня(Дата), "ДФ="гггг-ММ-дд HH:mm:ss"");
    КонецПериода = Формат(КонецДня(Дата), "ДФ="гггг-ММ-дд HH:mm:ss"");

    Command.CommandText = "SEL ECT * FR OM cdr where (calldate between '" + НачалоПериода + "' and '" + КонецПериода + "') ";
    Command.CommandType = 1;
    RecordSet = Новый COMОбъект ("ADODB.RecordSet");
    RecordSet = Command.Execute();

    ТаблицаЗнач = Новый ТаблицаЗначений;
    ТаблицаЗнач.Колонки.Добавить("ВНС");
    ТаблицаЗнач.Колонки.Добавить("Водомер");

    Пока RecordSet.EOF() = 0 Цикл
    Если RecordSet.Fields("control").value > 0 Тогда
    Стр = ТаблицаЗнач.Добавить();
    Водомер = RecordSet.Fields("Rashod_Sum").value;
    Стр.Водомер = Водомер;
    Если RecordSet.Fields("Rashod_Sum1") <> Неопределено Тогда
    Водомер = Водомер + RecordSet.Fields("Rashod_Sum1").value;
    Стр.Водомер = Водомер + RecordSet.Fields("Rashod_Sum1").value;
    КонецЕсли;
    КонецЕсли;
    RecordSet.movenext();
    КонецЦикла;

    БДDisConnect();

    КонецПроцедуры
```

Это все вроде мне понятно, здесь данные берутся из таблицы cdr, а вопрос вот в чем, если я хочу вначале получить список таблиц из базы (их порядка 20, а в дальнейшем число будет увеличиваться),а потом уже по циклу выполнять тот код, который я скинула выше. Тем более, что поля у таблиц будут совпадать. В названии каждой таблицы будет фигурировать слово "VNS", т.е. как я логически понимаю, выборку этих таблиц можно было бы делать примерно так:
select tables where name_table like "%VNS%" (я написала эту строчку примерно). Т.к. впервые работаю с такой задачей, пожалуйста, подскажите верное решение.
---
Ну спроси все таблицы:

```1c
    sel ect o.name fr om [тут имя базы].sys.sysobjects as o where o.name like '%VNS%'
```

а потом на клиенте сформируй запросы к каждой.

Или надо все сразу в один запрос?
---
Надо получить имена таблиц в базе что ль?
---
Нет у меня в скл-базе порядка 20 таблиц (с названием VNS в середине), из которых (из каждой) через select я буду выгружать нужные мне данные.
---
Нужны имена только этих таблиц, а не всех вообще?
---
Не понятно, что вы хотите то? =)
 Если нужно обойти все таблицы циклом, то сначала получаете их все запросом
```1c
    SEL ECT * FR OM INFORMATION_SCHEMA.TABLES
```
 а потом обходите результат, в цикле выполняя запрос к каждой таблице подменяя ее наименвание
---
Можно собрать запрос на клиентской стороне к нужным таблицам заранее. Это?
---
Да, простите,я может не ясно изъясняюсь. Я подключаюсь к базе через select выбираю нужные поля из одной таблицы и записываю их себе. Это в моем коде, который сверху. Только в этой базе много таблиц с нужными мне полями, эти таблицы объединяет только одно, в их названиях есть слово VNS, например dbo.VNS.Krasina или dbo.VNS.Chkalova, конкретно для каждой ВНС своя таблица (в этой таблице показатель, который я должна считать), и именно они меня и интересуют. таких таблиц сейчас примерно 20, мне бы не хотелось для каждой из них писать select и свой цикл RecordSet, потому что дальше таблиц будет гораздо больше. Можно их как то выбрать из bd (зная, что в названии присутствует VNS),а потом по циклу пробегать по каждой и селектом вытаскивать показания?
---
Ну спроси все таблицы:

```1c
    sel ect o.name fr om [тут имя базы].sys.sysobjects as o where o.name like '%VNS%'
```

а потом на клиенте сформируй запросы к каждой.

Или надо все сразу в один запрос?
---
Вот именно это и надо, пробую..:)
---
колонка xtype содержит тип объекта, если что....