Сетевая на 25 рабочих мест. Контроль изменения хозяйственных операций
Здравствуйте!
ИБ 8 ОРН, сетевая версия 25 рабочих мест. Инфо-сервера нет
Возникла очень острая необходимость в фиксации того, с какого рабочего места идет изменение уже существующей операции. Подчеркну - именно уже имеющейся. Т.е. в журнале есть операция, её открыли, сделали с ней какие-либо действия (например, что-то поменяли в проводках), нажали ОК.
Нет необходимости фиксировать, что именно поменяли, достаточен факт изменения и рабочее место, с какого именно это сделано.
Как вариант, обычный текстовый файл, в который при изменении операции каждый раз добавляется новая строчка к примеру:
Дата_изменения время_изменения Рабочее_место Дата_операции Название_операции
Чтобы файл не раздувался, каждый месяц приходится создавать новый. Можно, конечно, и в табличку какую-то писать. Единственно, возникает вопрос совместного доступа, если в один момент два разных пользователя изменят две операции, и соответственно, нужно будет обработать два события.
Это мысли вслух. Может кто-то сможет посоветовать другой функционал для решения указанной задачи?
- 408 просмотров
Хм.. Уважаемые модераторы, вы немного исказили оригинальное сообщение. Функционала такого нет, я прошу помощи, идеи, в его реализации. А из двух последних абзацев следует, что он уже есть, но нужен другой.
Здравствуйте!
Я вижу два пути для решения такой задачи. Причем возможности для таких решений появились в совсем недавних версиях 8.894 и 8.896.
ОТЛАДКА(<<["my.log"] "Здесь любое сообщение").
Операция идентифицируется по полю OPER_NUMB.
SELECT * FROM HOZOP WHERE OPER_NUMB=... позволит узнать дату, содержание и т.п.
Ротацию логов при достижении некоторого размера надо делать самостоятельно.
Для надежного выполнения действий в многопользовательской среде можно воспользоваться файловой блокировкой отдельного файла. Для этого в платформу был добавлен метод ПОПЫТКА_ОТКРЫТЬ для объекта ТИП_ФАЙЛ. В справке есть примеры. При проверке размера захватываем блокировку на чтение, а при выполнении ротации - на запись.
Здравствуйте! Спасибо за ответ!
Срабатывание обработчика при стандартном диалоге меня вполне устроит (на данный момент).
При использовании обработчика каким образом в функцию передается номер открытой хозяйственной операции? Я же должен по этому номеру затем получить интересующую меня информацию?
По поводу логов идея такая: создать отдельную папку в папке базы. Логи создавать с именем ГГГГММ.log Вычищать потом вручную что не нужно.
Пользователь хочет редактировать операцию.
где номер – номер выбранной операции в текущем фильтре (если фильтр действует на отчеты) или абсолютный номер (если не действует).При установке обработчика не показывается диалоговое окно редактирования операции, а вызывается функция следующего вида:
Есть у меня обработчик на удаление счёта
Там счёт подставляется.
Кстати, делал для пользователей управление доступом к бланкам. Могу прислать, а можете скачать с обновлением Модуса modus.ru. Как и где находится покажу +79255074282
Евгений, здравствуйте!
Итак, человек открывает операцию на редактирование. Срабатывает обработчик:
//записать в лог-файл какую операцию менял пользователь
КОНЕЦ_ФУНКЦИИ
Этот самый номер система сама определит? Или каким образом я определю операцию, с каким номером он открыл? Фильтра нет, будем считать, что он открыл рандомную операцию в журнале из 15000 операций.
Система сама определит и подставит номер в функцию.
Посмотрите, пожалуйста, скриншот. Программа не видит функцию в окне подключения обработчика.
ФУНКЦИЯ ТИП_ЛОГИКА: ИзменениеОпер (ТИП_ЧИСЛО: номер)
имяф=СТР(ГОД(ДАТА_ТЕК))+СТР(МЕС(ДАТА_ТЕК)+".log"
строк=СТР(ДАТА_ТЕК)+" "+СТР(ВРЕМЯ_ТЕК)+" "+СТР(РАБ_МЕСТО)+" "+СТР(ОПЕР_ДАТА(номер)+" "+ОПЕР_СОД(номер,1)
ОТЛАДКА(<<[имяф]строк)
ИзменениеОпер=ДА
КОНЕЦ_ФУНКЦИИ
Думаю, что это нюансы исполнения.
Например, в выборе функции входа, тоже нельзя выбрать функцию Init из библиотеки APP?!
Нюансов куча и маленькая тележка.
Из одной и той же библиотеки выбираются разные функции.
Для диалога редактирования операции
для изменения операции
Очень любопытно, что скажет "начальник транспортного цеха"?