Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Вариант установки 1с 7.7 в wine 1.3 (с сетевой работой)  (Прочитано 11292 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mord

  • Автор темы
  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
для wine 1.3 eщё нигде не видел, поэтому напишу, ...и для себя тоже, чтобы через год оценить прогресс Wine.

 Сейчас, для меня открытым остался вопрос только с журналом регистрации при многопользовательской работе, хотя это и не мешает.

1. Установка: наилучший вариант, на мой взгляд, скопировать уставленную под виндой папку 1cv7  куда надо, и сделать кнопку запуска вроде такой "wine '/data/!1C/1Cv77/BIN/1cv7.exe'"

-первое НО!: mfc42.dll  разместите в каталоге /1Cv77/BIN/ (её ненужно регистрировать в wine)

-второе НО!: чтобы не возится с ключом защиты, измените программное обеспечение (файл 1cv7.exe) для работы в среде unix, что конкретно поменять в файле ищите в интернете, я не скажу,  иначе правообладатель может обидеться. Вредоносное ПО, при таком варианте изменений, в виде эмулятора ключа не используется, так что правообладатель для "не граждан РФ" идет "лесом", для россиян -  подключайте ключ, однозначно! 1С богатая контора, и суд вы у неё не перекупите, хотя они и не правы.

2. Правообладатели: об 1с сказано выше, Microsoft тоже идет "лесом", не надо было dcom95 отпускать, ведь mfc42, ole32 и  rpcrt4 единственные библиотеки мелкомягких которые нужны в wine для правильной работы 1с77, и то последняя только для удобства программирования (убирает глюки буфера обмена при работе в конфигураторе.

3.Настройка wine: бросаем в папку system32 ole32 и  rpcrt4  и регистрируем обе в winecfg как (сторонняя, встроенная), mfc42 лежит в 1с и 1с сама её смотрит у себя  раньше чем в system32.

-первое НО!: пока открыт вопрос с кнопкой "Ввод" (с клавы одна не работает, надо жать "Шифт+Ввод"), мне это не мешает, но перфекционисты могут сделать следующее:

скачать файл "FormEx.dll", и кинуть в каталог 1Cv77/BIN/

далее в конфигуратор и:

А. в процедуру "ПриНачалеРаботыСистемы()" пишем:

 Если ЗагрузитьВнешнююКомпоненту("FormEx.dll")=0 Тогда

            Предупреждение("Не удается загрузить внешнюю компоненту 1C++!",10);           

 КонецЕсли;     

Б. создаём в глобальном модуле новую процедуру:

Процедура ПриНажатииКнопкиКлавиатуры(Конт, КодКл, Алт, Шифт, Контрл, Символ, ФСО)

   //Сообщить (КодКл);

   Если КодКл=13 Тогда

            Service = СоздатьОбъект("Сервис");

            Service.SendKeys("{TAB}");

       //КодКл=9;

   КонецЕсли;

КонецПроцедуры

За идею спасибо - 1clinux; http://1clinux.org/index.php?topic=188.0

4. Многопользовательская работа:

Очень проста в настройке))))))) следовательно - внимательно следите за руками фокусника (... и порядком слов в предложениях)

А) ставим последний etercifts c сайта Etersoft. Он свободный. Устанавливаем (инструкции по нему - на етерсофте). Пересобираем ядро. Пишем в файл /etc/sysconfig/etercifs.conf  строку MOUNT_OPTIONS=user=пользователь,iocharset=utf8,file_mode=0660,dir_mode=02770,uid=пользователь,gid=группа,wine,nounix

где пользователь= ваш пользователь, группа= группа в которой должны быть пользователи 1с базы 

Перезапускаемся.

Б) как нибудь делаем sudo etermount //192.168.1.2/data/base где вместо //192.168.1.2/data/base должен быть путь к папке с базой 1с и вводим пароль root на вход в базу, не параноики могут прописать пароль в /etc/sysconfig/etercifs.conf как опцию MOUNT_OPTIONS password=пароль. Параноики читают инструкции Etersoftа.

В) подключаем юзеров к базе и работаем.

- ) панель окон работает,

- ) буфер обмена работает,

- ) Enter у перфекционистов работает,

- ) много  пользователей по сети работают,

- ) блокировки в 1с работают.

- ( регистрация сетевых пользовтелей глючит, кому она нужна, разбирайтесь. За это отвечает файл /syslog/links.tmp, он создаётся 1с кой  в момент загрузки конфигурации после авторизации юзера и автоудаляется при закрытии, если нет lck файлов. Информация в файле хрнится в SDF-формате. Каждому пользователю отведено фиксированное количество строк, и область файла в 1024 байта. 1с-ка блокирует байт со смещением 1E8481h + НомерПользователяВСписке. Поэтому, чтобы определить, является ли пользователь активным, достаточно сделать попытку блокировки соответствующего байта в файле links.tmp, если вышло - пользователь не активен. Вот что нагуглил я по этому поводу, информации более чем достаточно и для установки нужных прав на этот файл и для написания альтернативного считывателя пользователй.




 

Страница сгенерирована за 0.207 секунд. Запросов: 24.