Имя: Пароль:
1C
1C 7.7
v7: Вопрос знатокам прямых запросов 1С++
0 dimm7310
 
02.07.14
12:51
пробую в тестовой базе удаление документов посредством прямых запросов
при таком запросе удаляется только запись о документе в таблице _1SJOURN, а сам документ остается в DH и DT и его записи по регистрам ?
[code]
        |DELETE
                |_1SJOURN
        |FROM _1SJOURN AS Журнал
        |WHERE (Журнал.IDDoc = :Док)
        |";

[/code]
1 Злой Бобр
 
02.07.14
13:09
(0) Надеюсь ты в копии пробуешь?..
Ты код неправильно написал. Незабывай что ID у разных типов документов могут совпадать. Т.е. приходная и расходная могут иметь один и тот же ИД, но разный вид документа. При твоем коде удалятся обе записи.
Посмотри готовый примеры на сайте компоненты. Там все подробно есть.
2 dimm7310
 
02.07.14
13:21
(1) конечно в копии.

Этот пример пробный и удалять документы я хочу фильтруя не по ID .

И все таки при таком запросе удаляется только ссылка на документ в журнале или все  движения по документу тоже?
3 mikecool
 
02.07.14
13:22
(2) нет, удаляется ровно то, что написано
никаких триггеров в 1с нет
4 dimm7310
 
02.07.14
13:23
странно, тогда почему съезжают остатки по регистру, как если бы и удалялись движения сделанные этим документом.
5 mikecool
 
02.07.14
13:26
(4) потому что нет заголовка документа, скорее всего
проверь прямым селектом к движениям
6 DmitrO
 
02.07.14
13:37
(4)Потому что в 77 расчет остатков по регистру может идти с участием _1SJOURN. Если в метаданных регистра не стоит флажок Быстрые движения или как там его, в таблице движений нет поля для DateTimeIDDoc.
7 dimm7310
 
02.07.14
13:38
не знаю на сколько выполнима задача (как раз и пытаюсь исследовать): нужно быстро удалить ссылки на документы в _1SJOURN , что бы их не было видно, но движения по ним оставались .  Понимаю звучит абсурдно и сразу возникают вопросы типа "Зачем Ты угробишь базу" , я просто пока исследую варианты как быстро скрыть часть документов (со своим префиксом) на случай внезапной проверки (которая может быть в ближайшее время).  Не спрашивайте почему так организована база - так было сделано до моего прихода.

Вообщем нужно быстро удалить ссылки на документы в _1SJOURN , что бы их не было видно, но движения по ним оставались, восстанавливать удаленные доки не придется, планируется восстановить ночной бекап базы и закачать в него док-ты сделанные сегодня.
8 DmitrO
 
02.07.14
13:41
(7) :)
9 varelchik
 
02.07.14
13:48
(1) Ты сам то подумал что написал?
внимательно посмотри в dd и увидишь что iddoc это уникальное поле.
id только в пределах справочников уникален.
вот там твоя ситуация имеет смысл.
10 Злой Бобр
 
02.07.14
14:12
(7) Незнаю как у Вас, но у нас проверяют документы а не записи в БД. Если придут с конкретной задачей то против паяльника непопрешь, даже если серваки будут на Луне. Так что завязывайте вы со своими ларечными понтами.
(9) Нет, я даже незадумывался. И у меня нет желания доказывать очевидное. Если сомневаетесь - учите матчасть.
11 ADirks
 
02.07.14
14:19
(10) а зря не задумывался
#----Indexes------
# Name                           |Descr         |Unique|Indexed fields                                              |Type      
I=PK__1SJOURN                    |ROW_ID        |1     |ROW_ID                                                      |1          
I=IDDOC                          |Id Doc        |1     |IDDOC                                                       |0
12 varelchik
 
02.07.14
14:28
(10) Это вы батенька учите матчасть.
+(11) 100.
13 varelchik
 
02.07.14
14:28
(10)интересно как по вашему работает функция НайтиДокумент()
14 mikecool
 
02.07.14
14:44
(7) твой путь - не путь самурая, он ведет в никуда
15 dimm7310
 
02.07.14
14:49
(14) я как-то и не очень стремлюсь быть самураем. Значит ни как не спрятать док-ты
16 Эмбеддер
 
02.07.14
14:51
можно вообще без программирования открыть консоль MSSQL и удалить таблицы правой кнопкой мыши по одной
17 Dolly_EV
 
07.07.14
08:52
(0),(15) Зачем прятать? все равно же "из бэкапа поднимать" собираешься "после проверки" :-))? Ну так и удали их совсем! вместе с движениями.
Вот инструмент (не мое, я поправил немного, галочки добавил "только пометка" и "только движения"):
[url=http://webfile.ru/87ca3bd6dac62210587aecd58a4a8b03]СкачатьУдалениеДокументовСредствамиSQL.ert[/url]
А вообще в (10) в первой части совершенно правильно замечено, что проверка приходит проверять бумажные документы, а не "базу 1С"
18 Dolly_EV
 
07.07.14
08:52
19 Ёпрст
 
07.07.14
08:58
(0)
А есть смысл "прятать" таким способом ?
А архивы скулевы тоже прячешь при этом ?..
20 Dolly_EV
 
07.07.14
09:15
(19) Архивы типа "на луне"))
21 dimm7310
 
07.07.14
09:39
(17) спасибо посмотрю.
Пока что как вариант в обработке сделал не удаление документов а подмену их в журнале на пустой документ "Корректировка".

            |UPDATE
            |Журнал
            |SET
            |Журнал.IDDocDef = 28201
            |,Журнал.IDJOURNAL = 0
            |FROM _1SJOURN AS Журнал
            |WHERE (Left(Журнал.DOCNO,1) = :Префикс)

при этом во всех журналах вместо старых документов отражается док-т "Корректировка" с номером скрытого документа и движения по регистрам все сохраняются и по всем  отчетам регистратором движений теперь отражается док Корректировка.

Конечно это тоже подозрительно - если копать начнут. Вообщем я предложил начальству это как вариант  - пусть рассматривают.
22 dimm7310
 
07.07.14
09:40
(19)-(20) типа недосягаемы, но эта не моя головная боль а админа
23 orefkov
 
07.07.14
09:52
(21)
Беги оттуда. Ничего хорошего там уже не будет.
24 Dolly_EV
 
07.07.14
09:57
(22) а админ как раз "заболел"))) или "приходящий".... Детский сад короче.
(23) поддерживаю на 146%
25 VladZ
 
07.07.14
09:57
(23) +500!

Слишком "топорно"... Прятать нужно так, чтобы на самом видном месте было не видно.
26 Dolly_EV
 
07.07.14
09:58
(25) +100500))) Я так и сделал)))