v7: Как программно узнать реальную дату создания документа? #701360


#0 by sysadminlk
Как программно узнать реальную дату создания документа? У меня все не проведенные документы переносятся на текущую дату. Проблема: В журналах накопилось слишком много документов даже с прошлых годов, но так как дата у всех текущая пометить на удаление старые пока не понятно как. Написал обработку, пытаюсь вытащить данные из журнала регистрации, но в журнале более 60 000 000 строк. Работать с ним крайне не удобно долго. Какие варианты программного получения реальной даты знаете вы?
#1 by sysadminlk
Обработка:
#2 by Torquader
Не все операции пишутся в mlg, особенно, если документ создавался обработкой.
#3 by sysadminlk
это я заметил, но в MLG можно ловить первое его движение. например когда его первый раз кто-то открыл.
#4 by sysadminlk
Мой .mlg файл весит около 700Мб
#5 by Mikeware
как правило, докумет с меньшим идом создан чуть раньше, чем с чуть бОльшим идом
#6 by Mikeware
открой для себя ПоставщикДанныхЖурналаРегистрации
#7 by sysadminlk
как тогда узнать ид документа?
#8 by Mikeware
йИД ?
#9 by varelchik
Параметры: ОбъектХранимыйВБД - тип: Перечисление, Справочник, Документ, Календарь, ВидРасчета, Счет, ВидСубконто, ПланСчетов. Объект для преобразования. Возвращает: тип: Строка. Результат преобразования. Описание: преобразует ссылочный объект в строку (внутренний идентификатор данных) [ID][Sign] = 9 символов.
#10 by ДенисЧ
Подготовиться заранее и добавиьт реквизит ДатаСоздания
#11 by varelchik
Это метод OdbcRecordSet.
#12 by varelchik
Хотя я так думаю это тебе мало чем поможет.
#13 by varelchik
опять же это тоже будет мало. Все равно надо будет в программном создании это же прописывать.
#14 by Torquader
Ид присваивается при записи документа, а не при создании, если документ был создан, а потом провисел открытым несколько дней и только после этого был сохранён, то дату создания можно будет узнать только из журнала регистрации.
#15 by Mikeware
а если докумет был создан со "свободным" идом, то тогда.... а еще... а еще.... в сиквеле можно триггер повесить...
#16 by varelchik
а вот это верно.
#17 by varelchik
что да то да.
#18 by ДенисЧ
Вариантов заполнения много. Главное - хранить.
#19 by Torquader
SQL позволяет делать чудеса - это всем известно. Ну, если её не хранить, то как она появится ?
#20 by ДенисЧ
как-как... А что, у тебя лицензия на telepat.dll закончилась?
#21 by Torquader
Ты ещё скажи, что можно лог транзакций sql-сервера перелопатить, чтобы узнать, что там происходило.
#22 by ДенисЧ
Заметьте, не я это предложил (с)
#23 by Torquader
Ну, SQL-сервер - не женщина, в трудный момент не подведёт.
#24 by ДенисЧ
хм... А если той женщ^W^W серверу логи порезали?
#25 by Torquader
Пусть отвечает тот, кто порезал. Может быть, автор захочет узнать, кто создал документ от 2001 года, так ему тогда проще к гадалке сходить.
#26 by Mikeware
ему пора вскрывать второй конверт.... ну, или брать лист формата А4 и начинать писать заявление....
#27 by Mikeware
можно в конце дня фиксировать в отдельном справочнике/табличке последний ИД, например :-)
#28 by Ujcnm99
Я обычно делаю что нибудь вроде Если 0+Прав(ЗначениеВСтрокуВнутр(Док), 11) < N1 Тогда Если 0+Прав(ЗначениеВСтрокуВнутр(Док), 11) > N2 Тогда (насчет 11 или сколько там должно быть не знаю - просто пример)
#29 by sysadminlk
Кто-нибудь юзал Journal.dll ? стоит попробовать?
#30 by Mikeware
"обычно делаю, но не знаю" - зачет.... :-)
#31 by Ujcnm99
Не знаю насколько корректно вообще использовать такие методы, но я его использовал на не очень больших объемах, и перепроверял данные перед записью.
#32 by DrZombi
Ни как, если ты только этого не хранишь в БД специально. Можно использовать два реквизита, ДАТА и Строка. В дату пишешь текущею дату, в строку текущее время :)
#33 by DrZombi
+ Поднимать историю из ЖР лучше не стоит, через год и более, обычно практикуется архивирования журнала, ибо при определенных размерах, этот файлик нагибает БД :)
#34 by Mikeware
достаточно использовать один реквизит - число.
#35 by varelchik
а зачем строка то? sql хранит нормально дату как датавремя.
#36 by varelchik
пишим триггером туда getdate.
#37 by Mikeware
а если файловая? :-)
#38 by Torquader
Если файловая и никто не позаботился о перехвате записи (такое, кстати, возможно), то никак.
#39 by Mikeware
ну почему же? ежевечерне заполнять незаполненные даты текущей :-) правда, будешь иметь только дату.
#40 by Torquader
МОжно и УРБД подключить, тогда система сама будет "присылать" созданные документы.
#41 by Mikeware
ТКВ!
#42 by varelchik
опять же это ЖурналРегистрации
#43 by varelchik
и то в случае если миграция Все.
#44 by varelchik
+ и опять же только по ЖР.
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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