|
Как узнать, есть ли в базе хоть один документ? | ☑ | ||
---|---|---|---|---|
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/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |