Имя: Пароль:
1C
1С v8
Проблема при обмене в распределенной базе.
0 KTO
 
28.10.11
09:25
Всем доброго времени суток. При приеме сообщения из центрального узла, свойство "ОбменДанными.Отправитель" пустое, но только для набора записей  регистра сведений, для остальных объектов оно передается правильно. Кто сталкивался с подобной проблемой? Заранее спасибо.
1 KTO
 
28.10.11
10:05
неужели никто не знает? Такая фигня у независимых регистров.
2 Diabolicum 1C
 
28.10.11
10:09
Если у тебя РИБ, то зачем тебе вообще это поле?
3 KTO
 
28.10.11
10:20
у меня регистрация изменений по своему сделана, и чтобы не регились изменения для отправителя нужно что бы это свойство было заполнено. так вот при обмене для всех объектов, скажем вот для справочников, это поле заполнено узлом отправителем, а для регистров сведений почему то нет и получается, что они как только прилетели то снова тут же регистрируются.
4 Diabolicum 1C
 
28.10.11
10:25
Ты как регистрацию изменений делал? Через подписку? Если да, и ты не хочешь чтобы изменения регистрировались при получении данных от главного ВСЕГДА, то используй просто Объект.ОбменДанными.Загрузка.
5 Diabolicum 1C
 
28.10.11
10:28
И вообще, на поля Отправитель и Получатель лучше не ориентироваться. Частенько, после очередного релиза платформы, в этих полях вообще не пойми что находится.
6 Diabolicum 1C
 
28.10.11
10:31
Хотя, сколько уровней иерархии в твоей РИБ?
7 KTO
 
28.10.11
10:39
получается такая шутка, есть центральная база и несколько филиалов, это скажем так один круг  + есть еще база , еще более главная) и вот в этой главной базе заводиться номенклатура новая и нужно чтобы эти элементы залетели в центральную и разлетелись потом еще по филиалам. вот. и я сделал регистрация по отправителю все работает на ура) но блин набор записей регистра сведений не передает Отправителя). У 1С не знаешь откуда ждать удара)
8 KTO
 
28.10.11
10:39
"я сделал регистрацию" )
9 Diabolicum 1C
 
28.10.11
10:46
Мдаааа... 3 уровня - это засада. Тут действительно без Отправителя не обойтись.
Ты в какой момент это свойство проверяешь: при чтении пакета обмена (обработчик "ПриПолученииДанныхОтГлавногоУзла") или через подписку на событие регистра сведений ("ПередЗаписью")?
10 KTO
 
28.10.11
11:03
через подписку.
11 KTO
 
28.10.11
11:05
сижу вот думаю как извратиться)
12 KTO
 
28.10.11
11:06
я просто почему на форуме спросил, думал может с регистрами както по особенному надо работать.
13 Diabolicum 1C
 
28.10.11
11:12
Нет. Для них никаких специальных методов не требуется. Для примера кусочек обработчика подписки перед записью регистров сведений который работает у меня:

   Если Источник.ОбменДанными.Загрузка Тогда
       
       Пока НЕ МассивУзловДляРегистрации.Найти(Источник.ОбменДанными.Отправитель) = Неопределено Цикл
           МассивУзловДляРегистрации.Удалить(МассивУзловДляРегистрации.Найти(Источник.ОбменДанными.Отправитель));
       КонецЦикла;
       
       Если МассивУзловДляРегистрации.Количество() = 0 Тогда
           Возврат;
       КонецЕсли;        
           
   КонецЕсли;    
14 Diabolicum 1C
 
28.10.11
11:15
Особо отмечу - работает на ять. Версия платформы 8.2.13.202
15 KTO
 
28.10.11
11:16
странно, вот у меня это свойство - "Источник.ОбменДанными.Отправитель" - неопределено. А какая версия платформы у тебя? у нас 8.1.12.101
16 KTO
 
28.10.11
11:16
а ну вот
17 KTO
 
28.10.11
11:24
видимо проблема в платформе, думаю ветку можно закрывать) придется выдумать какое-то очередное извращение. всем спасибо за участие.
18 Diabolicum 1C
 
28.10.11
11:33
(17) Переходи с нее. Сейчас уже актуальна 8.1.15.14. Ну это если не хочешь на 8.2 перейти. С 8.1.12.101 сами намучились. Там какие-то глюки с сервером. То регламенты не запускаются, то память утекает, то еще что-нибудь. Это была самая нестабильная версия 8.1 с которой мне довелось поработать.
19 KTO
 
28.10.11
11:48
вот мне повезло) ясно в общем еще раз спасибо.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший