|
Запрос по всем документам за период | ☑ | ||
---|---|---|---|---|
0
Dmitrith
26.07.12
✎
11:54
|
Нужно составить запрос по всем документам в определенном диапазоне дат с условием по свойству документа. Мой запрос выдает что слишком много полей. Как запрос поумнее сделать?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект, | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | ЗначенияСвойствОбъектов.Объект.Дата |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &ПризнакЗагрузки | И ЗначенияСвойствОбъектов.Значение = &ИД | И ЗначенияСвойствОбъектов.Объект.Дата МЕЖДУ &НачДата И &КонДата"; Запрос.УстановитьПараметр("ПризнакЗагрузки",ПризнакЗагрузки ); Запрос.УстановитьПараметр("ИД",Истина); Запрос.УстановитьПараметр("НачДата",НачПериода); Запрос.УстановитьПараметр("КонДата",КонПериода); |
|||
1
Господин ПЖ
26.07.12
✎
11:55
|
разрешаю ограничить Объект по ССЫЛКА
|
|||
2
Господин ПЖ
26.07.12
✎
11:56
|
>Мой запрос выдает что слишком много полей
я бы тоже охренел |
|||
3
ukolabrother
26.07.12
✎
11:57
|
| И ЗначенияСвойствОбъектов.Значение = &ИД
Запрос.УстановитьПараметр("ИД",Истина); отлично написано |
|||
4
Dmitrith
26.07.12
✎
11:58
|
(1)(3) Эх.. любите вы поиздеваться над нубами )
|
|||
5
Bolik1979
26.07.12
✎
12:02
|
(3) А что не так то?
|
|||
6
Господин ПЖ
26.07.12
✎
12:59
|
(4) лучше так, чем работодатель потом ногой под сраку...
|
|||
7
Dmitrith
26.07.12
✎
13:05
|
(6) чем лучше?
|
|||
8
Dmitrith
26.07.12
✎
13:06
|
Народ я правильно понял что я не могу в запросе выбрать все документы без указания вида документа, и что мне вместо одного запроса надо в цикле формировать кучу запросов для такой банальной операции как снять/поставить пометку удаления к примеру
|
|||
9
PCcomCat
26.07.12
✎
13:15
|
Просто многие не поняли вопрос. А чего хочется-то?
|
|||
10
Dmitrith
26.07.12
✎
13:17
|
(9) Получить список всех документов (независимо от вида документа) в заданном диапазоне дат и с условием по свойству документа. потом уже обработать этот список документов
|
|||
11
PCcomCat
26.07.12
✎
13:20
|
ПризнакЗагрузки = ? - значение там какое?
|
|||
12
hhhh
26.07.12
✎
13:22
|
(8) а есть разница? Что так у тебя 256 запросов формируется, что ты в цикле сформируешь?
|
|||
13
PCcomCat
26.07.12
✎
13:23
|
Думаю, это поможет:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Свойство.Наименование, | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Объект, | ЗначенияСвойствОбъектов.Значение |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство.Наименование = &ДопРеквизит | И ЗначенияСвойствОбъектов.Объект = &ДокОбъект"; Запрос.УстановитьПараметр("ДопРеквизит","Запрет изменения"); Запрос.УстановитьПараметр("ДокОбъект",Ссылка); |
|||
14
Dmitrith
26.07.12
✎
13:24
|
(12) Ну, к примеру, для проведения документов разница есть - провести сначала все документы ПоступлениеТоваров за месяц а потом начать проводить РасходТоваров
|
|||
15
PCcomCat
26.07.12
✎
13:24
|
"Мой запрос выдает что слишком много полей" - наверное это равно фразе "Мой запрос выдает что слишком много строк в результате".
|
|||
16
Dmitrith
26.07.12
✎
13:27
|
(13) не поможет. Ссылка - это ссылка на документ, так ведь?
|
|||
17
Dmitrith
26.07.12
✎
13:28
|
Чтобы понятнее было, вот весь текст процедуры. Пока натравленный на проведение/распроведение документов
ПризнакЗагрузки = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Признак загрузки"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗначенияСвойствОбъектов.Объект, | ЗначенияСвойствОбъектов.Свойство, | ЗначенияСвойствОбъектов.Значение, | ЗначенияСвойствОбъектов.Объект.Дата |ИЗ | РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &ПризнакЗагрузки | И ЗначенияСвойствОбъектов.Значение = &ИД | И ЗначенияСвойствОбъектов.Объект.Дата МЕЖДУ &НачДата И &КонДата"; Запрос.УстановитьПараметр("ПризнакЗагрузки",ПризнакЗагрузки ); Запрос.УстановитьПараметр("ИД",Истина) Запрос.УстановитьПараметр("НачДата",НачПериода); Запрос.УстановитьПараметр("КонДата",КонПериода); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ТекЗн = Выборка.Значение; Док = Выборка.Объект; Если флПроводить Тогда Док.Записать(РежимЗаписиДокумента.Проведение); Иначе Если Док.Проведен Тогда Док.Записать(РежимЗаписиДокумента.ОтменаПроведения); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
18
Dmitrith
26.07.12
✎
13:29
|
Ошибка выполнения запроса
по причине: Построенный запрос к СУБД использует слишком много таблиц. Допустимо не более 256. |
|||
19
PCcomCat
26.07.12
✎
13:31
|
(18) Так, а отбор-то проводится по определенному дополнительному реквизиту???
|
|||
20
hhhh
26.07.12
✎
13:32
|
(14) ну в запросе из (0) твоем в этом смысле вообще полный бред, потому что там в регистре объекты в полном беспорядке не только повидам но и по годам.
|
|||
21
PCcomCat
26.07.12
✎
13:33
|
А если так:
| ЗначенияСвойствОбъектов.Свойство.Наименование = &ДопРеквизит и Запрос.УстановитьПараметр("ДопРеквизит","Признак загрузки"); Что в результате? |
|||
22
ErrorEd88
26.07.12
✎
13:34
|
Групповая обработка справочников и документов чем не подходит?
|
|||
23
Dmitrith
26.07.12
✎
13:35
|
(19) по свойству документа. Свойства документов лежат в регистре сведений
(20) Почему бред? В запросе документы можно упорядочить как тебе захочется. (22) Групповая обработка умеет отбирать по свойству документа? |
|||
24
hhhh
26.07.12
✎
13:38
|
(23) так и в (12) пишешь в конце запроса УПОРЯДОЧИТЬ ПО Дата и у тебя будет по датам. С чего ты решил, что там по поступлениям?
|
|||
25
Dmitrith
26.07.12
✎
13:39
|
(24) если я в цикле буду делать запрос по видам документов то сначала сработает запрос по Авансовым отчетам и т.д.
|
|||
26
PCcomCat
26.07.12
✎
13:43
|
Я одна туплю? Чего же всё-таки нужно? Задача какая?
|
|||
27
Dmitrith
26.07.12
✎
13:46
|
(26) в (17) полный код процедуры. Последний "КонецЦикла" только лишний. Если убрать условия по периоду все работает.
|
|||
28
PCcomCat
26.07.12
✎
13:49
|
()Что работает? Что должно работать?
|
|||
29
Dmitrith
26.07.12
✎
13:56
|
Должна получаться выборка документов со свойством документа "ПризнакЗагрузки" = Истина. Но т.к. документов в конфигурации >256 ограничить условием по дате эту выборку не получается
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |