Автор Тема: 1C 7.7 не пускает второго пользователя  (Прочитано 11115 раз)

Оффлайн alvd

  • Начинающий
  • *
  • Сообщений: 4
Устанавливаю 1С 7.7.027 Торговля и склад на Linux.

Дано: база данных 1С на Samba. Перенесена с Windows. Есть небольшой набор testcase по поводу блокировок. Отличий в работе при расположении БД на Samba и на Windows сервере не обнаружено.

БД - dbf, просто расшарена по сети. Сеть - 9 ПК и в ближайшие несколько лет расширение не предвидится, поэтому SQL и терминальные клиенты - неактуально.

Проблема: если первой подключается windows-машина, то клиент с Linux-ПК подключиться не может. Выдаётся сообщение о том что программа "была завершена аварийно и требуется зайти монопольно, чтобы переиндексировать файлы". Если первой подключается Linux-машина, то следующая Linux-машина может подключиться однократно, если перед этим с неё был монопольный вход с переиндексацией. При этом Windows-клиенты всегда работают нормально.

Проверено: в качестве сервера может выступать как Linux, так и Windows станция, симптомы не меняются.

В качестве Linux-станций проверены варианты на Ubuntu, Fedora, Alt Linux, Mandriva.

Wine использовался как Etersoft, так и нативный.  Базы 1С монтировались как через automount, так и через mount. Испробованы варианты с подключением дисков в wine и подключением папок без создания дисков.

Также проверена работа 1С 7.7.025.

В качестве сетевой ФС испробованы cifs, etercifs, nfs. Причём можно отключить блокировки вовсе - результат тот же. Естественно, на win-сервере блокировками не поиграть.

В логах Samba значимых отличий онаружить не удалось.

Поскольку на рынке вроде бы есть предложения которые работают (хотя мне не удалось показать это на примере etersoft, а других под рукой нет) - возможно я просто что-то не понял.

Куда копать?

Оффлайн aen

  • alt linux team
  • ***
  • Сообщений: 2 452

Поскольку на рынке вроде бы есть предложения которые работают (хотя мне не удалось показать это на примере etersoft, а других под рукой нет) - возможно я просто что-то не понял.

Куда копать?


Есть ровно одно работающее предложение -- коммерческий wine@etersoft. Сборка etersoft из Альт Линукс содержит лишь свободные компоненты и не обеспечивает работу 1С 7.7.
Извините, если огорчил.

Mario_z

  • Гость
alvd
Я думаю вам надо петицию в 1С написать. Охренели совсем - wine понимаешь не поддерживают!  :D
Вот, например, ДубльГис под wine работает.

Оффлайн alvd

  • Начинающий
  • *
  • Сообщений: 4
aen, спасибо, скачаю последний пробный wine@etersoft. Я правильно понял что проблема не в wine, а в особенностях работы samba?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 927
    • Домашняя страница
    • Email
alvd
Я думаю вам надо петицию в 1С написать. Охренели совсем - wine понимаешь не поддерживают!  :D
А они ответят: у нас есть 1С:Предприятие 8.2 сервер приложений с веб-интерфейсом. Всего за 41 тыс. рублей. И будут правы.
Андрей Черепанов (cas@)

Оффлайн Slav

  • Давно тут
  • **
  • Сообщений: 49
Я думаю раз windows-клиенты коррекно работают с базой, то и Linux тоже может.
Подозреваю, что когда в Windows подключается сетевой диск или просто папка она монтируется со всеми возможными тяжелыми флагами: обновление времени последнего доступа, обвновление времени изменения, ...
Когда же монтируется эта же папка (сетевой диск) в Linux используется более "лёгкое" монтирование, которое не учитывает то же время последнего доступа.

1. Windows клиенты 1С, поключися к базе, в таблицу 1susers записался, установил что он первый использует базу.
2. Linux клент подключается следом, сморит в таблице 1susers не пусто и при этом все выглядит так как будто этот Linux клиент первым подлючился к БД (она не заблокирована, не обновлена где-то в чем-то, я вот не знаю к сожалению как клиент поределяет первый он в базе или нет), а раз он считает себя первым и 1susers не пуста - то кто-то в "прошлый" раз вышел некорректно. И Linux клиент справедливо требует переиндексации.

Признаком того, что кто-то уже вошел в БД является файл 1Cv7.LCK, он пустой но в нём важны две вещи:
1. его наличие.
2. дата его последнего изменения - она равна дате входа последнего подключившегося пользователя.

