LINUX.ORG.RU
решено ФорумAdmin

1С под Linux, проблема обмена с MS SQL

 ,


0

1

Имеется сервер 1С 8.3 с конфигурацией БП 3.0 под управлением Linux. До некоторых пор работа его была незаметна, по принципу поставил и забыл, но пришло время использовать обмен между товароучетной программой написаноой сторонним разработчиком и бухгалтерией которая крутится на Linux сервере. Для обмена обработке требуется наличие Windows, MS SQL сервера, до определенного момента всё работало, но начиная с какой-то версии 1С (сейчас уже никто не помнит с какой) эта обработка перестала работать, официально по причине обновления конфигурации БП. От разработчика ждали 9 месяцев (на самом деле больше) написания новой обработки, и вот она появилась, но она в упор не видит необходимые файлы обмена. Разработчик объясняет такое поведение тем, что сервер не получает доступ к папке обмена. Клиент 1С запускается с локального толстого клиента, папку делали локальную, локальную для всех пользователей, на общедоступном ресурсе, на Linux сервере с открытым доступом для всех... без вараинтов. Обработка сообщает что не может получить доступ к папке. Приведу скриншот с комментариями разработчика. Честно говоря у меня уже закончились вараинты что можно предпринять.

Есть еще идеи? Дело в том, что отказатся от обработки не получится т.к. это будет ключевой элемент для бухгалтерии в наступающем, 2015, году, как переписать её у меня идей нет, ниразу не кодер 1С, есть подозрение что кодер тоже не совсем знает что делать в этой ситуации а долбить его врмени мало остается да и рычагов влияния нет. Менять всю работающую систему ради 1 обработки тоже не хочется особенно если учесть что это повлечет значительные финансовые затраты и время на реорганизацию... в общем если есть идеи готов внимательно выслушать

1С у вас установлена на сервере с linux, сетевая директория у вас та же находится на сервере с Linux? Если да, то у вас там стоит samba?

Если с этой директории должен читать как-то сам сервер, то если директория этого сетевого ресурса располжена на том же linux сервере, что и 1С, то укажите локальный путь до этой директории, если эта директория находится на SMB ресурсе, расположенном на другой системе, то смонтируйте этот сетевой ресурс на Linux сервере и укажите точку монтирования этой сетевой директории серверу.

А так вообще непонятно что и как у вас работает, опишите как у вас организована система, зачем написана программа, что она делает, что за директория, где она располагается, что в ней располагается, как с ней работает серверная часть 1С, которая установлена на Linux, клиентаская часть 1С и программа разработчика.

Ну и скажите вашему программисту, что «недоступен» и «несерверный» пишется слитно, по крайней мере в том контексте, в котором они упоминаются в тексте.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от Gotf

Честно говоря мне этот момент не ясен чуть более чем полностью. Как локальный толстый клиент 1C в режиме запуска клиент-сервера с запущенной локально обработкой с локальной MS SQL не может прочитать данные с локальной папки доступной как пользователю запустившему и создавшему эту папку так и имеющие разрешение RW для всех остальных в чтом числе и гостя? сначала работала просто локальная папка с необходимыми файлами обмена. сейчас с новой обработкой она перестала работать, файлы не видны, сделал разрешение для всех, потом сделал доступной из сети, затем опубликовал их на сетевом ресурсе в общедоступной папке (помойке) доступной для всех, затем на линукс машине с сервером 1С сделал доступную папку. во всех режимах папки и файлы обмена видны для всех и прекрасно читаются, а именно из обработки 1С пишет что нет доступа.... я в замешательстве.

StellzZz ★★
() автор топика
Ответ на: комментарий от StellzZz

папки и файлы обмена видны для всех и прекрасно читаются, а именно из обработки 1С пишет что нет доступа

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

bass ★★★★★
()
Ответ на: комментарий от StellzZz

Как локальный толстый клиент 1C в режиме запуска клиент-сервера с запущенной локально обработкой с локальной MS SQL

Тебе разработчик ясно писал, что каталог должен быть доступен серверу. Особенно учитывая, что у тебя 8.3. Создай каталог на сервере с режимом 777 по всему пути (/tmp/ololo) и укажи его.

Gotf ★★★
()
Ответ на: комментарий от bass

