Клиент-серверный вариант
Сервер: debian8 + postgres(9.4.2-1.1C) + 1c(8.3.9.1850) на одном ПК
Базы: УТ 10.3.34.2(РИБ) + БП 2.0.65.44
Сервер 1с введён в домен под пользователем usr1cv8, папки через которые идут РИБ на этом же сервере под samba, которая тоже введена в домен под пользователем usersrv1c
до перехода на sql, в файловом варианте, обмены и автообмены работали, а именно РИБ(Файл-Файл) УТ-БП(COM), и если из пункта 2.2(Клиент-серверный вариант Руководство администратора) понятно что автообмен(регламентное задание) через СОМ невозможен
рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
теперь без галочки "Выполнять обмен данными под полными правами" обмены работают в ручном режиме, а с галочкой выводятся сообщение за 1сек
Начат обмен данными под полными правами на сервере 1С:Предприятия по настройке "УТ"Склад"УПР" 29.11.2016 19:24:07
Завершен обмен данными под полными правами на сервере 1С:Предприятия по настройке "УТ"Склад"УПР" 29.11.2016 19:24:07
Отладчиком проходил, запускается обмен процедурой
ошибок ни каких не выводится, через КонсольЗаданий тоже пишет что обмен прошёл успешно, ошибок ни каких нет.
Как запустить обмены?
Сервер: debian8 + postgres(9.4.2-1.1C) + 1c(8.3.9.1850) на одном ПК
Базы: УТ 10.3.34.2(РИБ) + БП 2.0.65.44
Сервер 1с введён в домен под пользователем usr1cv8, папки через которые идут РИБ на этом же сервере под samba, которая тоже введена в домен под пользователем usersrv1c
до перехода на sql, в файловом варианте, обмены и автообмены работали, а именно РИБ(Файл-Файл) УТ-БП(COM), и если из пункта 2.2(Клиент-серверный вариант Руководство администратора) понятно что автообмен(регламентное задание) через СОМ невозможен
рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
теперь без галочки "Выполнять обмен данными под полными правами" обмены работают в ручном режиме, а с галочкой выводятся сообщение за 1сек
Начат обмен данными под полными правами на сервере 1С:Предприятия по настройке "УТ"Склад"УПР" 29.11.2016 19:24:07
Завершен обмен данными под полными правами на сервере 1С:Предприятия по настройке "УТ"Склад"УПР" 29.11.2016 19:24:07
Отладчиком проходил, запускается обмен процедурой
ПроцедурыОбменаДанными.ВыполнитьОбменПоНастройкеАвтоматическогоВыполненияОбменаДанными(ЭлементыФормы.НастройкиВыполненияОбменаБП.ТекущиеДанные.Ссылка, ,глЗначениеПеременной("глОбработкаАвтоОбменДанными"));
Процедура ВыполнитьОбменПоНастройкеАвтоматическогоВыполненияОбменаДанными(НастройкаОбменаДанными, РучнойЗапускОбменов = Истина, ОбработкаАвтообменаНаКлиенте = Неопределено,
Знач СоответствиеТекстовЭлектронныхПисем = Неопределено, Знач ОбменПриВходеВПрограмму = Ложь) Экспорт
Если ТипЗнч(НастройкаОбменаДанными) <> Тип("СправочникСсылка.НастройкиВыполненияОбмена") Тогда
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(НастройкаОбменаДанными) Тогда
Возврат;
КонецЕсли;
// как выполнять обмен, под полными правами или нет
Если НастройкаОбменаДанными.ВыполнятьДействияПодПолнымиПравами Тогда
#Если Клиент Тогда
ИнформационнаяБазаФайловая = ОпределитьЭтаИнформационнаяБазаФайловая();
Если НЕ ИнформационнаяБазаФайловая Тогда
Сообщить("Начат обмен данными под полными правами на сервере 1С:Предприятия по настройке автоматического обмена """ + Строка(НастройкаОбменаДанными) + """ " + ТекущаяДата() + Символы.ПС);
КонецЕсли;
#КонецЕсли
ПроцедурыОбменаДаннымиПолныеПрава.ВыполнитьОбменДаннымиПоНастройкеАвтоматическогоОбменаПодПолн ымиПравамиНаСервере(НастройкаОбменаДанными, РучнойЗапускОбменов,
Неопределено, Неопределено, ОбменПриВходеВПрограмму);
#Если Клиент Тогда
Если НЕ ИнформационнаяБазаФайловая Тогда
Сообщить("Завершен обмен данными под полными правами на сервере 1С:Предприятия по настройке автоматического обмена """ + Строка(НастройкаОбменаДанными) + """ " + ТекущаяДата() + Символы.ПС);
КонецЕсли;
#КонецЕсли
Иначе
ВыполнитьОбменПоНастройкеАвтоматическогоОбмена(НастройкаОбменаДанными, РучнойЗапускОбменов,
ОбработкаАвтообменаНаКлиенте, СоответствиеТекстовЭлектронныхПисем, ОбменПриВходеВПрограмму);
КонецЕсли;
КонецПроцедуры
Показатьошибок ни каких не выводится, через КонсольЗаданий тоже пишет что обмен прошёл успешно, ошибок ни каких нет.
Как запустить обмены?
По теме из базы знаний
- Обмен данными между УТ 10.3 и Розницей 2.2 (правила обмена данными между "Управлением торговлей" ред. 10.3. и "Розницей" ред. 2.2)
- Пример обмена данными через веб-сервисы
- Правила обмена данными между КА 1.1 и БП 3.0
- Регистрация изменений для обмена данными запросом
- Ищем лучший способ для организации обмена данными мобильного приложения «Склад 15» с «1С: Предприятием»
Найденные решения
пункт 2.2 (Клиент-серверный вариант Руководство администратора)
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"
Спасибо всем кто откликнулся.
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"
Спасибо всем кто откликнулся.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Смотри, что творится в этой процедуре, и где валится без объявления войны.
ВыполнитьОбменПоНастройкеАвтоматическогоОбмена(НастройкаОбменаДанными, РучнойЗапускОбменов, ОбработкаАвтообменаНаКлиенте, СоответствиеТекстовЭлектронныхПисем, ОбменПриВходеВПрограмму);
Смотри, что творится в этой процедуре, и где валится без объявления войны.
(1) Надо все же проверить доступность файлов для 1С сервера.
Спросить на сервере у функции, а есть ли каталог.
Спросить на сервере у функции, а есть ли каталог.
Функция ПроверитьНаличиеКаталога(Знач ИмяКаталога, Знач ПроверятьЧтоНайденныйФайлЭтоКаталог = Ложь) Экспорт
// ищем нужный нам каталог, если его нет - то пытаемся создать
Если ПустаяСтрока(ИмяКаталога) Тогда
Возврат Ложь;
КонецЕсли;
ВыбФайл = Новый Файл(ИмяКаталога);
Если Не ВыбФайл.Существует() Тогда
Возврат Ложь;
КонецЕсли;
Если ПроверятьЧтоНайденныйФайлЭтоКаталог Тогда
// проверка что это точно каталог
Возврат ВыбФайл.ЭтоКаталог();
Иначе
// если без разницы каталог это или нет
Возврат Истина;
КонецЕсли;
КонецФункции
Показать
(3)
В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят
В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят
В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят
обработка обмена написана так, что под полными правами выводит минимум сообщений
если у вас полные права или пользователь регламентного задания имеет полные права то смысла этой "галки" нет
если обмены работают в ручном режиме, а в автомате нет:
1. смотрите права на файловую систему или путь к файлу обмена.
Очень часто указывают путь сетевой. При доменной организации сети пользователь, под которым работает сервер 1с, должен иметь доступ к сетевому каталогу
лучше перенести каталог обмена на сервер где работает сам сервер 1с, проблемы с сетевым доступом уйдут
Залогинтесь на сервере с сервером 1с под учеткой самого сервера 1с (во написал :) ), и попробуйте создать файл в папке обмена
2. Проверьте происходит ли вообще запуск регламентного задания, что в журнале пишет задание. добавьте вывод в журнал отладочных сообщений.
если у вас полные права или пользователь регламентного задания имеет полные права то смысла этой "галки" нет
если обмены работают в ручном режиме, а в автомате нет:
1. смотрите права на файловую систему или путь к файлу обмена.
Очень часто указывают путь сетевой. При доменной организации сети пользователь, под которым работает сервер 1с, должен иметь доступ к сетевому каталогу
лучше перенести каталог обмена на сервер где работает сам сервер 1с, проблемы с сетевым доступом уйдут
Залогинтесь на сервере с сервером 1с под учеткой самого сервера 1с (во написал :) ), и попробуйте создать файл в папке обмена
2. Проверьте происходит ли вообще запуск регламентного задания, что в журнале пишет задание. добавьте вывод в журнал отладочных сообщений.
(9)
1.Путь действительно был указан сетевой, пользователь usr1cv8 входит в группу Domain admins, и имеет доступ к сетевому каталогу
Про перенос практически верно написали, за исключением того, что linux не понимает samba каталог если даже samba установлена на самом этом сервере.
2. Запуск регламентных заданий происходил, в журнале писалось что всё выполнено, но при этом не изменялось время "Загрузка" "Выгрузка" в форме "Настройки обменов данными"
енести каталог обмена на сервер где работает сам сервер 1с, проблемы с сетевым доступом уйдут
1.Путь действительно был указан сетевой, пользователь usr1cv8 входит в группу Domain admins, и имеет доступ к сетевому каталогу
Про перенос практически верно написали, за исключением того, что linux не понимает samba каталог если даже samba установлена на самом этом сервере.
2. Запуск регламентных заданий происходил, в журнале писалось что всё выполнено, но при этом не изменялось время "Загрузка" "Выгрузка" в форме "Настройки обменов данными"
(14)странно, тогда в пути попробуйте указать префикс "smb:", это даст линуксу команду что путь к самбе ну и путь в формате линукс, можно для универсальности поправить "слеши" в момент когда проверяется файл, т.е. строка выглядеть будет примерно так: "smb://server/shara"
Чтобы проверить работу пути в настройках обмена поставьте "писать лог в файл", путь укажите к серверу с самбой
Чтобы проверить работу пути в настройках обмена поставьте "писать лог в файл", путь укажите к серверу с самбой
Вручную обмен выполняется на клиенте, что видно по срабатыванию участка кода с директивой "#Если Клиент". Автоматический срабатывает на сервере. Соответственно, пользователь, под которым крутится серверный процесс 1С должен эти пути видеть.
Просто зайдите под этим пользователем в консоль и посмотрите, можете ли вы достучаться до указанных вами путей. Проверьте можете ли писать туда и перезаписывать.
Просто зайдите под этим пользователем в консоль и посмотрите, можете ли вы достучаться до указанных вами путей. Проверьте можете ли писать туда и перезаписывать.
1. Установите обмен между базами через файл.
2. Проверьте доступность каталогов для обмена, от имени пользователя под которым стартует демон srv1cv83 или для пущей уверенности, нарисуйте обработку которая создаст файл в каталоге обмена (но обязательно с директивой компиляции на сервере (для простоты, добавьте общий модуль с исполнением на сервере и вызовите его из обработки)), чтобы определиться может ли сервер 1С писать в этот каталог или нет.
3. Если все хорошо с записью в каталог, то ставим на обменах галки выполнять "Выполнять обмен данными под полными правами", настраиваем расписание через сколько стартовать.
Учитывая что фоновое задание в клиент-серверном варианте стартует от имени пользователя которое указывается в РегламентноеЗадание.ИмяПользователя, то в настройках обмена указать пользователя с правами достаточными для обмена, либо "Выполнять обмен данными под полными правами", либо в процедурах обмена дописать в начале УстановитьПривилегированныйРежим(Истина). Но чувствую что проблема кроется в доступности каталога....
2. Проверьте доступность каталогов для обмена, от имени пользователя под которым стартует демон srv1cv83 или для пущей уверенности, нарисуйте обработку которая создаст файл в каталоге обмена (но обязательно с директивой компиляции на сервере (для простоты, добавьте общий модуль с исполнением на сервере и вызовите его из обработки)), чтобы определиться может ли сервер 1С писать в этот каталог или нет.
3. Если все хорошо с записью в каталог, то ставим на обменах галки выполнять "Выполнять обмен данными под полными правами", настраиваем расписание через сколько стартовать.
Учитывая что фоновое задание в клиент-серверном варианте стартует от имени пользователя которое указывается в РегламентноеЗадание.ИмяПользователя, то в настройках обмена указать пользователя с правами достаточными для обмена, либо "Выполнять обмен данными под полными правами", либо в процедурах обмена дописать в начале УстановитьПривилегированныйРежим(Истина). Но чувствую что проблема кроется в доступности каталога....
пункт 2.2 (Клиент-серверный вариант Руководство администратора)
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"
Спасибо всем кто откликнулся.
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"
Спасибо всем кто откликнулся.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот