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


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

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

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

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

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

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

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

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

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

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

2. Проверьте происходит ли вообще запуск регламентного задания, что в журнале пишет задание. добавьте вывод в журнал отладочных сообщений.
14. 88wau24ru 14 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 152 01.12.16 07:43 Сейчас в теме +5 $m
Вручную обмен выполняется на клиенте, что видно по срабатыванию участка кода с директивой "#Если Клиент". Автоматический срабатывает на сервере. Соответственно, пользователь, под которым крутится серверный процесс 1С должен эти пути видеть.

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

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

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

Спасибо всем кто откликнулся.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб. до 150 000 руб.
Полный день