#0
by romix
Продолжим тему с перехватом WinAPI и функций DLL. Файл для скачивания: (52К, ссылка доступна для скачивания левой кнопкой мыши). Программа для "горячей" замены конфигурации без необходимости завершать работу всех пользователей. Достаточно скопировать в папку с конфигурацией файл 1cv7_1.md, 1cv7_2.md и т.д., чтобы вновь входящие пользователи "видели" новый (последний по номеру) MD в качестве файла конфигурации. Пользователь, который хочет увидеть изменения, должен будет выйти и заново войти в 1С. Таким способом можно заменить, например, глобальный модуль, общие таблицы, картинки, интерфейсы (меню и т.д.), перечисления, отчеты и обработки. Другие пользователи при этом могут продолжать свою работу в 1С. Дополнительная функция: если в папке с конфигурацией есть файл 1cv7.stop, то вход пользователей задерживается, пока существует этот файл. И пользователь видит сообщение из содержимого этого файла. Например, "База 1С обновляется. Пожалуйста, подождите до 13:00". Если ни одного из вышеуказанных файлов (1cv7_*.md, 1cv7.stop) в папке с конфигурацией нет, то программа работает в "прозрачном" режиме, не выполняя никаких действий. Установка: 1) Сделать резервную копию папки 1Cv7BIN 2) Скопировать в нее файл md_chng.dll 3) Скопировать в нее файл patch_seven.exe и запустить его (выполнить патч). Предыдущие разработки, сделанные по похожей технологии:
#0
by romix
Продолжим тему с перехватом WinAPI и функций DLL. Файл для скачивания: (52К, ссылка доступна для скачивания левой кнопкой мыши). Программа для "горячей" замены конфигурации без необходимости завершать работу всех пользователей. Достаточно скопировать в папку с конфигурацией файл 1cv7_1.md, 1cv7_2.md и т.д., чтобы вновь входящие пользователи "видели" новый (последний по номеру) MD в качестве файла конфигурации. Пользователь, который хочет увидеть изменения, должен будет выйти и заново войти в 1С. Таким способом можно заменить, например, глобальный модуль, общие таблицы, картинки, интерфейсы (меню и т.д.), перечисления, отчеты и обработки. Другие пользователи при этом могут продолжать свою работу в 1С. Дополнительная функция: если в папке с конфигурацией есть файл 1cv7.stop, то вход пользователей задерживается, пока существует этот файл. И пользователь видит сообщение из содержимого этого файла. Например, "База 1С обновляется. Пожалуйста, подождите до 13:00". Если ни одного из вышеуказанных файлов (1cv7_*.md, 1cv7.stop) в папке с конфигурацией нет, то программа работает в "прозрачном" режиме, не выполняя никаких действий. Установка: 1) Сделать резервную копию папки 1Cv7BIN 2) Скопировать в нее файл md_chng.dll 3) Скопировать в нее файл patch_seven.exe и запустить его (выполнить патч). Предыдущие разработки, сделанные по похожей технологии:
#35
by romix
#ЗагрузитьИзФайла Это тоже никто не отменял. Проблема только в том, что эти директивы надо сначала вписать в конфигурацию, и только потом их можно будет юзать. Кроме того, они дают ряд ограничений (например, не работает должным образом Intellisence).
#38
by romix
В данном случае оно не используется - осталось от других разработок. Позволяет сделать "подставную" DLL, чтобы попасть в адресное пространство процесса. На входе даешь имя DLL и список функций, а на выходе она дает файл проекта DPR для Delphi (при компиляции образуется "подставная" DLL).
#40
by romix
Это не ВК, а OpenConf. Там тоже подменой функций DLL вставлены полезные вещи. И ты многое теряешь. (37-2) "На ходу" заменять можно только метаданные (интерфейсы, перечисления, общие таблицы, картинки, права, ГМ и т.д) но не структуру данных. Структура данных заменена, естественно, не будет - для этого надо выгонять юзеров.
#41
by romix
(39-2) Смотри также книгу Джеффрри Рихтера "Windows для профессионалов" - там описаны несколько способов внедрения DLL и замены функций API.
#42
by GrayT
спасибо, спасибо - ты мне ее уже рекомендовал, а я ее уже нашел - но вот руки до нее пока не дошли :(
#43
by romix
Да, в каких-то случаях TurboMD практичнее. Сам его использую - очень удобно. Но иногда юзер звонит "Не могу войти в журнал - пишет "недостаточно прав доступа"". Или надо добавить в перечисление новый пункт. Или заменить что-то в таблице (которые все не повыкидываешь в файлы, да и запутаться потом в них легко). Или отредактировать меню и панели инструментов, не выгоняя всех из базы. То есть, вот такого рода правки - чтобы не останавливать работу всех пользователей, когда нужно что-то незначительное и не затрагивающее структуру данных поправить одному из них.
#45
by Круто
Роман, а что потом-то делать с МД? В конфигураторе какой будет? Я так думаю, что при подмене надо по окончании работы просто объединить новый МД со старым. Так?
#46
by romix
Да, надо объединить или (если правились перечисления) загрузить измененную конфу. Перед объединением конечно надо сделать бэкап и грохнуть (переместить в другую папку) все новые версии MD.
#59
by Mosson
Пасиба БОЛЬШОЕ. очень полезная штучка. уже поставил, тестирую... плюсы уже описаны почти все - исправления не касающиеся данных вносить крайне приятственно. я например не рисковал переделывать структуру регистра из-за боязни вылезания кучи багов, а 50 юзеров выгнать быстрее чем за 15 мин нерватрепки не получиться. теперь вот сижу. что не выловлю сразу можно будет "на лету подправить"
#73
by romix
Поставил отладочную печать: короче, 1С-ка при открытии открывает файл с полным путем: E:MD_CHANGERv771Cv7.MD А при выгрузке или сохранении - 1Cv7.MD (без пути)
#78
by ildus
romix, а ты можеш сделать перехват с подменой пути к *.dbf и *.cdx ? хочется разделить их по разным дискам, например индексы на RAM-диск закинуть.
#79
by romix
Уже сделал - Если будет хотя бы минимально положительный результат - прошу об этом сказать. Мои раскопки в этом направлении также привели к программе SuperCache, которая, по идее, должна решить проблему отсутствующего кеша в NT/2000 при подключении второго пользователя. Проверь также ее.
#80
by romix
SuperCache должна (возможно) ускорить "в десятки раз" работу файл-серверной 8-ки или 7.7, за счет кеширования на уровне блоков жесткого диска.
#82
by DGorgoN
Извени, я так и не понял. Баг с выгрузкой/загрузкой вылечен? За эту фифку тоже большое спасибо. Жалко что вчера не увидел, а то бы уже поюзал. Теперь только через неделю :( - когда на сервере никого не будет :).
#84
by romix
Т.е. когда нет "горячих" замен MD, 1С работает как обычно, без изменений. А если они есть, то а) доступ в конфигуратор запрещен б) 1С в режиме "предприятие" юзает замещающий MD с последним номером.
#91
by romix
Не работала наверное загрузка (т.к. при выгрузке был выгружен не тот MD). Теперь проблема не должна проявляться, т.к. вообще не пустит в конфигуратор при наличии горячих замен md.
#94
by jbond
А где можно официально скачать траял SuperCache? Этот поиск фактически ничего не дает, как-будто развитие прекратилось. Кто-нибудь сравнивал его с O&O CleverCache V6 Professional?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- MD_CHANGER (горячая замена MD) и другие плагины
- замена HASP ключиков на USB
- Ошибка v7plus.dll & autosalon.dll
- Управление торговлей 10.2 вместе с scanopos.dll, scaner1c.dll и USB сканером
- Чем грозит замена odbcbcp.dll, sqlsrv32.dll, sqlsrv32.dll, в Win7 ?
- v7: Нужны библиотеки seven.dll и DBEng32.dll
- v7: Как посмотреть какие объекты может создавать данная версия 1cpp.dll, formex.dll
В этой группе 1С
- ЗначениеВСтрокуВнутр() зависит от того, откуда взят объект???
- Офф. Вино из Молдавии и Грузии.
- 1С:Сельское Хозяйство 7.7, Конфигурация Сельхоз. предприятие. Бух. учет.
- Журнал операций не показывает операций
- Валится 1С при открытии журнала проводок
- Как выгрузить данные из 1С:Налогоплательщика в XML?
- как убрать кредит из оборотно сальдовой ведомости ?
- Подготовка сведения для ИМНС
- Приведение типов в макроязыке 1С
- Как добавить в Excel лист? (не получается)
- 23 счет - как и какими документами он закрывается?
- Как настроить сортировку в форме списка при нажатии на шапку столбца?
- Лизинговые операции в УПП...
- The Bat сохраняет на рабочем столе свои файлы tmp
- как из Таблицы по Расшифровке открыть другую Таблицу
- 7.7.Как установить отборы в справочнике?
- курсы 1С: Консультант, 1С: руководитель проектов
- УПП, док-т "Ввод начальных остатков по ОС": амортизация?
- Чем отличается право на Чтение документа, от права на просмотр?
- Outlook и переадресация