Имя: Пароль:
1C
1С v8
Как узнать, есть ли в базе хоть один документ?
0 BayoNet
 
15.05.12
16:33
Как програмнно найти все документы в базе, если они там есть?
1 Wobland
 
15.05.12
16:33
цикл по метаданным. на зачем?
2 BayoNet
 
15.05.12
16:35
Для Каждого док из  метаданные.Документы Цикл

//не знаю что тут написать
КонецЦикла;
3 Wobland
 
15.05.12
16:36
(2) скажи на для куда? мне лень писать. открой СП на нужном слове и думай, думай..
4 rbcvg
 
15.05.12
16:36
(2) Напиши
Сообщить("док");
5 Wobland
 
15.05.12
16:39
(4) Сообщить(док), только что это ему даст?
6 rbcvg
 
15.05.12
16:40
(5) "все документы в базе, если они там есть", разве нет?
7 andrewks
 
15.05.12
16:41
(6) нет
8 sergeante
 
15.05.12
16:42
Всё чуднее и чуднее становится.
9 155153144627
 
15.05.12
16:44
Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (" + Символы.ПС;
ФлагПервыйВход = Истина;
Для Каждого док из  метаданные.Документы Цикл
   Если НЕ ФлагПервыйВход Тогда
               Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС;
   КонецЕСли;
   ФлагПервыйВход = Ложь;
   Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Ссылка ИЗ Документ." + Док.Имя + ";
КонецЦикла;
Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос";
РезультатЗапроса = Запрос.Выполнить();
Таблица = РезультатЗапроса.Выгрузить();
Сообщить(Строка(Таблица.Количество()));
10 155153144627
 
15.05.12
16:46
Если база серверная не покатить, на файловой отработает.
Для серверной делать выполнять запросы по некоторому количеству документов.
11 UFedor
 
15.05.12
16:46
Ага и в какой-нибудь упп под sql 2005 натыкаемся на 256 таблиц в запросе
12 Lama12
 
15.05.12
16:51
(11) СУБД надо нормальное иметь.
13 155153144627
 
15.05.12
16:59
Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (" + Символы.ПС;
ФлагПервыйВход = Истина;
Счетчик = 0;
Количество = 0;
Выпол
Для Каждого док из  метаданные.Документы Цикл
   Если НЕ ФлагПервыйВход Тогда
               Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС;
   КонецЕСли;
   ФлагПервыйВход = Ложь;
   Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Ссылка ИЗ Документ." + Док.Имя + ";
   Если Счетчик = 10 Тогда
   Счетчик = 0;
       Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос";
       РезультатЗапроса = Запрос.Выполнить();
       Таблица = РезультатЗапроса.Выгрузить();
       Количество = Количество + Таблица.Количество();
   КонецЕсли;
   Если Счетчик > 0 Тогда
       Выполнено = Ложь;
   Иначе
       Выполнено = Истина;
   КонецЕсли;
КонецЦикла;
Если не Выполнено Тогда
   Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос";
   РезультатЗапроса = Запрос.Выполнить();
   Таблица = РезультатЗапроса.Выгрузить();
   Количество = Количество + Таблица.Количество();
КонецЕсли;
Сообщить(Строка(Количество));
14 Maxus43
 
15.05.12
17:02
(11) это касается только СОЕДИНЕНИЙ, объединять же хоть сколько можно
15 155153144627
 
15.05.12
17:02
Запрос.Текст = "ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (" + Символы.ПС;
ФлагПервыйВход = Истина;
Счетчик = 0;
Количество = 0;
Выпол
Для Каждого док из  метаданные.Документы Цикл
   Счетчик = Счетчик + 1;
   Если НЕ ФлагПервыйВход Тогда
               Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС;
   КонецЕСли;
   ФлагПервыйВход = Ложь;
   Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Ссылка ИЗ Документ." + Док.Имя + ";
   Если Счетчик = 10 Тогда
   Счетчик = 0;
       Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос";
       РезультатЗапроса = Запрос.Выполнить();
       Таблица = РезультатЗапроса.Выгрузить();
       Количество = Количество + Таблица.Количество();
   КонецЕсли;
КонецЦикла;
Если Счетчик <> 1 Тогда
   Запрос.Текст = Запрос.Текст + ") КАК ВложенныйЗапрос";
   РезультатЗапроса = Запрос.Выполнить();
   Таблица = РезультатЗапроса.Выгрузить();
   Количество = Количество + Таблица.Количество();
КонецЕсли;
Сообщить(Строка(Количество));



Вот :-)
16 155153144627
 
15.05.12
17:04
(14) В (11) он прав.
17 shuhard
 
15.05.12
17:04
(16) в (14) прав
в (11) не прав
18 155153144627
 
15.05.12
17:05
(17) А я в (16) сказал что-то другое?
19 155153144627
 
15.05.12
17:06
Попробуй (9) на серверной базе, (11) прав.
20 155153144627
 
15.05.12
17:09
В (15) счетчик на 0 надо проверять.
Если Счетчик <> 0 Тогда
Спешил.
21 andrewks
 
15.05.12
17:10
(18) на мой взгляд, да
22 shuhard
 
15.05.12
17:11
(18) ты сказал что у MS SQL 2005 есть ограничение на число UNION,
это не соответствует действительности

например универсальный журнал в УПП под полными правами у меня на MS SQL 2005 SP2 работает
23 155153144627
 
15.05.12
17:14
(21) (22) :-) Да другое...
24 155153144627
 
