#0
by fyntom
Привет всем! Есть проблема: необходимо выбрать данные о номенклатуре иерархически. Грубо говоря по номенклатуре смотрится спецификация из чего оно состоит. А потом каждую составляющую еще раз пройти. Получается иерархический рекурсивный обход который мой моск просто не смог осилить. В sql не шибко силен так, что прошу сразу извинить. Добился того чтобы выбиралась номенклатура и спецификация по ней из таблицы спецификации, то есть способ прохода снизу вверх. А необходимо наоборот из Номенклатуры в Спецификацию. Как это сделать и запустить рекурсивно не знаю :( Помогите пожалуйста, заранее спасибо. Запрос.Текст=
#2
by GenV
Ну даже если динамически формировать запрос с учетом родителей, то как учитывать циклические ссылки на самих себя?
#3
by selenat
пардон, но бред написан в запросе. Создай новую обработку, воспользуйся конструтором выходной формы. Справочник Номенклатуры соединяй левым соединением со спр. Спеццификации (если конечно тебе нужна вся номенклатура, а не только та, по которой есть спецификация), итоги по номенклатуре. Отключи вывод в постороитель отчета. И получишь весь текст и запроса и обхода выборки автоматически. Дальше смотри, думай...
#4
by Divemaster
Если хочешь, почту напиши свою, отправлю тебе функцию, решающую твои проблемы, здесь не буду выкладывать - слишком большой запрос, много буков.. Посмотришь, подправишь для своих нужд.
#5
by fyntom
Спасибо за советы.. готов разбираться.. В запросе согласен что бред. Ибо не силен вообще в запросах. yoland[собака]yandex.ru мое мылко... буду очень признателен.
#8
by fyntom
Мой первый опыт работы с построителем запросов увенчался провалом. Хоть я и соединил таблицы и выбрал то что мне надо.. Но это ж вообще зло какоето: Запрос.Текст="ВЫБРАТЬ Выдало следующее: {Форма.Форма1}: Ошибка при вызове метода контекста (Выполнить): {(3, 2)}: Поле не найдено "Справочник.СпецификацииНоменклатуры.Наименование" <<?>>Справочник.СпецификацииНоменклатуры.Наименование КАК Наименование1, Результат=Запрос.Выполнить; Спасибо за исходник... Запрос и правдо ацкий. Пишут же люди такое. Делал еще так, строит иерархический обход с рекурсией, но чегото както не очень:
#9
by fyntom
Последний запрос выдает пустые поля.. поэтому и не очень. Хотя запрос вроде верный. Выдает номенклатуру и возможность ссылки на спецификацию.
#10
by selenat
еще бы. У тебя не определено что такое Справочник. И я бы на твоем месте не начинал работать с постороителем отчетов. Разберись сначала с обычными запоосами.
#12
by Oleg_Nik
А смысел делать рекурсию именно запросом? Да еще когда с запросами "не очень"... Сделай функцию ПолучитьСоставСпецификации, вызывай ее рекурсивно. Мухи отдельно, котлеты - отдельно.
#15
by fyntom
УРА!!! Я добился успеха... выборка уже делается правильно... Номенклатура выбирает и продукцию которая имеет спецификациюНоменклатуры... Но проблема в том.. что хоть она ее и выбирает.. нов какую ветку выборки спустится чтобы ее найти.. Окно дебаггера скоро станет прям заместо обычного окна.. Света там вообще не видно... Раскрываешь этих родителей и ссылки.. Но спецификаций там нет. Помогите пожалуйста. Процедура ВыдатьРекурсивно(Выборка)
#17
by fyntom
привет... вообщем решил я свою проблему....вовсе не запросом а рекурсивной выборкой. .получилось жутко не оптимально и на больших данных убдет падать... но да ладно... Но очень интересно как можно оптимизировать это запросом.. чтобы делать превыборку Процедура КнопкаВыполнитьНажатие(Кнопка)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Рекурсивная выборка запроса
- Выборка из запроса номенклатуры по одной определенной группе
- Создание дерева. Рекурсивная процедура. Vtools.dll
- УПП: Как получить основные спецификации для списка номенклатуры
- как сделат чтоб в печатную форму возле номенклатуры отображался код номенклатуры
- v7: Рекурсивная функция
- Поле объекта не обнаружено (Выборка) Строка.СубконтоКт= Выборка.СубконтоДт1[
- Спецификации номенклатуры Комплексная Автоматизация
В этой группе 1С
- v7: УПП...в оборотке пропал 44 счёт..
- Отключить USB,CD-ROM,FDD
- Трактиръ Front-office, настройка рабочего места
- УТ 10.3 Помогите не понимаю "Метод объекта не обнаружен (Следующий)"
- как в подборе номенклатуры вывести остатки по сериям номенклатуры
- Вылетает 1С на win2k3 RGProc.dll
- v7: Задвоение данных при переносе проводок ЗУП2.5 в Бух8.0
- Можно ли обновлять комплексную без подписки ИТС?
- Определения процедур и функций должны размещаться перед операторами тела мо
- При запуске 1С 77 окно запроса имени и пароля появляется через 5 минут
- Как на форме документа прогрмно установить фокус на к.-либо объект
- 1С: Руководитель проекта
- Отбор в списке документа не по реквизитам документа.
- Необходимо перейти с конфы ВДГБ:Бухгалтерия на Бухгалтерию Предприятия типо
- v7: Как списать с 26 счёта если не было реализации?
- 3D сканер своими руками - просто!
- Универсальный отчет Остатки и обороты
- Регистр сведений. Выбрать последнее значение.
- v7: УПП. Учетная политика: Стратегия списания партий товаров по хронологии
- Как изменить тип поля Вид (тип составной) регистра сведений "Контактная инф