Имя: Пароль:
1C
1C 7.7
v7: Помогите с запросом SQL
0 AlexSTAL
 
07.07.15
08:44
Коллеги, в SQL-запросах вообще не спец, помогите с запросом
Есть запрос, который обнуляет значение документа, если в журнале документ помечен на удаление
    ТекстЗапроса = "
    |UPDATE _1sconst
    |SET docid = '     0   '
    |WHERE docid in(select iddoc from _1sjourn (nolock) where ((closed = 4) and (ismark = 1)))";

Как написать аналогичный запрос, который обнуляет, если документ вообще отсутствует в журнале ("объект не найден")
1 el-gamberro
 
07.07.15
08:49
Надо связывать с таблицей, которая не видит объект в журнале. Например если пытаемся смотреть из справочника, то выбираем наши ИД документов по таблице справочника, ищем в журнале и если NULL, то значения очищаем.
2 1Сергей
 
07.07.15
08:54
(1) тянуть надо из _1sconst с левым соединением с _1sjourn с условием is NULL
3 AlexSTAL
 
07.07.15
08:55
(2) буду благодарен, если эти 2 строчки кода покажите вживую
4 DCKiller
 
07.07.15
09:02
|UPDATE _1sconst
    |SET docid = '     0   '
    |WHERE docid IN (SELECT docid FROM _1sconst As Const LEFT JOIN _1sjourn As Journ ON Journ.IDDOC = Const.DocID WHERE Journ.IDDOC IS NULL)

Ну как-то так... :)
5 AlexSTAL
 
07.07.15
09:52
Попробовал вот такой код

    ТекстЗапроса = "
    |UPDATE _1sconst
    |SET docid = '     0   '
    |WHERE docid not in(select iddoc from _1sjourn (nolock))";

визуально всё правильно обработал без всяких соединений...

нет подводных камней?
6 DCKiller
 
07.07.15
09:54
(5) Поздравляю, ты затер значения всех констнат и периодических реквизитов справочников.
7 AlexSTAL
 
07.07.15
09:56
(6) Почему затёр? Визуально всё на месте

Запрос изменяем колонку с документом (каким документом был установлен периодический реквизит) и всё...
Со значениями он вообще ничего не делает
8 1Сергей
 
07.07.15
09:58
(6) просто перезаписал
9 DCKiller
 
07.07.15
09:59
(7) А ну да, у тебя ж он чисто колонку с полем ид документа меняет...
Ну тогда вроде все норм :)
10 Mikeware
 
07.07.15
09:59
(6) не затер, а отвязал от регистратора
11 DCKiller
 
07.07.15
10:03
(10) ну так ему вроде это и нужно было
12 AlexSTAL
 
07.07.15
10:03
Я просто на копии проверил

вот думаю, применять к боевой... 45 Гб однако
13 AlexSTAL
 
07.07.15
10:03
(11) да, именно это мне и нужно, если регистратора уже нет в базе
14 Drac0
 
07.07.15
10:04
(13) А ты сделал наоборот :) Отвязал от регистраторов, которые есть в базе...
15 Drac0
 
07.07.15
10:05
+(14) не, вру. Норм. я not не заметил.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой