Можно ли использовать "ОбменДанными.Загрузка" в базе подключенной через ОЛЕ ?

1. pentanom 25 04.12.17 16:26 Сейчас в теме
Хочу выгрузить ПП входящие из БП 3.0 в УТ 10.3 обработкой, которая запускается из БП 3.0. В конфигурацию УТ 10.3 внесено много изменений, и там есть некоторые проверки, на которых вываливаются ошибки. Редактировать конфигурацию рабочей базы УТ возможности нет. Хотел написать так:
ППВ.ОбменДанными.Загрузка=Истина;
ППВ.Записать();
но это не проходит. Почему бы ?
Если конфигурации УТ убрать проверку, то работает и без "ОбменДанными.Загрузка"
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Fe9_min 50 04.12.17 16:42 Сейчас в теме
(1)
Если конфигурации УТ убрать проверку, то работает и без "ОбменДанными.Загрузка"


Ну тут бы вам каждый второй уже посоветовал как обойти проверку или что-то иное, но никому не известна эта легендарная "noname-проверка"...
Что за проверка?
4. pentanom 25 04.12.17 16:57 Сейчас в теме
(2) В справке написано:
ПараметрыОбменаДанными (DataExchangeParameters)

Загрузка (Load)

Использование:
Чтение и запись.

Описание:
Тип: Булево.
Если значение данного свойства Истина, то при выполнении записи или удаления данных будет производиться минимум проверок, так как при этом делается предположение, что производится запись данных, полученных через механизмы обмена данными, и эти данные корректны.


В процедуре ПередЗаписью модуля документа ППВ (УТ 10) написано:
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

	мУдалятьДвижения = НЕ ЭтоНовый();

	Если ОбменДанными.Загрузка  Тогда
		Возврат;
	КонецЕсли;

	СтруктураДействий = Новый Структура("УстановитьДоговор");
	УправлениеДенежнымиСредствами.ВыполнитьДействияПередЗаписьюПлатежногоДокумента(ЭтотОбъект, СтруктураДействий, Отказ, РежимЗаписи, РежимПроведения);

КонецПроцедуры

Показать
Вроде бы должны быть обойдены все проверки. А что еще проверяется я не знаю. У меня нет контакта с разработчиком конфигурации УТ.
6. Fe9_min 50 04.12.17 17:00 Сейчас в теме
(4)
1) УТ - не типовая?
2) Без ППВ.ОбменДанными.Загрузка=Истина; - не загружается? тоже ошибку пишет? Какую?
8. pentanom 25 04.12.17 17:10 Сейчас в теме
(6)В конфигурации УТ есть такой кусок:
#Если Клиент Тогда

Процедура РедактироватьДополнительныеПраваПользователей() Экспорт

	РегистрыСведений.ЗначенияДополнительныхПравПользователя.ПолучитьФорму("ФормаРедактирования").Открыть();

КонецПроцедуры

Функция ОбъектИсключенИзПроверкиПравДоступаПоПериоду(Объект) Экспорт
	//разработчик конфигурации УТ
	ИсключенияИзПроверки = Новый Массив;	
	ИсключенияИзПроверки.Добавить(Тип("ДокументОбъект.АктСверкиВзаиморасчетов"));
	
	Если ИсключенияИзПроверки.Найти(ТипЗНЧ(Объект)) = Неопределено Тогда
		Возврат Ложь;
	Иначе
		Возврат Истина;
	КонецЕсли;
	//разработчик конфигурации УТ
КонецФункции	
	

#КонецЕсли
Показать
Когда я убираю #Если Клиент и #КонецЕсли, все нормально работает. Но еще раз повторяю, что у меня нет возможности связаться в разработчиком конфигурации УТ, и я не знаю зачем он так написал. Мне нужно как-то не изменяя конфигурацию обойти это место.
3. Fe9_min 50 04.12.17 16:48 Сейчас в теме
(1) и потом, зачем запускать обмен "олё" из базы источника???
Не было бы вопросов, я думаю, если бы вы запускали обмен из базы приёмника.

Все мои обмены именно так и настроены, на регламенте гоняют - ещё не было никаких ошибок, но у меня УТ 11 и ERP 2.2.
7. pentanom 25 04.12.17 17:01 Сейчас в теме
(3) Бухгалтерии нет возможности работать в УТ, а менеджерам - в БП. А надо все это бухгалтерии. Ну вот такой в фирме порядок :(
Все мои обмены именно так и настроены
и у меня в других фирмах так настроено.
5. DJDUH 17 04.12.17 16:59 Сейчас в теме
(1) полный текст такой:

ППВ.ОбменДанными.Загрузка=Истина;
ППВ.Записать();


Или

// Где базаOLE = поключение по олешке
базаOLE.ППВ.ОбменДанными.Загрузка=Истина;
базаOLE.ППВ.Записать();
9. pentanom 25 04.12.17 17:14 Сейчас в теме
(5) Вот так:
	ПлПрВ=СоединениеБД.Документы.ПлатежноеПоручениеВходящее;
	
	Для Б=0 ПО СписокДокументов.Количество()-1 Цикл
		Выборка=СписокДокументов.Получить(Б).Значение;
		
		НайденныйППВ=ПлПрВ.НайтиПоНомеру(Выборка.Номер,Выборка.Дата);
	    Если НайденныйППВ=ПлПрВ.ПустаяСсылка() Тогда
	    	ППВ = ПлПрВ.СоздатьДокумент();
	    	ППВ.Номер = Выборка.Номер;
	    	ППВ.Дата = Выборка.Дата;
			ППВ.ОбменДанными.Загрузка=Истина;
	        ППВ.Записать();
	    Иначе
	    	ППВ=НайденныйППВ.ПолучитьОбъект();
	    КонецЕсли;
Показать

У меня СоединениеБД=базаОЛЕ.
10. pentanom 25 04.12.17 17:38 Сейчас в теме
(1) Похоже, что для COMОбъект'а
ОбменДанными.Загрузка=Истина;
эта установка игнорируется.
11. Fe9_min 50 04.12.17 17:47 Сейчас в теме
Вот какую инфу нашёл на сторонем сайте:
...Например, в режиме ВнешнееСоединение (или COM-соединение) недоступен тип "ТабличныйДокумент", поэтому весь исходный код в модулях объектов и общих модулях с галкой "ВнешнееСоединение" должны быть исключен с помощью директивы #ЕСЛИ КЛИЕНТ ТОГДА.

Модули форм можно не менять, поскольку самих форм (со своими модулями) в режиме внешнего соединения нет. Общие модули без галки ВнешнееСоединение тоже можно не трогать, потому что их тоже нет. Модуль приложения заменяется на модуль внешнего соединения.

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

Новый релиз платформы (с 10) позволяет проверить конфигурацию на синтаксические ошибки в этих режимах.


Т.е., как я понял, у тебя не выйдет обойти COM-соединением эту проверку, ведь она именно для этих целей и написана. Видимо писатель, который творил в УТ, позаботился о таких как ты)))
pentanom; +1 Ответить
12. pentanom 25 04.12.17 18:14 Сейчас в теме
(11)
писатель
Писатель еще тот :(
Оставьте свое сообщение

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