Ошибка 1с «Каталог обмена информацией не существует» — Решение
Иногда требуется настроить синхронизацию между базами 1с через каталог обмена. Но настройка не всегда так очевидна, как казалось бы…
В этой статье я привел решение ошибки «Каталог обмена информацией не существует» в случае, если сервер 1с установлен на Linux и Windows сервере.
Решение для сервера 1с на Linux на примере Centos Stream.
Скорее всего вы получаете одну из нескольких ошибок:
Прямое подключение к информационной базе недоступно на сервере под управлением ОС Linux — ошибка говорит сама за себя, нам потребуется настройка сетевого обмена.
Ошибка подключения: Каталог обмена информацией не существует — данная ошибка возникает из-за того, что при настройке обмена авторизация в сетевой папке происходит учетной записью usr1cv8 из под Linux.
Для решения данной проблемы нам придется смонтировать сетевую папку в Linux под учетной записью, под которой работает сервер 1с.
1) Расшариваем сетевую папку на вашем файловом сервере и даем права на запись для учетной записи guest.
У меня будет //192.168.128.32/public/1C_Share
2) Установим cifs-utils на Linux сервере 1с:
yum install cifs-utils #для Centos
apt install cifs-utils #для Ubuntu
3) Создадим каталог для обмена, в который будет монтироваться сетевая папка:
4) Посмотрим uid пользователя usr1cv8, чтобы при монтировании указать его владельцем: каталога
5) Смонтируем нашу сетевую папку в каталог 1С_Share:
mount -t cifs //192.168.128.32/public/1C_Share /1C_Share -o user=guest,password=,uid=993
Теперь в настройках 1с указываем каталог для обмена \1C_Share и смотрим есть ли подключение:
6) Сейчас сделаем так, чтобы сетевая папка в Linux монтировалась автоматически после перезагрузки:
nano /etc/fstab и в конфиге добавляем внизу
//192.168.128.32/public/1C_Share /1C_Share cifs username=guest,password=,uid=993,iocharset=utf8,nofail 0 0
Решение для сервера 1с установленном на Windows Server.
Здесь все гораздо проще. Нужно авторизоваться в сетевом каталоге под учетной записью с которой у вас запущена служба 1с. У меня это USR1CV8.
Для этого под пользователем USR1CV8 переходим в Панель управления — Диспетчер учетных данных — Учетные данные Windows и добавляем адрес сервера //192.168.128.32 с данными авторизации, которые вы указали на файловом сервере.
Если вдруг у вас появляется подобная ошибка при файловом режиме работы 1с, то вам не хватает прав на запись для вашей учетной записи в каталоге, в котором вы настраиваете обмен.
Стоит посмотреть права для пользователя на вкладке Безопасность:
Источник
1С под Linux, проблема обмена с MS SQL
Имеется сервер 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С и программа разработчика.
Ну и скажите вашему программисту, что «недоступен» и «несерверный» пишется слитно, по крайней мере в том контексте, в котором они упоминаются в тексте.
Честно говоря мне этот момент не ясен чуть более чем полностью. Как локальный толстый клиент 1C в режиме запуска клиент-сервера с запущенной локально обработкой с локальной MS SQL не может прочитать данные с локальной папки доступной как пользователю запустившему и создавшему эту папку так и имеющие разрешение RW для всех остальных в чтом числе и гостя? сначала работала просто локальная папка с необходимыми файлами обмена. сейчас с новой обработкой она перестала работать, файлы не видны, сделал разрешение для всех, потом сделал доступной из сети, затем опубликовал их на сетевом ресурсе в общедоступной папке (помойке) доступной для всех, затем на линукс машине с сервером 1С сделал доступную папку. во всех режимах папки и файлы обмена видны для всех и прекрасно читаются, а именно из обработки 1С пишет что нет доступа. я в замешательстве.
папки и файлы обмена видны для всех и прекрасно читаются, а именно из обработки 1С пишет что нет доступа
1. подключи шару как сетевой диск.
2. владелец шары, директорий и всех файлов для обработки должен совпадать с именем пользователя под которым монтируется шара и запускается обработчик.
Как локальный толстый клиент 1C в режиме запуска клиент-сервера с запущенной локально обработкой с локальной MS SQL
Тебе разработчик ясно писал, что каталог должен быть доступен серверу. Особенно учитывая, что у тебя 8.3. Создай каталог на сервере с режимом 777 по всему пути (/tmp/ololo) и укажи его.
1. подключена шара как сетевой диск, буква назначена, права полные 2. не совсем понятно что имеется ввиду. обработчик запускается в среде Windows в клиенте 1С клиент-серверного режима. я запутался. тыц
если эта директория находится на SMB ресурсе, расположенном на другой системе, то смонтируйте этот сетевой ресурс на Linux сервере
воо-о-от. наверное так и придется сделать, SMB ресурс (шара для всех с файлами обмена) на WIn-машине смонтировать как локальный ресурс на Lin-машине т.к. непосредственно ОС Linux в файловом менеджере видит и может с ним работать, а сейчас открываю в 1С ФМ он видит только локальные ресурсы, сетевые недоступны. Только разработчик еще утверждает что всё равно не будет работать т.к. ссылка
Особенности рабочих серверов под управлением Linux: не могут взаимодействовать с СУБД Microsoft SQL Server, .
Особенно учитывая, что у тебя 8.3. Создай каталог на сервере с режимом 777 по всему пути (/tmp/ololo) и укажи его.
на сервере есть каталог, 777, доступен соответсвенно и серверу и Win-клиенту, только файлы обмена обработка не цепляет. тут либо обработка глючит, либо действительно какя то нестыковка с шарами.
но смущает то, что в прошлом году ВСЁ работало и подобных проблем не возникало
После монтирования сетевой директории вы сможете её указать для сервера.
Если у вас должен 1С на linux подключаться в MS SQL сервер, то естественно, раз указано, что он подключаться не может, то он и не подключится, но вы утверждаете, что на старой версии 1C у вас работала текущая связка.
Опишите всё же, что за программа от программиста, для чего она, что находится в указанной сетевой директории, где эта программа запускается, что делает?
Вообще как у вас всё это работает.
А так я вам дам 100 % верный совет, наймите системного администратора, который имеет сертификаты по 1С на платформе Linux, он вам всё настроит, а то вы даёте минимум информации, из которой можно понять только то, что у вас раньше всё работало а сейчас — нет.
файлы обмена обработка не цепляет
Как ты указал путь к каталогу?
С какими шарами при локальном размещении?
Да он не может нормально описать как у него всё работает, для чего и что он хочет сделать, а ты у него про «шары» спрашиваешь.
Шары — это вообще предметы округлой формы с равным удалением любой точки поверхности от их центра, хотя может ТС про что-то другое.
Имеется внешняя обработка для бухгалтерии. Работает при наличии MS SQL. Как мне объяснили MS SQL хранит только соответствия для объектов которые и указаныв файлах обмена. В товароучетной программе формируются данные для бухгалтерии в *.txt: указание объекта, счета учета, контрагенты, суммы. Обработка позволяет эти данные подгрузить, задать соответствия названиям торговых объектов и контрагентов (тут видимо и использутся MS SQL) и на основе этих соответсвий просизвести загрузку непосредственно в конфигурацию бухгалтерии создавая там необходимые документы и проводки. Все действия производились на стороне WIN-машины. Обработка в виде локального файла, MS SQL локальная, файлы обмена локальные, обработка запускается в среде 1С предприятие через Файл — Открыть. В настройках обработки указывается какая СУБД используется (MS SQL, Access, etc) и путь к папке обмена. нажимается кнопка «Обновить» и должен появится список доступных файлов обмена из этой папки. раньше всё работало, сейчас список пуст. сообщения никакие не выводились. после долгого разбирательства разраб дописал обработку что бы она выводила диагностическое сообщение для облегчения поиска ошибки. Таким образом удалось выяснить что нет доступа к папке обмена. В принципе он мог написать что угодно, даже «Весь мир рухнул, готовимся к земле». поэтому к собщениям «Нет доступа» отношусь скептически, задача проверить так оно на самом деле или это простая отмазка т.к. рушить всю инфраструктуру из-за небольшой обработки не хотелось бы.
к локальному? C:\Выгрузка из ТК, сетевому подключенному диску N:\Выгрузка, к сетевому ресурсу на сервере 1С \\192.168.0.3\share
раньше работал 1 вариант, сейчас не работает ни один
Да он не может нормально описать как у него всё работает, для чего и что он хочет сделать.
Может сумбурно, но описал, учитывая что я к этой обработке отношения вообще никакого не имею, это даже не наше ТЗ, через 33 . делалось.
В M$ SQL главный пользователь sa. Создай пользователя admin.
Смонтируй как сетевой диск средствами оси (а не указывай в настройках). По крайней мере вменяемое сообщение об ошибке получишь.
разраб говорит что на пользователе настройках SQL вообще не надо зацикливаться, главное сейчас прочитать список доступных файлов обмена
Из настроек только путь к каталогу. На строку подключения пока не обращайте внимания. Строка подключения используется для подключения к SQL, в процессе загрузки, когда происходит получение guid объекта, обработка ищет ссылку на объект. До этого пока дело не доходит, поскольку не доступен сам каталог, в котором лежать файлы обмена.
Подключил как сетевой диск общедоступную директорию с полными правами для всех которую создал на сервере.
Остался наверное единственный вариант это монтирование SMB WIN-ресурса на сервере 1С как локального каталога. вот только подзабыл как это делать.
Ужас. Найди кого-нибудь, кто видит поделие фирмы 1С не впервые.
в чем именно ужас? разработчик обработки наверное видит не в первые поделие 1С, но разводит руками, админы моей вышестоящей организации тоже разводят руками и посылают к разработчику. Пришел сюда в надежде на совет.
создал на сервере 1С папку 1c_obmen примонтировал туда win шару с файлами обмена, на Linux-сервере в 1С запустил обработку, в настройках указал путь для примонтированного SMB ресурса, файл обмена появился.
что сделать на вин машине что бы получить аналогичный результат? или на винфак идти (не хотелось бы)?
Мда, вы понимаете что это опять сумбурное описание.
Исходя вотиз этого:
создал на сервере 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, если я неправильно что-то понял, то опишите как всё работает примерно в таком стиле, как я описал в примере, моё видение изложенной вами ситуации написано параграфом выше.
Журнал самба ведёт какой? в нем посмотри.
smbmount вроде монтирует.
Автор, запости в джоб форум и огласи, сколько ты готов потратить чтобы снять с себя ответственность за это поделие.
На 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 формат адреса. Как минимум мы читаем файлы данных. Скриншот
Загрузка почему-то не работает, должно открываться окно задания соответсвий объектов, чего не происходит, диагностические сообщения не выводятся. тут надо связываться с разработчиком, может он прояснит, или если есть идеи готов их выслушать.
В любом случае спасибо ЛОРу за наводку.
Автор, запости в джоб форум и огласи, сколько ты готов потратить чтобы снять с себя ответственность за это поделие.
понимаешь, запостить в Job никогда не поздно, да и варианты есть, тут уже спортивный интерес проснулся.
достаточно файлы загрузки поместить в локальный каталог на сервере 1С под управлением Linux, а на стороне клиента указать linux формат адреса
Я тебе прямым текстом это говорил, неужели было так сложно понять?
так хрень в том что адрес и на стороне lin-сервера и на стороне win-клиента должен быть одного вида, а согласись, на стороне win адрес типа /admin/1c выглядит странно и хорошо что адресная строка в обработке дает себя редактировать, без этого только «три точки» и стандартные win-адреса. как вааринт еще попросить разраба реализовать подержку с FTP ресурсов, в этом случае адрес будет выглядеть одинаково и штатно.
перечитал еще раз твой пост, да, ты был прав, но я зациклился на сетевом пути в win-клиенте и в этом была моя ошибка, смутило еще поведение разраба котрый упорно пытался подсунуть сетевые пути и колдовал с правами, всё оказалось просто и банально. теперь нужно решать с непосредственной загрузкой.
Источник