1. подключена шара как сетевой диск, буква назначена, права полные 2. не совсем понятно что имеется ввиду. обработчик запускается в среде Windows в клиенте 1С клиент-серверного режима. я запутался. тыц

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)
Ответ на: комментарий от kostik87

если эта директория находится на SMB ресурсе, расположенном на другой системе, то смонтируйте этот сетевой ресурс на Linux сервере

воо-о-от... наверное так и придется сделать, SMB ресурс (шара для всех с файлами обмена) на WIn-машине смонтировать как локальный ресурс на Lin-машине т.к. непосредственно ОС Linux в файловом менеджере видит и может с ним работать, а сейчас открываю в 1С ФМ он видит только локальные ресурсы, сетевые недоступны. Только разработчик еще утверждает что всё равно не будет работать т.к. ссылка

Особенности рабочих серверов под управлением Linux: не могут взаимодействовать с СУБД Microsoft SQL Server, ...

StellzZz ★★
() автор топика
Ответ на: комментарий от Gotf

Особенно учитывая, что у тебя 8.3. Создай каталог на сервере с режимом 777 по всему пути (/tmp/ololo) и укажи его.

на сервере есть каталог, 777, доступен соответсвенно и серверу и Win-клиенту, только файлы обмена обработка не цепляет. тут либо обработка глючит, либо действительно какя то нестыковка с шарами.

но смущает то, что в прошлом году ВСЁ работало и подобных проблем не возникало

StellzZz ★★
() автор топика
Ответ на: комментарий от StellzZz

После монтирования сетевой директории вы сможете её указать для сервера.

Если у вас должен 1С на linux подключаться в MS SQL сервер, то естественно, раз указано, что он подключаться не может, то он и не подключится, но вы утверждаете, что на старой версии 1C у вас работала текущая связка.

Опишите всё же, что за программа от программиста, для чего она, что находится в указанной сетевой директории, где эта программа запускается, что делает?

Вообще как у вас всё это работает.

А так я вам дам 100 % верный совет, наймите системного администратора, который имеет сертификаты по 1С на платформе Linux, он вам всё настроит, а то вы даёте минимум информации, из которой можно понять только то, что у вас раньше всё работало а сейчас - нет.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от StellzZz

файлы обмена обработка не цепляет

Как ты указал путь к каталогу?

с шарами

С какими шарами при локальном размещении?

Gotf ★★★
()
Ответ на: комментарий от Gotf

Да он не может нормально описать как у него всё работает, для чего и что он хочет сделать, а ты у него про «шары» спрашиваешь.

Шары - это вообще предметы округлой формы с равным удалением любой точки поверхности от их центра, хотя может ТС про что-то другое.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Имеется внешняя обработка для бухгалтерии. Работает при наличии MS SQL. Как мне объяснили MS SQL хранит только соответствия для объектов которые и указаныв файлах обмена. В товароучетной программе формируются данные для бухгалтерии в *.txt: указание объекта, счета учета, контрагенты, суммы. Обработка позволяет эти данные подгрузить, задать соответствия названиям торговых объектов и контрагентов (тут видимо и использутся MS SQL) и на основе этих соответсвий просизвести загрузку непосредственно в конфигурацию бухгалтерии создавая там необходимые документы и проводки. Все действия производились на стороне WIN-машины. Обработка в виде локального файла, MS SQL локальная, файлы обмена локальные, обработка запускается в среде 1С предприятие через Файл - Открыть. В настройках обработки указывается какая СУБД используется (MS SQL, Access, etc) и путь к папке обмена. нажимается кнопка «Обновить» и должен появится список доступных файлов обмена из этой папки. раньше всё работало, сейчас список пуст. сообщения никакие не выводились. после долгого разбирательства разраб дописал обработку что бы она выводила диагностическое сообщение для облегчения поиска ошибки. Таким образом удалось выяснить что нет доступа к папке обмена. В принципе он мог написать что угодно, даже «Весь мир рухнул, готовимся к земле». поэтому к собщениям «Нет доступа» отношусь скептически, задача проверить так оно на самом деле или это простая отмазка т.к. рушить всю инфраструктуру из-за небольшой обработки не хотелось бы.

StellzZz ★★
() автор топика
Ответ на: комментарий от Gotf

Как ты указал путь к каталогу?

к локальному? C:\Выгрузка из ТК, сетевому подключенному диску N:\Выгрузка, к сетевому ресурсу на сервере 1С \\192.168.0.3\share

раньше работал 1 вариант, сейчас не работает ни один

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)
Ответ на: комментарий от kostik87

Да он не может нормально описать как у него всё работает, для чего и что он хочет сделать.

Может сумбурно, но описал, учитывая что я к этой обработке отношения вообще никакого не имею, это даже не наше ТЗ, через 33 ... делалось.

StellzZz ★★
() автор топика

Ошибка входа пользователя admin

В M$ SQL главный пользователь sa. Создай пользователя admin.

ziemin ★★
()
Ответ на: комментарий от StellzZz

Смонтируй как сетевой диск средствами оси (а не указывай в настройках). По крайней мере вменяемое сообщение об ошибке получишь.

ziemin ★★
()
Ответ на: комментарий от ziemin

разраб говорит что на пользователе настройках SQL вообще не надо зацикливаться, главное сейчас прочитать список доступных файлов обмена

Из настроек только путь к каталогу. На строку подключения пока не обращайте внимания. Строка подключения используется для подключения к SQL, в процессе загрузки, когда происходит получение guid объекта, обработка ищет ссылку на объект. До этого пока дело не доходит, поскольку не доступен сам каталог, в котором лежать файлы обмена.

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)
Ответ на: комментарий от ziemin

Подключил как сетевой диск общедоступную директорию с полными правами для всех которую создал на сервере.

Нет доступа к каталогу Z:\

Остался наверное единственный вариант это монтирование SMB WIN-ресурса на сервере 1С как локального каталога. вот только подзабыл как это делать.

StellzZz ★★
() автор топика
Ответ на: комментарий от Gotf

в чем именно ужас? разработчик обработки наверное видит не в первые поделие 1С, но разводит руками, админы моей вышестоящей организации тоже разводят руками и посылают к разработчику. Пришел сюда в надежде на совет.

StellzZz ★★
() автор топика

создал на сервере 1С папку 1c_obmen примонтировал туда win шару с файлами обмена, на Linux-сервере в 1С запустил обработку, в настройках указал путь для примонтированного SMB ресурса, файл обмена появился.

что сделать на вин машине что бы получить аналогичный результат? или на винфак идти (не хотелось бы)?

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)
Ответ на: комментарий от StellzZz

Мда, вы понимаете что это опять сумбурное описание.

Исходя вотиз этого:

создал на сервере 1С папку 1c_obmen примонтировал туда win шару с файлами обмена, на Linux-сервере в 1С запустил обработку, в настройках указал путь для примонтированного SMB ресурса, файл обмена появился.

И написанного в сообщении на которое я пишу ответ.

Как я понял:
Я понял, что у вас Linux установлена серверная часть 1С, на Windows хосте есть директория, которая «расшарена» по сети, эта директория у вас смонтирована на Linux системе с серверной частью 1с, на Linux системе вы запускаете некое действие, которое производит запись некоторых данных в текстовые файлы в эту директорию. Далее на Windows хосте вы посредством программы разработчика должны прочитать файлы по сути уже из локальной директории и куда-то их загрузить. Но программа разработчика не может прочитать файлы из локальной директории, а точнее получить список файлов, так? Про mssql я не понял, где он установлен, зачем непонятно.

Если всё так как я описал, тогда я не вижу здесь проблем со стороны Linux, файлы создаются, а уже на Windows программма не может получить список файлов из локальной директории.

Если что-то не так, как я понял ваше описание, то пишите примерно в таком стиле:

Пример как нужно описывать
На Linux установлена то-то и то-то, например, серверная часть 1C, на windows установлено то-то и то-то, например, другая серверная часть 1с, либо просто какая-то база MS SQL, на этой же Windows машине есть некоторая сетевая директория. Далее нужно на Linux из 1C выгрузить в файлы некоторые данные, файлы разместить в директории на Windows машине, затем на Windows машине нужно запустить некоторую программу, которая должна прочитать список файлов из этой директории, получить из файлов данные и загрузить их в MS SQL на Windows машине, либо что?

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

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от StellzZz

Нет доступа к каталогу Z:\

Журнал самба ведёт какой? в нем посмотри.

smbmount вроде монтирует.

ziemin ★★
()

