Обмены данными

1. wau8824ru 22 29.11.16 15:52 Сейчас в теме
Клиент-серверный вариант
Сервер: 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С:Предприятия по настройке автоматического обмена """ + Строка(НастройкаОбменаДанными) + """ " + ТекущаяДата() + Символы.ПС);
			КонецЕсли;
		#КонецЕсли
			
	Иначе
			
		ВыполнитьОбменПоНастройкеАвтоматическогоОбмена(НастройкаОбменаДанными, РучнойЗапускОбменов, 
			ОбработкаАвтообменаНаКлиенте, СоответствиеТекстовЭлектронныхПисем, ОбменПриВходеВПрограмму);
		
	КонецЕсли;			
		
КонецПроцедуры
Показать


ошибок ни каких не выводится, через КонсольЗаданий тоже пишет что обмен прошёл успешно, ошибок ни каких нет.

Как запустить обмены?
support; +1
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
13. wau8824ru 22 19.12.16 09:41 Сейчас в теме
пункт 2.2 (Клиент-серверный вариант Руководство администратора)
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"

Спасибо всем кто откликнулся.
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. корум 287 29.11.16 17:24 Сейчас в теме
(1)
ВыполнитьОбменПоНастройкеАвтоматическогоОбмена(НастройкаОбменаДанными, РучнойЗапускОбменов, ОбработкаАвтообменаНаКлиенте, СоответствиеТекстовЭлектронныхПисем, ОбменПриВходеВПрограмму);

Смотри, что творится в этой процедуре, и где валится без объявления войны.
+
6. wau8824ru 22 30.11.16 13:28 Сейчас в теме
(2) отладчиком всё проходит, ошибок не выдаёт, но и обмен не проходит!
+
4. dmt 66 30.11.16 11:54 Сейчас в теме +5 $m
(1) Надо все же проверить доступность файлов для 1С сервера.
Спросить на сервере у функции, а есть ли каталог.

Функция ПроверитьНаличиеКаталога(Знач ИмяКаталога, Знач ПроверятьЧтоНайденныйФайлЭтоКаталог = Ложь) Экспорт
	
	// ищем нужный нам каталог, если его нет - то пытаемся создать
	Если ПустаяСтрока(ИмяКаталога) Тогда 
		Возврат Ложь;
	КонецЕсли;
	
	ВыбФайл = Новый Файл(ИмяКаталога);
	Если Не ВыбФайл.Существует() Тогда
		Возврат Ложь;
	КонецЕсли;
	
	Если ПроверятьЧтоНайденныйФайлЭтоКаталог Тогда
		// проверка что это точно каталог
		Возврат ВыбФайл.ЭтоКаталог();
	Иначе
		// если без разницы каталог это или нет
		Возврат Истина;
    КонецЕсли;
	
КонецФункции
Показать
+
3. JohnGalt 57 30.11.16 11:15 Сейчас в теме
Нужно увеличить номер отправленного и принятого сообщения, посмотреть все ли, что нужно, выгружено, затем пробовать загружать.
+
7. wau8824ru 22 30.11.16 14:43 Сейчас в теме
(3)
В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят

В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят
+
8. корум 287 30.11.16 16:01 Сейчас в теме
(7) Все врут! (с)
1с тоже.

проверь ещё раз отладчиком, что творится. И какие подписки при этом срабатывают.
А то может там в "№тихом режиме" срабатывает Отказ=Истина, а ты и не видишь.
+
5. wau8824ru 22 30.11.16 13:26 Сейчас в теме
В ручном режиме без галочки "ВыполнятьДействияПодПолнымиПравами" обмены работают, а вот с галочкой пишут что все работает, но обмены не праходят
+
9. GeRon 01.12.16 05:36 Сейчас в теме +5 $m
обработка обмена написана так, что под полными правами выводит минимум сообщений
если у вас полные права или пользователь регламентного задания имеет полные права то смысла этой "галки" нет

если обмены работают в ручном режиме, а в автомате нет:

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

Залогинтесь на сервере с сервером 1с под учеткой самого сервера 1с (во написал :) ), и попробуйте создать файл в папке обмена

