Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Знатоки обмена, подскажите... (http://forums.kuban.ru/f1040/znatoki_obmena_podskazhite-2218873.html)

Антиквар 17.02.2012 15:58

Знатоки обмена, подскажите...
 
Есть нестандартная конфа на базе Розницы и нестандартная конфа на базе УТ.
Требуется периодическая выгрузка измененных данных из Розницы в УТ. Односторонняя!
Я сделал в Рознице в конфигураторе свой план обмена. В режиме предприятия в Рознице задал два узла: Розница - текущий узел, и второй узел: УТ.
Сделал в КД правила конвертации Розница -> УТ.
Запускаю в Рознице стандартную обработку "УниверсальныйОбменДаннымиXML", указываю мои правила конвертации. Обработка без проблем выгружает изменения нужных мне данных, причем хоть в файл, хоть напрямую в УТ (через COM).
Но мне нужно, чтобы пользователь не открывал никакие обработки и ничего там не настраивал, поэтому я иду в "Сервис - Настройка обмена данными". Для узла УТ выбираю мои правила конвертации. Пробую настройки выгрузки через файл, и напрямую через COM, но при нажатии кнопки "Выполнить обмен" вылезает ошибка. Раз интерактивно не работает, то нет смысла и автоматически настраивать.
А ошибка из-за того, что в модуле моего плана обмена нет процедуры "ОпределитьТипОтправкиДанных()". Ругается, что такой метод у моего узла не найден. Но откуда он там может быть, я ж свой обмен хочу настроить, а не стандартный, у меня в модуле плана обмена вообще пусто.
Я что-то не так делаю? Подскажите...

Антиквар 17.02.2012 16:00

Вставил в модуль своего плана обмена процедуру, на которую обработка ругается, оставил её пустой, выгрузка в файл сработала. Но прямой обмен через COM всё-равно не идет, уже другая ошибка: не находит в базе-приемнике моего плана обмена. Но зачем он там??? Регистрация изменений у меня только в Рознице. В УТ она должна лишь уходить, там не нужно никакого плана обмена...

DeiMos 18.02.2012 17:19

Пригласить специалиста - не предлагали ещё?

©Франчи - позор 1С!

Антиквар 19.02.2012 19:36

Я не франч. Спец я и сам не плохой, но пробелы есть, как и у всех. Или спецы на форумах ничего не спрашивают, сами всё должны знать 100%-но? :)
Обмен делал только один раз, но это был двусторонний обмен, причем распределенная ИБ. И обмены через выгрузку изменений в файл и пересылку этого файла по FTP. Там все просто. А тут врроде бы ещё проще, но меня в какие-то дебри заносит, наверняка 1С что-то более разумное предусмотрела.

qweqwe123123 19.02.2012 20:53

а как Розница узнаёт, что УТ получила выгруженные ранее данные?

Helen 1986 19.02.2012 21:29

а нафиг рознице знать, что привезли?
ей только цены нужны для продажи

инвентаризация - по данным УТ

Антиквар 19.02.2012 23:20

(5) Поскольку настроил правила обмена в КД, то хотел грузить напрямую в базу-приемник, через COM. А после успешной загрузки просто снимать регистрацию с измененных объектов. Кстати та же обработка "УниверсальныйОбменДаннымиXML" позволяет это сделать.
(6) Дак у меня конфигурации измененные. Обычная Розница из УТ стандартно всё и будет получать, а здесь просто на базе Розницы другая конфигурация, должны уходить в УТ объекты, которых нет в стандарте.

Антиквар 20.02.2012 09:11

up

Reaper 20.02.2012 09:25

(0) Экспортный метод ОпределитьТипОтправкиДанных() должен быть у любого плана обмена, который будет работать по технологии конвертации данных. Хотя бы пустой, но быть должен. Кроме того для успешного обмена я бы тебе посоветовал наваять в УТ свой план обмена с пустым составом, чтобы он выдавал для розницы квитанции о получении данных для автоматического снятия с регистрации.

Антиквар 20.02.2012 11:00

(9) Спасибо за совет! Без плана обмена в УТ обмен почему-то и не работает, так что наверное в самом деле создам, мало ли придется через файл выгружать, тогда подтверждение приема очень будет кстати.
Только вот непонятно, как источник (Розница) узнает, какой план обмена в приемнике (УТ) должен быть задействован. Или нужно в конфигураторе УТ создать план обмена с таким же именем, что и в Рознице?

Антиквар 21.02.2012 21:10

(9) Воспользовался Вашим советом, создал план обмена и в УТ. В итоге обмен через COM сработал, из Розницы изменившиеся данные загрузились в УТ. И подтверждение приходит, т.к. повторно объекты не выгружаются.
Но вот с обменом через файловый ресурс проблема:
Из Розницы выгрузил изменения в файл. В УТ пробую их загрузить, мне пишет:

ОбщийМодуль.ПроцедурыОбменаДанными(1753)**: Метод объекта не обнаружен (ЗагрузитьИзмененияДанныхДляУзла)

Ошибка в этой строке:
СтруктураНастроекОбменаДанными.РезультатЧтенияДанных = ЭтотУзелОбмена.ЗагрузитьИзмененияДанныхДляУзла(УзелОбмена, СтруктураНастроекОбменаДанными.КоличествоЭлементовВТранзакцииНаЗагрузкуДанных, ЧтениеXML);

Ну думаю, значит опять та же ситуация, в моем модуле плана обмена нет нужной процедуры. Хотел скопировать. Но! Этой процедуры нет вообще в конфигурации!!!
Причем смотрел и УТ, и Розницу, глобальным поиском. Эта процедура (ЗагрузитьИзмененияДанныхДляУзла) встречается только один раз, в этом месте, где идет её вызов. И больше нигде она не вызывается, и мало того, нигде не описывается.
Конфы УТ и Розницы доделанные, но ничего 100% не удалялось, и переделывались только справочники, добавлялись новые объекты.
И я бы понял, если бы только в УТ такое было, ну может релиз глючный, т.к. не свежие релизы у меня. Но и в Рознице точно также, эта процедура вызывается в одном месте, и больше нигде не встречается.
Не сталкивались?

Антиквар 22.02.2012 11:19

Вобщем всё у меня получилось. Reaper, спасибо за наводку!
Насчет функции "ЗагрузитьИзмененияДанныхДляУзла" (то же самое кстати и с функцией "ВыгрузитьИзмененияДанныхДляУзла") - видимо 1С её специально сделала без объявления, чтобы можно было написать свою процедуру чтения/записи файлов обмена, и при этом пользоваться стандартными настройками обмена. Я создал у себя эти процедуры, но запихал в них вызов стандартных процедур чтения/записи файла обмена и все заработало.

Reaper 22.02.2012 12:20

Наздоровье, обращайся.


Текущее время: 21:21. Часовой пояс GMT +3.