15.05.12
17:17
Странно у меня похожий запрос вызывал ошибку на серверной базе.
Сейчас выполнился без проблем... 40380 документов в моей базе :-)
25 155153144627
 
15.05.12
17:17
(21) (22) Спасибо, что просвятили. :-)
26 shuhard
 
15.05.12
17:19
(24) а это зловредный RLS
27 Maxus43
 
15.05.12
17:19
но если Видов документов будет действительно больше 256 то упадёт...
28 155153144627
 
15.05.12
17:24
(27) 355 видов документов у меня.

Сообщить(Строка(Метаданные.Документы.Количество()));
29 Maxus43
 
15.05.12
17:25
(28) тогда я чото запутался сам уж
30 mikecool
 
15.05.12
17:28
(9) может тогда уж:
Для Каждого док из  метаданные.Документы Цикл
   Если НЕ ФлагПервыйВход Тогда
               Запрос.Текст = Запрос.Текст + " ОБЪЕДИНИТЬ ВСЕ " + Символы.ПС;
   КонецЕСли;
   ФлагПервыйВход = Ложь;
   Запрос.Текст = Запрос.Текст + " ВЫБРАТЬ Количество(Ссылка) ИЗ Документ." + Док.Имя + ";
?
все меньше данных тянуть
31 shuhard
 
15.05.12
18:18
(29) будь мужиком, прочти  MSDN
32 Vladal
 
15.05.12
18:19
(10) Ты об одновременном запросе ко многим таблицам?
Тут в цикле выбирается только один вид документов, т.е. одна таблица.
33 rsv
 
15.05.12
18:31
(0) Правда 1S_JOURN не хватает ? :)
34 rsv
 
15.05.12
18:32
+(33) Без Пока Выбрать Если  не обойтись.
35 ManoloMage
 
15.05.12
18:36
Выбрать Ссылка из Документы.*
36 Grusswelle
 
15.05.12
18:40
(0) Смотрим, как реализована активность валюты управленческого учёта на форме констант.
(35) Жж0шь! )))
37 ManoloMage
 
15.05.12
19:17
(36)Есть какой-то запрос, который можно написать только руками используя звездочку, как раз для выбора всех элементов документов
38 ПесняПроЗайцев
 
15.05.12
19:48
(9) Прервать. и не плодить код с переменными типа ФлагПервыйВход.
39 Grusswelle
 
15.05.12
19:50
(37) Есть.

ВЫБРАТЬ * ИЗ Документ.РеализацияТоваровУслуг
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Только если это. Это нормально. Для выборки всех полей. Но не всех источников данных!
40 ПесняПроЗайцев
 
15.05.12
20:17
(39) для целей тс достаточно количество(ссылка)
41 MaxS
 
15.05.12
20:24
Есть обработка, которая показывает какие есть заполненные справочники и документы
http://infostart.ru/public/15800/