2. Проверьте происходит ли вообще запуск регламентного задания, что в журнале пишет задание. добавьте вывод в журнал отладочных сообщений.
+
14. wau8824ru 22 19.12.16 09:54 Сейчас в теме
(9)
енести каталог обмена на сервер где работает сам сервер 1с, проблемы с сетевым доступом уйдут

1.Путь действительно был указан сетевой, пользователь usr1cv8 входит в группу Domain admins, и имеет доступ к сетевому каталогу
Про перенос практически верно написали, за исключением того, что linux не понимает samba каталог если даже samba установлена на самом этом сервере.
2. Запуск регламентных заданий происходил, в журнале писалось что всё выполнено, но при этом не изменялось время "Загрузка" "Выгрузка" в форме "Настройки обменов данными"
+
16. GeRon 20.12.16 10:34 Сейчас в теме
(14)странно, тогда в пути попробуйте указать префикс "smb:", это даст линуксу команду что путь к самбе ну и путь в формате линукс, можно для универсальности поправить "слеши" в момент когда проверяется файл, т.е. строка выглядеть будет примерно так: "smb://server/shara"

Чтобы проверить работу пути в настройках обмена поставьте "писать лог в файл", путь укажите к серверу с самбой
+
10. igel9780 171 01.12.16 07:43 Сейчас в теме +5 $m
Вручную обмен выполняется на клиенте, что видно по срабатыванию участка кода с директивой "#Если Клиент". Автоматический срабатывает на сервере. Соответственно, пользователь, под которым крутится серверный процесс 1С должен эти пути видеть.

Просто зайдите под этим пользователем в консоль и посмотрите, можете ли вы достучаться до указанных вами путей. Проверьте можете ли писать туда и перезаписывать.
+
11. HitGroove 49 08.12.16 17:32 Сейчас в теме +5 $m
1. Установите обмен между базами через файл.
2. Проверьте доступность каталогов для обмена, от имени пользователя под которым стартует демон srv1cv83 или для пущей уверенности, нарисуйте обработку которая создаст файл в каталоге обмена (но обязательно с директивой компиляции на сервере (для простоты, добавьте общий модуль с исполнением на сервере и вызовите его из обработки)), чтобы определиться может ли сервер 1С писать в этот каталог или нет.
3. Если все хорошо с записью в каталог, то ставим на обменах галки выполнять "Выполнять обмен данными под полными правами", настраиваем расписание через сколько стартовать.

Учитывая что фоновое задание в клиент-серверном варианте стартует от имени пользователя которое указывается в РегламентноеЗадание.ИмяПользователя, то в настройках обмена указать пользователя с правами достаточными для обмена, либо "Выполнять обмен данными под полными правами", либо в процедурах обмена дописать в начале УстановитьПривилегированныйРежим(Истина). Но чувствую что проблема кроется в доступности каталога....
+
15. wau8824ru 22 19.12.16 10:00 Сейчас в теме
(11)
либо в процедурах обмена дописать в начале УстановитьПривилегированныйРежим(Истина). Но чувствую что проблема кроется в доступности каталога....

Чутьё вас не подвело! 8)
+
12. ture 606 08.12.16 18:02 Сейчас в теме
Ну ты регламенты запусти.
+
13. wau8824ru 22 19.12.16 09:41 Сейчас в теме
пункт 2.2 (Клиент-серверный вариант Руководство администратора)
В linux рабочий процесс кластера серверов "1с:Предприятия не может взаимодействовать с СОМ-объектами. Допускается компиляци серверных модулей, осуществляющих работу с СОМ-объектами, однако при попытке выполнения такого модуля будет выдано сообщение об ошибке"
Так как COM-объект не работает, то и отправление писем с ошибками, по обменам, не отправляются.
Ошибки видно только в "Журнал регистрации", если они регистрируются "Конфигуратор - Администрирование - Настройка журнала регистрации"
Ошибка была в том что сервер не видел шары на samba по пути "\\SRV1C\base1c\tmp\exchange"
нужно указывать путь в формате "\home\share\base1c\tmp\exchange\"

Спасибо всем кто откликнулся.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот