Необходимо: Пометить 200 тыс. документов вида "кпкЗадание" на удаление. Документ не принадлежит ни к одной из компонент.
Решение:
Все документы 1С хранятся в таблице _1SJourn. Для пометки документа на удаление необходимо модифицировать следующие поля (очистить признак проведения и установить флаг пометки на удаление):
CLOSED - Флаг проведения документа. Для каждого набора компонент свое значение (аналогично полю APPCODE). Значение последнего бита отвечает за флаг проведения документа. Тип - Число(1).
ISMARK - Флаг пометки на удаление. 0 - не помечен, 1 - помечен. Тип - Число(1,0) (бинарное значение).
Источники:
http://www.skalnyy.com/1c-sql-bystroe-udalenie-dokumentov/
http://www.script-coding.com/Direct_queries.html#3.
http://www.script-coding.com/v77tables.html#1.2.4.
Текст модуля:
выбДата = Формат(ДобавитьМесяц(РабочаяДата(), -6), "ДГГГГММДД");
ТекстЗапроса = "
|UPDATE
| _1sjourn
|SET
| ismark = 1, closed = 0
|WHERE
| (Date_Time_IDDOC<'"+выбДата+"')
|AND
| IDDocDef=$ВидДокумента.кпкЗадание
|";
Query = СоздатьОбъект("ODBCRecordSet");
Возвр = Query.Выполнить(ТекстЗапроса);
Если Возвр = 0 Тогда
глКомментарий(Query.GetLastError(),0,,"!");
КонецЕсли;
Query.Закрыть();
Решение:
Все документы 1С хранятся в таблице _1SJourn. Для пометки документа на удаление необходимо модифицировать следующие поля (очистить признак проведения и установить флаг пометки на удаление):
F=CLOSED |Flag document is clo |Y |0 |0
F=ISMARK |Doc is Marked for De |L |0 |0
CLOSED - Флаг проведения документа. Для каждого набора компонент свое значение (аналогично полю APPCODE). Значение последнего бита отвечает за флаг проведения документа. Тип - Число(1).
ISMARK - Флаг пометки на удаление. 0 - не помечен, 1 - помечен. Тип - Число(1,0) (бинарное значение).
Источники:
http://www.skalnyy.com/1c-sql-bystroe-udalenie-dokumentov/
http://www.script-coding.com/Direct_queries.html#3.
http://www.script-coding.com/v77tables.html#1.2.4.
Текст модуля:
выбДата = Формат(ДобавитьМесяц(РабочаяДата(), -6), "ДГГГГММДД");
ТекстЗапроса = "
|UPDATE
| _1sjourn
|SET
| ismark = 1, closed = 0
|WHERE
| (Date_Time_IDDOC<'"+выбДата+"')
|AND
| IDDocDef=$ВидДокумента.кпкЗадание
|";
Query = СоздатьОбъект("ODBCRecordSet");
Возвр = Query.Выполнить(ТекстЗапроса);
Если Возвр = 0 Тогда
глКомментарий(Query.GetLastError(),0,,"!");
КонецЕсли;
Query.Закрыть();
Комментариев нет:
Отправить комментарий