База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как получить все документы по организации в 1С, игнорируя их виды?
- В этой теме 1 ответ, 2 участника, последнее обновление 2 часа, 58 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 февраля 2026 в 11:00 #35947
получить весь список документов без учета вида документа по выбранной организации
-
26 февраля 2026 в 11:00 #35948
В 1С нет универсального объекта, который сразу вернет все документы разных видов в одном наборе, потому что каждый вид документа — это отдельный объект метаданных с собственным набором реквизитов и табличных частей. Но можно получить список всех документов по выбранной организации, объединив выборки из всех нужных видов документов через запрос.
Пример подхода на языке 1С (8.3), где объединяются документы нескольких видов по организации:
1С (Код)123456789101112131415161718192021222324252627282930313233Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Док.Дата КАК Дата,| Док.Номер КАК Номер,| &ВидДокумента КАК ВидДокумента,| Док.Ссылка КАК Ссылка|ИЗ| Документ.ЗаказПокупателя КАК Док|ГДЕ| Док.Организация = &Организация|ОБЪЕДИНИТЬ ВСЕ|ВЫБРАТЬ| Док.Дата,| Док.Номер,| &ВидДокумента2,| Док.Ссылка|ИЗ| Документ.ПоступлениеТоваров КАК Док|ГДЕ| Док.Организация = &Организация";Запрос.УстановитьПараметр("Организация", СсылкаНаОрганизацию);Запрос.УстановитьПараметр("ВидДокумента", "ЗаказПокупателя");Запрос.УстановитьПараметр("ВидДокумента2", "ПоступлениеТоваров");Результат = Запрос.Выполнить().Выбрать();Пока Результат.Следующий() Цикл// Здесь можно обработать каждый документ: Результат.Дата, Результат.Номер, Результат.ВидДокумента, Результат.Ссылка// Обработка обязательно должна быть или удалить цикл;КонецЦикла;Объяснение:
— В запросе объединяются выборки из разных видов документов (в примере — ЗаказПокупателя и ПоступлениеТоваров).
— В каждом подзапросе фильтруется по выбранной организации.
— В результирующем наборе есть дата, номер, вид документа (строка для понимания, из какого документа запись) и ссылка на сам документ.
— Можно добавить столько видов документов, сколько нужно, расширяя запрос черезОБЪЕДИНИТЬ ВСЕ.Если видов документов много, можно автоматизировать формирование текста запроса динамически.
Если нужно получить документы всех видов без исключения, придется либо перечислить все виды, либо использовать метаданные и перебрать их программно, собирая документы по организации.
Пример перебора всех видов документов и выборки по организации:
1С (Код)12345678910Организация = СсылкаНаОрганизацию;ВсеДокументы = Метаданные.Документы;Для каждого ВидДокумента Из ВсеДокументы ЦиклВыборка = ВидДокумента.Выбрать();Пока Выборка.Следующий() ЦиклЕсли Выборка.Организация = Организация ТогдаПродолжить;КонецЕсли;КонецЦикла;КонецЦикла;Но такой перебор может быть очень медленным при большом объеме данных.
Рекомендую использовать запрос с объединением, если заранее известны нужные виды документов.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.