|
Удаление документов с движениями за период | ☑ | ||
---|---|---|---|---|
0
Franchiser
03.05.24
✎
12:07
|
Хочу удалить средствами SQL документы с движениями средствами SQL.
Как удалить документы примерно понятно, но как сделать чтобы параллельно удалились ТЧ документов, движения, данные из таблиц регистраций изменений? |
|||
1
AlexeyKh
03.05.24
✎
12:16
|
Сэээр понимает толк в извращениях!
(даже можно не спрашивать: - А зачем так?) |
|||
2
АгентБезопасной Нацио
03.05.24
✎
12:31
|
(0) взять СтруктуруХраненияДанных, посмотреть имена соответствующих таблиц, и удалять так же, как "примерно понятно"
|
|||
3
Franchiser
03.05.24
✎
12:37
|
(2) Проблема в том что если к примеру таблица содержит табличные части, то там нет периода и если к примеру я запомню айдишники, а перед этим удалю все данные из таблицы документов и к примеру обработка вылетит после этого, то потом уже не смогу ничего удалить из табличных частей.
|
|||
4
Aleksey
03.05.24
✎
12:40
|
(3) Для этого придумали транзакции
|
|||
5
Franchiser
03.05.24
✎
12:41
|
Нашел такой код:
ComSafeArray = RecordSet.Fields("_idRRef").Value; Hex = "0x"+Из_Число_В_XСчисл(ComSafeArray.GetValue(0),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(1),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(2),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(3),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(4),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(5),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(6),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(7),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(8),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(9),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(10),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(11),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(12),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(13),"0123456789ABCDEF") +Из_Число_В_XСчисл(ComSafeArray.GetValue(14),"0123456789ABCDEF")+Из_Число_В_XСчисл(ComSafeArray.GetValue(15),"0123456789ABCDEF"); СтрокаТЗДвоичныхДанных.Hex = Hex; Для чего нужно преобразовывать _idRRef в HEX, чтобы потом удалять по ниму из табличных частей данные? |
|||
6
RVN
03.05.24
✎
12:43
|
(3) а сначала удалить движения, потом таб. части и только потом документы, не?
|
|||
7
Franchiser
03.05.24
✎
12:43
|
(5) для этого нужно делать одну общую транзакцию на выполняемый скрипт sql, а для этого нужно как-то сделать 1 скрипт в котором одновременно удаляются и ТЧ документов и сами документы
|
|||
8
Franchiser
03.05.24
✎
12:44
|
(6) ну как бы да, я думал может у кого то уже есть готовое решение
|
|||
9
Franchiser
03.05.24
✎
12:45
|
может есть пример какой-то где открывается транзакция в sql и внутри нее удаляется вид документа вместе с ТЧ и с движениями.
|
|||
10
RVN
03.05.24
✎
12:47
|
(8) Так-то, ЕМНИП, 1С прямо запрещает таким заниматься.
и уж если кого-то приперло то пишет под свою ситуацию. Так что вряд-ли есть готовое решение в общем виде. |
|||
11
Aleksey
03.05.24
✎
12:47
|
(8) А какой смысл это делать средствами скуля? Чтобы в конце получить "Хотели как лучше, а получилось как всегда"?
|
|||
12
Aleksey
03.05.24
✎
12:48
|
||||
13
RVN
03.05.24
✎
12:48
|
(11) я комсомолка! я люблю трудности! (с)
|
|||
14
АгентБезопасной Нацио
03.05.24
✎
12:49
|
(5) нужно не "искать код", а думать.
(3) а удалить сначала из табличных частей и т.п., а уж затем удалять сами "шапки" документов - слишком сложно? |
|||
15
Aleksey
03.05.24
✎
12:50
|
(9) После удаления движения нужно еще итоги пересчитывать. ТОже будешь средствами скуля все итоги считать?
|
|||
16
АгентБезопасной Нацио
03.05.24
✎
12:50
|
(13) это метод албанских пионеров®: создать себе трудности, а затем мужественно их преодолевать.
|
|||
17
Franchiser
03.05.24
✎
12:51
|
(14) я хочу все это сделать в одном скрипте SQL, не используя 1С. Вот только какая там связь между _idref и данными в таблицах табличных частей пока не пойму, нужно там какие-то преобразования делать или нет
|
|||
18
Aleksey
03.05.24
✎
12:52
|
Такое чувство кто от таким образом хочет сделать свертку базы, но еще не понимает, что так не получится
|
|||
19
АгентБезопасной Нацио
03.05.24
✎
12:52
|
(15) тоже можно. В клюшках это было достаточно просто, а вот в снеговике не пробовал, но принцип тот же. Только зачем?
|
|||
20
Aleksey
03.05.24
✎
13:04
|
(17) что делать со справочниками, которые могут содержать ссылки на документы
Что делать с документами введенные на основание, которые тоже содержат ссылки на удаляемый документ что делать с движениям содержащий удаляемый документ, но сформированные другими документами (закрытие месяца, движения по регистру взаиморасчетов) Что делать с движением по регистрам сведений без регистратора, но который содержит ссылку на удаляемый документ? Ну ив конце концов, что делать с итогами регистров? Они сами себя не пересчитают. При условии что ты на скуль с вилами ходишь, уверен что это то что тебе нужно? |
|||
21
Garykom
03.05.24
✎
13:02
|
(0) А составные поля?
Где ссылки на документы могут быть |
|||
22
Aleksey
03.05.24
✎
13:03
|
А есть еще расширения
|
|||
23
Мультук
03.05.24
✎
13:04
|
(0)
Хочу удалить средствами SQL документы с движениями средствами SQL, ПОТОМУ ЧТО: а) почему бы и нет ? б) скоро майские праздники, а у тебя аллергия на алкоголь и шашлыки и нужно чем-то заняться в) это стильно/модно/молодежно г) ????? д) Типовые методы "пример кода, псевдокода" я пробовал, но они не подошли "потому что" |
|||
24
PLUT
03.05.24
✎
13:04
|
(11) ну например, когда продают компанию и нужно базу передать учетную на ERP и выпилить из нее всю инфу по организациям и прочую сопутствующую, кроме одной...
стандартными средствами 1С вы это не сделаете никогда :) ну или времени жизни не хватит средствами SQL и доп.обормотками по поиску сопутствующей инфы (не связанной по сцылкам с организацией) можно за несколько раб.дней управиться без этих ваших вот <Объект не найден> (при жОском удалении без контроля сцЫлочной целостности) |
|||
25
АгентБезопасной Нацио
03.05.24
✎
13:07
|
(17) скрипт-то тоже будете вручную писать?
Не, ну можете заодно разобрать таблицы Config и DBShema... |
|||
26
Aleksey
03.05.24
✎
13:08
|
(24) для этого скуль мучить не нужен, можно спокойно взять Инструмент разработчика и там спокойно настроить отборы и удалять средствами скуля из 1С.
|
|||
27
Franchiser
03.05.24
✎
13:11
|
Появление битых ссылок не проблема
|
|||
28
PLUT
03.05.24
✎
13:14
|
(26) скулю фиолетово. но на больших объемах базы и большом количестве организаций скуль молотит несколько часов/иногда суток
средствами 1С по "феншую" нереально |
|||
29
Aleksey
03.05.24
✎
13:57
|
(28) ? Я тебе предлагаю средствами 1С сформировать скрипт для скуля и из 1с по оле (ADODB.Connection) запустить этот скрипт на скуле
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |