Имя: Пароль:
1C
1С v8
Список всех документов
0 ezmemo
 
09.11.11
11:42
Каким запросом можно получить список из ссылок
На все документы(всех наименований)?

Конфигурация ЗУП 2.5.36.3
(хотя этот запрос думаю, что не привязан к конфигурации)
1 shuhard
 
09.11.11
11:43
(0)[хотя этот запрос думаю, что не привязан к конфигурации]
ты ошибаешься
2 Wobland
 
09.11.11
11:43
на зачем?
3 Нуф-Нуф
 
09.11.11
11:44
напиши в поиске по форуму "список всех документов". удивишься на что способен поиск
4 Maxus43
 
09.11.11
11:53
(1) почему? динамический текст запроса из метаданных...
5 ezmemo
 
09.11.11
11:55
Поискал по форуму...
Нашел только

Для каждого _Док из Метаданные.Документы Цикл
    Сообщить(_Док);
КонецЦикла;

и все в этом духе.
А нужно в запросе.
6 5 Элемент
 
09.11.11
11:56
Чем ты 3 года занимался
7 unregistered
 
09.11.11
11:57
(5) Вместо Сообщить(_Док) формируй текст запроса внутри цикла.

По окончании цикла выполни запрос.
8 Maxus43
 
09.11.11
11:57
(5) ну вот, имена доков знаеш, формируй текст запроса с ОБЪЕДИНИТЬ и вперёд
9 Живой Ископаемый
 
09.11.11
11:57
вообще всех или которые учавствуют в движениях по какому-то регистру? или всех которых найдутся хотя бы один экземпляр в ИБ?
10 ezmemo
 
09.11.11
11:59
Не ну если решать вопрос
"Имена доков знаешь"
И их через объединить,
то все понятно.

Другие варианты есть?
11 Живой Ископаемый
 
09.11.11
12:00
а ответы на (9) есть?
12 Maxus43
 
09.11.11
12:03
(10) а как ещё хочеш? чот непойму какая религия запрещает так сделать. даже в типовых есть аналогичные запросы
13 Нуф-Нуф
 
09.11.11
12:04
а вообщем примером может послужить групповая обработка справочников и документов
14 Inform
 
09.11.11
12:13
ТекстЗапроса = "";
   
   ОграничиватьВыборкуСлева = ЗначениеЗаполнено(НачалоПериода);
   ОграничиватьВыборкуСправа = ЗначениеЗаполнено(КонецПериода);
   
   Для Каждого ОбъектМетаданныхДокумент Из Метаданные.Документы Цикл
       // Для конфигураций, в которых может быть более 256 таблиц в запросе (в нашем
       // случае документов) - следует разбить запрос на несколько запросов.        
       ИмяОбъектаМетаданных = ОбъектМетаданныхДокумент.Имя;
       СинонимОбъектаМетаданных = ОбъектМетаданныхДокумент.Синоним;
       // Проверим документ на наличие реквизитов "Номер" и "Ответственный"
       ЕстьРеквизитНомер =
           (ОбъектМетаданныхДокумент.ДлинаНомера = 0);
       ЕстьРеквизитОтветственный =
           (ОбъектМетаданныхДокумент.Реквизиты.Найти("Ответственный") = Неопределено);
       
       ТекстЗапроса = ТекстЗапроса
           +?(ТекстЗапроса = "",
           "ВЫБРАТЬ РАЗРЕШЕННЫЕ", "
           |ОБЪЕДИНИТЬ ВСЕ
           |ВЫБРАТЬ")
           + "
           |    " + ИмяОбъектаМетаданных + ".Ссылка КАК Ссылка,
           |    """ + СинонимОбъектаМетаданных + """ КАК ВидДокумента,
           |    " + ИмяОбъектаМетаданных + ".Дата КАК Дата,
           |    " + ?(ЕстьРеквизитНомер, "NULL", ИмяОбъектаМетаданных + ".Номер") + " КАК Номер,
           |    " + ?(ЕстьРеквизитОтветственный, "NULL", ИмяОбъектаМетаданных + ".Ответственный") + " КАК Ответственный
           |ИЗ
           |    Документ." + ИмяОбъектаМетаданных + " КАК " + ИмяОбъектаМетаданных + "
           |ГДЕ
           |    ИСТИНА"
           +?(ОграничиватьВыборкуСлева, "
           |    И " + ИмяОбъектаМетаданных + ".Дата >= &НачалоПериода", "")
           +?(ОграничиватьВыборкуСправа, "
           |    И " + ИмяОбъектаМетаданных + ".Дата <= &КонецПериода", "");
                   
   КонецЦикла;
   
   Запрос = Новый Запрос;
   
   Запрос.Текст = ТекстЗапроса;
   
   Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
   Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
   
   РезультатЗапроса = Запрос.Выполнить();
15 ezmemo
 
09.11.11
18:32
хм...интересное решение.

Спасибо!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший