Как программно узнать когда был записан/проведен документ #330797


#0 by fly7
документ например ДатаДок = 01.10.07, проведн вчера, как выяснить эту вчерашнюю дату/время?
#1 by nop
порыться  в *.mlg
#2 by fly7
База Бух 7.7 SQL
#3 by ZanderZ
в журнале регистрации посмотреть,....
#4 by Эльниньо
ДатаДок ПолучитьВремя
#5 by nop
АвтоВремяКонецДня ?
#6 by Smitt
если одноразово - см вручную журнал регистрации. если постоянно, проще всего при записи (проведении) нового записывать дату/время в реквизит документа.
#7 by fly7
это уже сделано, надо просканировать старые документы на предмет этого реквизита
#8 by nop
и что?....
#9 by fly7
уточняю как малой кровью это сделать
#10 by Smitt
правильный ответ в Открывай SYSLOG1cv7.mlg - это файл журнала регистрации. там все достаточно понятно. Перебираешь построчно, ищешь нужные записи.
#11 by КонецЦикла
Малой гришь? Ну тогда завернуться в полотенце а потом уж апстену...
#12 by nop
ВыбратьДокументыПоРеквизиту
#13 by fly7
БРАВО!!! *ушел за полотенцем*
#14 by fly7
поподробнее чуть-чуть можно? уже делаю так
#15 by fly7
какой критичный размер mlg-файла?
#16 by nop
а можно чуть подробнее об этом? я бы например делал это не реквизитом, а регистром. А у тебя должна быть графа журнала документов, если реквизит ВыбратьПоЗначению(<?>,,,) Синтаксис: ВыбратьПоЗначению(<Дата1>,<Дата2>,<ИмяОтбора>,<Знач>) Назначение: Открыть выборку документов в интервале дат с заданным значением реквизита отбора. Возвращает: 1 - если действие выполнено и в выборке есть хотя бы один документ; 0 - если действие не выполнено или в выборке нет ни одного документа. Параметры: <Дата1> - дата, документ или позиция начала выборки документов. Если данный параметр опущен, то выборка начинается с самого первого существующего в системе документа. <Дата2> - дата, документ или позиция конца выборки документов. Если данный параметр опущен, то выборка заканчивается самым последним существующим в системе документом. <ИмяОтбора> - строка с названием Общего реквизита документов либо названием Графы отбора журналов; <Знач> - значение отбора, по которому строится выборка документов. Замечание: Метод  можно использовать только для объектов, созданных функцией СоздатьОбъект.
#17 by fly7
только завел этот реквизит. соответсвенно в старых документах он пустой, в новых, только что сделаных заполненный.
#18 by rsv
Графа отбора говорищь. Вещб хорошая когда база 1 гб и при реструкткризации не начинается пересчте ссылок с 1000 года .
#19 by nop
и хочешь его заполнить?
#20 by nop
ваш вариант?
#21 by nop
а реквизит у тебя периодический?
#22 by fly7
ну :) выведу колонку в общий журнал с этим реквизитом, бухам только смотреть на него надо. про поиск и отборы речи не было
#23 by fly7
база с 2005 года, на SQL примерно 8 гигов, zip всей базы 139Mb
#24 by rsv
А разве в не достаточно?????
#25 by fly7
не, не периодический, смысл только в том, что "кто последний, тот и папа"
#26 by fly7
перебирать 150Mb mlg-файла скорее всего долгая история :( думал может есть другие способы?
#27 by Мулька
Есть
#28 by rsv
Читать в части "если постоянно, проще всего при записи (проведении) нового записывать дату/время в реквизит документа."
#29 by rsv
Хочешь в живую оперировать типом DATETIME создавай таблицу(справочник) и вешай триггер на DH .
#30 by ВосточныйПарень
Может сделать реквизит общий без отборов, в который при записи и проведении писать инфу, а со старыми придется порыться в ЖР и один раз заполнить, а там все будет писаться пользователем при записи/проведении?
#31 by nop
смотря для чего (не) достаточно. конечно
#32 by fly7
это уже только что (всмысле сегодня) сделал. новый общий реквизит ДатаВремяИзменения, в каждом документе ПриЗаписи и в ОбработкаПроведения он заполняется. старые то документы с пустым этим реквизитом. его там надо заполнить. сейчас перебираю mlg, ищу док который записывали/проводили, сохраняю в рекв данные. ускорить этот процесс можно?
#33 by fly7
посмотрб сколько за ночь заполнит. может на выходные оставлю "трудица"
#34 by rsv
Конечно. UPDATE DH567788888. Но в твоем случае исключительно токмо ЗаписатьПровести Медлено но верно.
#35 by nop
Выгрузить mlg в ТЗ, Сортировать("Объект, Дата-");
#35 by DmSk
Лучше в общие реквизиты добавить дату и время проведения, а потом при конкретный действиях пользователя при проведении например записывать эти данные, выводить их как и автора на форме и все дела
#37 by fly7
1с устанет выгружать 159Mb в ТЗ
#38 by Mikeware
Выгружай в сиквельную таблицу...
#39 by Smitt
а проводить то нафига, если заполняемый реквизит в движениях не играет? Просто Записать только не весь mlg (159 мег в ТЗ -  сортировать будет до утра) , А только нужные записи.
#40 by fly7
мне нужно знать, когда последний раз документ был либо проведен либо записан
#41 by FN
Я бы сделал так: Стандарным журналом регистрации отобрал все события с проведением документа - результат сохранил бы в файл mlg. Файлик этот открываем в Екселе - разделитель ;. В первой колонке дата изменения, во второй время в 9-той ID документа - сортируем по ID документа, затем по -Дата. Сохраняем в ДБФ. Дальше в 1С ... ну тут думаю уже понятно.
#42 by FN
+ В екселе можно через сводную таблицу вообще оставить только нужные данные (в смысле дату последнего проведения) - делов на 2 минуты
#43 by SiAl-chel
mlg лучше читать объектом V7TextFile, он грузит файл построчно, а не целиком как объект Текст. Или использовать log parser, а отфильтрованные строки уже обрабатывать в 1С.
#44 by fly7
.....
#45 by smaharbA
есть еще много вариаций и быстрее на порядок
#46 by fly7
мне надо по всем документам вопрос напоследок: я сейчас активно заполняю в обработке общий реквизит документов, это действие пишется в *.mlg?
#47 by fly7
сам нашел что не пишется. всем спасибо за содействие!
#48 by smaharbA
при программных изменениях ниче не пишется
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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