Автор, запости в джоб форум и огласи, сколько ты готов потратить чтобы снять с себя ответственность за это поделие.

anonymous
()
Ответ на: комментарий от kostik87

Пример как нужно описывать

На Linux установлен сервер и клиент 1С 8.3 с конфигурацией БП 3.0, на windows установлен клиент 1С 8.3, MS SQL 2012, имеется база для обмена и непосредствено файлы в формате *.txt содержащие данные для загрузки в бухгалтерию 3.0. На этой же Windows машине в качестве ресурса содержащего файлы загрузки данных (*.txt) пробовал использовать на выбор: 1) локальную директорию, 2) локальную директорию с общим доступом по сети, 3) сетевую директорию с общедоступного ресурса подключенную как сетевой диск (N:\), 4) общедоступную директорию с 1С сервера под Linux подключенную как сетевой диск (Z:\). Все ресурсы с полными правами для всех на чтение/запись, хотя достаточно только прав на чтение.
Процесс загрузки данных выглядит слеующим образом: в windows запускается клиент 1С в нем через «файл-открыть» запускается внешняя обработка загрузки данных (*.epf) которая должна прочитать список файлов (*.txt) из указанной директории, получить из файлов данные, загрузить из MS SQL установленные соответствия объектов, и загрузить данные в конфигурацию бухгалтерии. Проблема состоит в том, что обработка (*.epf) запущенная на Windows машине в клиенте 1С не читает список файлов загрузки (*.txt) в любой из указанных выше директорий.
Разработчик объясняет такое поведение тем, что Windows-клиент 1С запускается в клиент-серверном режиме, инициирует чтение файлов на стороне 1С сервера под управлением Linux, поэтому папка должна быть ему доступна, но по какой-то причине этого не происходит.
То есть как я понимаю на Win-машине для клиента 1С нужна директория которая будет доступна серверу 1С под управлением Linux
каким образом сделать доступной директорию со стороны сервера?

Блин!!! а ларчик просто открывался :)
Фокусы и геморои с сетевыми ресурсами воообще не причем, пока писал ответ все думал как корректнее и понятнее описать фразу «чтение файла происходит на стороне сервера, поэтому папка должна быть ему доступна.» и при этом учесть что запускается обработка со стороны win-машины клиента 1С, ошибочно крутились вокруг прав и доступа из сети. на этом не надо зацикливаться вообще никак, достаточно файлы загрузки поместить в локальный каталог на сервере 1С под управлением Linux, а на стороне клиента указать linux формат адреса. Как минимум мы читаем файлы данных. Скриншот
Загрузка почему-то не работает, должно открываться окно задания соответсвий объектов, чего не происходит, диагностические сообщения не выводятся... тут надо связываться с разработчиком, может он прояснит, или если есть идеи готов их выслушать.

В любом случае спасибо ЛОРу за наводку.

StellzZz ★★
() автор топика
Ответ на: комментарий от anonymous

Автор, запости в джоб форум и огласи, сколько ты готов потратить чтобы снять с себя ответственность за это поделие.

понимаешь, запостить в Job никогда не поздно, да и варианты есть, тут уже спортивный интерес проснулся.

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)
Ответ на: комментарий от StellzZz

достаточно файлы загрузки поместить в локальный каталог на сервере 1С под управлением Linux, а на стороне клиента указать linux формат адреса

Я тебе прямым текстом это говорил, неужели было так сложно понять?

Gotf ★★★
()
Ответ на: комментарий от Gotf

так хрень в том что адрес и на стороне lin-сервера и на стороне win-клиента должен быть одного вида, а согласись, на стороне win адрес типа /admin/1c выглядит странно и хорошо что адресная строка в обработке дает себя редактировать, без этого только «три точки» и стандартные win-адреса. как вааринт еще попросить разраба реализовать подержку с FTP ресурсов, в этом случае адрес будет выглядеть одинаково и штатно.

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

StellzZz ★★
() автор топика
Последнее исправление: StellzZz (всего исправлений: 1)

занавес:

Ошибка подключения к БД соответствий объектов. {ВнешняяОбработка.ЗагрузкаБухгалтерия83.МодульОбъекта(1069)}: Ошибка при вызове конструктора (COMОбъект): COM-объекты поддерживается только в операционных системах Windows

StellzZz ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.