Сетевая на 25 рабочих мест. Контроль изменения хозяйственных операций
Здравствуйте!
ИБ 8 ОРН, сетевая версия 25 рабочих мест. Инфо-сервера нет
Возникла очень острая необходимость в фиксации того, с какого рабочего места идет изменение уже существующей операции. Подчеркну - именно уже имеющейся. Т.е. в журнале есть операция, её открыли, сделали с ней какие-либо действия (например, что-то поменяли в проводках), нажали ОК.
Нет необходимости фиксировать, что именно поменяли, достаточен факт изменения и рабочее место, с какого именно это сделано.
Как вариант, обычный текстовый файл, в который при изменении операции каждый раз добавляется новая строчка к примеру:
Дата_изменения время_изменения Рабочее_место Дата_операции Название_операции
Чтобы файл не раздувался, каждый месяц приходится создавать новый. Можно, конечно, и в табличку какую-то писать. Единственно, возникает вопрос совместного доступа, если в один момент два разных пользователя изменят две операции, и соответственно, нужно будет обработать два события.
Это мысли вслух. Может кто-то сможет посоветовать другой функционал для решения указанной задачи?
- 416 просмотров
Прописал функцию вручную - результат есть! Получаю на выходе файл!
Можно ли изменить кодовую страницу? Он пишется в DOS кодировке, а хотелось бы в ANSI.
И еще вопрос - можно ли как-то в автоматическом режиме раскидать настройку по всем программам? Т.е. при входе в базу проверялось, есть ли такая настройка в ib.ini? Если нет - добавить.
Для обработчиков "Оповещений" https://dev.ib.ru/sys/docs/platform/ib8/events/notific.html
не используется возвращаемое значение ТИП_ЛОГИКА.
Просто ФУНКЦИЯ ИзменениеОпер ( ТИП_ЧИСЛО: номер ).
Параметр "номер" можно передавать в функции типа ОПЕР_ДАТА, ОПЕР_СОД вне зависимости от включения фильтра.
В лог в папке базы уже пишутся текущие дата и время, а также логин пользователя и имя пользователя Windows. РАБ_МЕСТО можно дописать вручную.
Кодировка задается только для всех файлов трассировки скопом.
[Trace] OEM = 0
Все log файлы трассировки будут в ANSI
https://dev.ib.ru/sys/docs/platform/ib8/debug/log_files.html
Я использую два способа.
1. Синхронизирую файлы в папках по шаблону.
Например, я сделал новый файл бланка и мне его надо раскидать по рабочим местам.
При выходе из программы задаётся вопрос "Копировать новые файлы?". Если ответить "ДА", то файлы (по фильтру) будут записаны в общую папку.
Если эта сетевая папка будет прописана в определениях, то новые файлы будут скопированы по рабочим местам при входе в программу.
2. Для ИНИ файлов делаю прямую запись в нужный файл, пример добавления для обработки удаления счёта:
Функция АВ_ИНИ_ФАЙЛ присутствует в библиотеке ibalt.ibl, которая использует ibalt.dll. Всё это присутствует в нашем обновлении.
У меня обработчик событий на добавление операции в журнал не срабатывает, если в бланке операция формируется через конструктор ТИП_ОПЕРАЦИЯ а затем кодом:
СОЗДАТЬ(оп,ТИП_ОПЕРАЦИЯ)
оп.дата=дат_д
оп.документ="ЛЗК "+СТР(док)
оп.название="Списание материалов в производство"+СИМВ(13)+издел
......
ЕСЛИ оп.РЕДАКТИРОВАТЬ ТО
оп.ДОБАВИТЬ
КОНЕЦ_ЕСЛИ
Может это событие Изменение операции или Диалог редактирования?
Событие добавление операции, это реакция программы на кнопку добавления F7 и стандартный диалог (открывается список ТОП) не вызывается.
Вы же операцию явно руками программно добавляете.
Я и писал, что в таком случае обработчик "Добавление операции" не вызывается.
Здесь можно явно что-то свое вызывать.
Да, руками. Но при этом, если формировать ПКО, то нажав ОК в окне событие в лог записывается. Специально проверял. Единственно, там используется функция ОПЕРАЦИЯ для этих целей.
В хэлпе написано: "Это событие вызывается также при добавлении операции из бланка."
Получается, вызываться-то вызывается, но только при определенных условиях
Вызывается, когда платформа сама добавляет операцию.
В т.ч. при использовании функции ПРОВОДКА после пересчета бланка показывается стандартный диалог операции и при нажатии ОК операция добавляется платформой.
Ясно. Значит нужно на ПРОВОДКА переводить все добавление операций.