|
v7: Не попадают значения в запрос | ☑ | ||
---|---|---|---|---|
0
Кейси райбек
18.02.12
✎
18:11
|
Здравствуйте. Столкнулся с такой проблемой. Есть баз 1с 7.7 sql 2000.
При выборке справочника запросом некоторые элементы справочника не попадают в запрос,если выбран родитель элемента. Перебираю ту же группу справочника методом ПокаПолучитьЭлемент() все значения попадают. Код запроса приводить не буду т.к. дело не в коде, а с базой что-то. Что я попытался сделать - тестирование и исправление не помогло. Веду копию БД. Восстановил оттуда только справочник товары (проблемный справочник), через экспорт таблиц в ms sql - помогло. Но через не которое время опять проблема повторилась. Теперь я знаю, как это лечится, но не могу понять из-за чего это происходит. Пока сетую на такие вещи: большой справочник товары (порядка 40 тыс. записей) и для написания отчетов, обработок юзаю опенконф. Кто-что думает? |
|||
1
Tatitutu
18.02.12
✎
18:20
|
или пить бросай или чаще закусывай.
|
|||
2
KRV
18.02.12
✎
18:21
|
"...Код запроса приводить не буду т.к. дело не в коде.." в коде, батенька, в коде.. в коде ДНК...
|
|||
3
Кейси райбек
18.02.12
✎
18:39
|
Нет проблем.
Перебираем методом ПолучитьЭлемент() //******************************************* Процедура Сформировать() СПр = СоздатьОбъект("Справочник.Товары"); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); Спр.ИспользоватьРодителя(ВыбТовары); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Таб.ВЫвестиСекцию("Товар"); КОнецЦикла; Таб.Показать("таблица"); КонецПроцедуры Перебираем с помощью запроса Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Товары = Справочник.Товары.ТекущийЭлемент; |Группировка Товары без групп; |Условие(Товары в ВыбТовары); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); Пока Запрос.Группировка(1) = 1 Цикл Таб.ВывестиСекцию("Товары"); КонецЦикла; Таб.Показать("Сформировать", ""); КонецПроцедуры Перебираем все, помеченные на удаление тоже. Кол-во записей которые выводят эти процедуры не одинаково, хотя ВыбТовары одна и та же группа. |
|||
4
andrewks
18.02.12
✎
18:42
|
а если перед Выполнить() сделать
Запрос.ВключитьSQL(0); то чё? и не попадают именно элементы, или группы? |
|||
5
Кейси райбек
18.02.12
✎
18:50
|
Если запрос строю без выбора родителя то все ок. Как только ставлю родителя вот такая борода.
Запрос.ВключитьSQL(0); Тупо все висит. |
|||
6
KRV
18.02.12
✎
19:01
|
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если Спр.ЭтоГруппа() = 0 Тогда Таб.ВЫвестиСекцию("Товар"); КонецЕсли; КОнецЦикла; В переборе вот так попробуй.. ;) |
|||
7
Кейси райбек
18.02.12
✎
19:07
|
"В переборе вот так попробуй.. ;)"
Вот народ... Если я восстановлю таблицу этого справочника из копии через скуль менеджер у меня обе процедуры одинаковое значение показывают. Так, что дело не в коде ребята. |
|||
8
KRV
18.02.12
✎
19:10
|
Тогда на вопрос "Кто что думает" отвечу - жеппа.
|
|||
9
andrewks
18.02.12
✎
19:10
|
предлагаешь гадать нам на кофейной гуще? на 2-й вопрос из (4) ответь.
и попробуй уже ближе проанализировать элементы, которые входят в один результат, но не входят во второй. так сказать, ищи 5 отличий |
|||
10
Кейси райбек
18.02.12
✎
19:15
|
"предлагаешь гадать нам на кофейной гуще? на 2-й вопрос из (4) ответь."
Не попадают только элементы. Попробую выгрузить базу через конфу и залить обратно |
|||
11
ЧеловекДуши
18.02.12
✎
19:24
|
А с чего ты взял, что твой запрос перебирает помеченные на удаления?
|
|||
12
ЧеловекДуши
18.02.12
✎
19:25
|
(7)Поверь... ДНК, не твой конец ;)
|
|||
13
ЧеловекДуши
18.02.12
✎
19:25
|
+ конец -> конёк :)
|
|||
14
Кейси райбек
18.02.12
✎
19:40
|
"А с чего ты взял, что твой запрос перебирает помеченные на удаления?"
А почему бы нет? |
|||
15
Cthulhu
18.02.12
✎
19:41
|
"Условие(Товары в ВыбТовары);" - вот тут собака порылась.
в СКЛ в списках фильтра следует использовать только элементы (НЕ группы). |
|||
16
Cthulhu
18.02.12
✎
19:41
|
(15)+: и в "черных", и в бух.запросах.
|
|||
17
Кейси райбек
18.02.12
✎
20:07
|
ВыбТовары в моем случае не список, а диалог формы типа справочник
|
|||
18
Злой Бобр
19.02.12
✎
13:54
|
(0) Мысль о том что справочник большой неправильная. 40 тыс это как семечки на базаре.
Мысль о том что код правильный также ошибочна. Правильно группировку укажи и все попадет. Это конечно если в диалоге выбрано правильно условие (что-то терзают меня смутные сомнения). Если база скульная то юзайте прямые запросы. В данном конкретнолм случае метод прямого перебора будет более правильный, т.к. обращение только к справочнику. Учите матчасть. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |