Пишем шаблон для запроса.
ШаблонЗапроса = " |ВЫБРАТЬ | #Таблица.Ссылка КАК Ссылка |ИЗ | #Таблица |";
Затем перебираем все виды документов и составляем текст запроса.
ТекстЗапроса = ""; Для каждого ТекДанные из Метаданные.Документы Цикл ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " |ОБЪЕДИНИТЬ ВСЕ |") + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Документ." + ТекДанные.Имя); КонецЦикла;
В результате такой работы у нас будет текст запроса в виде:
ВЫБРАТЬ Документ.АвансовыйОтчет.Ссылка КАК Ссылка ИЗ Документ.АвансовыйОтчет ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Документ.АктВыполненныхРабот.Ссылка КАК Ссылка ИЗ Документ.АктВыполненныхРабот
Дописываем код выполнения запроса.
Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Ссылка); КонецЦикла;
Весь код быдет выглядеть так:
ШаблонЗапроса = " |ВЫБРАТЬ | #Таблица.Ссылка КАК Ссылка |ИЗ | #Таблица |"; ТекстЗапроса = ""; Для каждого ТекДанные из Метаданные.Документы Цикл ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " |ОБЪЕДИНИТЬ ВСЕ |") + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Документ." + ТекДанные.Имя); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Ссылка); КонецЦикла;
В данной выборке будут все документы базы.
По справочникам просто меняем тип метаданных в цикле.
Для каждого ТекДанные из Метаданные.Справочники Цикл
Весь код будет выглядеть так:
ШаблонЗапроса = " |ВЫБРАТЬ | #Таблица.Ссылка КАК Ссылка |ИЗ | #Таблица |"; ТекстЗапроса = ""; Для каждого ТекДанные из Метаданные.Справочники Цикл ТекстЗапроса = ТекстЗапроса + ?(ПустаяСтрока(ТекстЗапроса), "", " |ОБЪЕДИНИТЬ ВСЕ |") + СтрЗаменить(ШаблонЗапроса, "#Таблица", "Документ." + ТекДанные.Имя); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Ссылка); КонецЦикла;