Прямой запрос: условие по списку документов #485428


#0 by DCKiller
Задача: выбрать из таблиц многострочных частей доков только те записи, которые отностятся к документам данного вида, занесенным в список значений. Как задать в прямом запросе такое условие? База dbf и SQL.
#1 by Skom
where IdDocDef in (<твой список доков через запятую>)
#2 by Skom
для скуля точно так пойдет у меня так Функция ПостроитьЗапрос ...    |    Жур.Date_Time_IDDoc as ИД, ВыбранныеДокументы = список видов документов (уже в числовом виде для скуля)
#3 by DCKiller
Имеются в виду не виды документов, а сами документы одного вида!
#4 by Skom
тода тебе в список надо получить ИД доков (а можно и в таблицу запихать и поменять условие запрос свой покажи
#5 by Skom
ЗАПРОС свой покажи
#6 by Skom
и как ты формируешь список документов которые надо получить
#7 by DCKiller
|WHERE                                                    |    ДокСтр.IDDoc IN... " - а вот тут уже хз... никак пока, вот и хочу узнать. УложитьСписокОбъектов не катит, т.к. распознает только типы справочников и счетов
#8 by Skom
покажи как ты получаешь список документов, которые тебе для фильтра надо
#9 by ДенисЧ
create table #tmpDocs (iddoc char primary key); where ДокСтр.IDDoc IN (select iddoc from #tmpDocs);
#10 by DCKiller
Список документов формируется прямым запросом к таблице журнала документов. Сам этот список находится на форме, чтобы пользователь мог выбрать, какие из документов включать в дальнейшую обработку, а какие нет.
#11 by DCKiller
Это для скуля? А для файловой как?
#13 by Skom
покажи ЗАПРОС которым ты получаешь этот список?????
#14 by DCKiller
ну, если так хочешь увидеть, то вот:
#16 by Skom
второй счас накидаю
#18 by Skom
сорри))) кодировка...хотя можено и так попробовать))) вот верно
#19 by Skom
ты поторопился)))))
#20 by DCKiller
что есть nolock в запросе?
#21 by Skom
ну и плюс ко всему я тоже для скуля показал. я для ДБФ не делал ни разу. ибо не было нужды
#22 by Skom
грязное чтение.
#23 by DCKiller
Почему-то возвращает пустую таблицу :(
#24 by DCKiller
Вопрос по остается...
#25 by Skom
create table #tmpDocs (iddoc char primary key); потому что ты ТемпДокс неверно заполняешь
#26 by DCKiller
ну покажи, как верно
#27 by Skom
так точнее... НО!!!!зачем!!! тебе когда в то что тебе надо. просто когда писал свой код ты еще не показал
#28 by DCKiller
хм... ну вообще-то так и сделал... один фиг пусто
#29 by Skom
я имел в виду что insert into #tmpDocs (iddoc) values (Мета.ЗначениеВСтрокуБД(сзДокс.ПолучитьЗначение(сч))) это просто строка а Запрос.Выполнить(<ТекстЗапроса>) это уже команда скуль серверу
#30 by DCKiller
У меня так, если что:
#33 by DCKiller
Во! Оно самое! :))) спс
#34 by Skom
но нафига так!!! я же в показал нормальный рабочий код
#35 by DCKiller
Блин, рано радовался... а фильтр-то не пашет :(((
#36 by Skom
какой фильтр? чтио именно?
#37 by Skom
покажи что именно не работает?
#38 by Skom
автор. тебя током убило что ли?
#39 by DCKiller
Нет. Рабочий день закончился. Он почему-то выбирает вторым запросом все документы, которые попали в исходный список (хотя в списке, из которого заполянется временная таблица TmpDocs, присутствует только 1 документ из ранее выбранных)
#40 by viktor_vv
Ему не подойдет. Учитывая "чтобы пользователь мог выбрать, какие из документов включать в дальнейшую обработку".
#41 by viktor_vv
Хотя нет, ругнется на #TmpDocs .
#42 by viktor_vv
Временные таблицы не сохраняются. Есть не очень красивый вариант. Это если количество доков для обработки не очень большое. Может кто подскажет покрасивее.
#43 by trdm
Таблицу #TmpDocs не забывай чистить.
#44 by trdm
Функция Сам(Конт) Возврат Конт; КонецФункции
#45 by trdm
отя это фигня...
#46 by viktor_vv
Переведи :)
#47 by viktor_vv
Я о том же. Надо же для документов. Это я так понял для справочников. Просто иногда самому это надо, а как кррасивше сделать никак понять не могу. Это при условии использования 1С++.
#48 by trdm
Можно просто доработать этот класс. Запчастей наверху болтается доикса...
#49 by viktor_vv
Вот это я тормоз. " УложитьСписокОбъектов не катит, т.к. распознает только типы справочников и счетов " это если третий параметр задавать. А если нет то все работатет. глЗапросСКЛ.УложитьСписокОбъектов(СпДокументы,"#СпДокументы")
#50 by DCKiller
Точно! Именно так. Сейчас проверил для обеих баз, все работает. Всем спасибо за советы!
#51 by Skom
в случае с таблицей можно сделать не #TempDocs а ##TempDocs т.е. глобальную таблицу. тогда все отработает. тока чистить ее со временем.
#52 by Кириллка
очень-ма будет забавно работать в многопользовательском окружении :)
#53 by Кириллка
запомнить раз и навсегда - метод Выполнить необхоимо проверять на ноль. У тебя там при повторном выполнении валится ошибка - 100%.
#54 by Skom
да оно понятно конечно. для этого кто то выше предлагал кусок кода из класса по созданию таких таблиц и их очищению кто то через ГЕТПЕРФОРМАНСКАУНТЕР кто то чере ГУИДЫ делает не суть важно.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С