Думаю из-за кеширования/игнорирования даты изменения файла 1Cv7.LCK/... Linux клиенты 1С могут думать что бы некорректный выход и нужна переиндексация. В сторону кеширования я склюняюсь из-за брошеной автором темы фразы:
>>то следующая Linux-машина может подключиться однократно, если перед этим с неё был монопольный вход с переиндексацией
Явно нездоровое поведение, указываюшее на факт кеширования, которое в данном случае может помешать работе 1С.

Есть еще одна догадка (но она вообще сумашедшая) - часовые пояса. Например, Windows клиент работая в своем часовом поясе подключился к БД и поставил время изменения файла = 30 февраля 2010 15:00, в тоже время Linux считает что сейчас 30 февраля 2010 14:00, подключается к БД, видит что база уже залочена (файл 1Cv7.LCK уже есть), но она залочена в будущем - "че за хрень" думает Linux клиент и начинает кричать о переиндексации.
« Последнее редактирование: 27.02.2010 22:11:25 от Slav »

Оффлайн aen

  • alt linux team
  • ***
  • Сообщений: 2 452
aen, спасибо, скачаю последний пробный wine@etersoft. Я правильно понял что проблема не в wine, а в особенностях работы samba?

Нет, неправильно.

Оффлайн alvd

  • Начинающий
  • *
  • Сообщений: 4
aen, а как правильно? К сожалению эксперименты на пару дней вынужден буду отложить, но всё же, зная что etersoft поставляет etercifs и что они внесли даже в нативный wine код, который заставляет его по другому работать с их файловыми системами при определённых условиях, я склоняюсь в пользу дотачивания samba-клиента.

К тому же, даже подкладывание всех библиотек, которые etersoft прописывает как native, ситуацию не меняет.

Оффлайн alvd

  • Начинающий
  • *
  • Сообщений: 4
Так. В свободном wine@etersoft не работает даже с библиотеками от MS, перечисленными в платном wine@etersoft. В платном работает, но вываливается со случайными ошибками при запуске третьей (и иногда 2-й) копии 1С. Но зато неважно, используется etercifs или просто cifs.

В просто wine несколько копий запускается на локальной БД, и соответственно, только одна на сетевой.

Дело, действительно, в wine. Видимо, придётся купить wine@etersoft, но вопрос правильного запуска 1С в linux остаётся недораскуренным.

Есть ли, всё же, возможность _полноценного_ запуска, и если есть, как её реализовать?

Оффлайн marsden

  • Давно тут
  • **
  • Сообщений: 42
насчет "терминальный сервер - неактуально" эт вы зря. Нормально работает связка freenx+wine@etersoft+1C 7.7, а шарить базу через самбу и в чисто виндовой сети - самоубийство, а в гетерогенной - даже слов нет, как это назвать

Оффлайн romario

  • Завсегдатай
  • *
  • Сообщений: 621
    • ЮНИКС
Вопрос к автору удалось ли ему решить проблему, у меня похожая ситуация.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 236
Вопрос к автору удалось ли ему решить проблему, у меня похожая ситуация.
если вы не хотите потратить несколько лет как Etersoft, то проще им небольшую денежку заплатить. Или копить на 1C 8.3 , там нативно работает.

Оффлайн romario

  • Завсегдатай
  • *
  • Сообщений: 621
    • ЮНИКС
дык сегодня установил платную версию от этерсофта, ситуация не изменилась

Оффлайн igorigor76

  • Завсегдатай
  • *
  • Сообщений: 651
...
В качестве Linux-станций проверены варианты на Ubuntu, Fedora, Alt Linux, Mandriva.
...
Три-четыре года назад переводили предприятие на Linux. На SAMBA сервере и клиентских машинах использовали дистрибутив ASPLinux 12, а потом CentOS 5.4 + wine@etersoft network. 1C 7.7 (dbf) прекрасно работало. Кол-во баз больше 10. Клиентов 20-30. Причем кое где  оставался Windows.
А вот Ubuntu, Fedora, Alt Linux на тот момент не пробовали. Но я думаю не в дистрибутиве дело. Тем более у Etersoft для этих дистрибутивов заявлена полная поддержка. Может нужно обратить внимание на права, пользователя и группу при расшаривании и монтировании.

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 236
дык сегодня установил платную версию от этерсофта, ситуация не изменилась
и документацию прочитали?