Имя: Пароль:
1C
 
Что такое авторегистрация
0 quazare
 
09.07.09
09:17
Народ подскажите.
Есть справочник "Номенклатура". Я создал ПланОбмена "ОбменНоменклатурой", в нем выбрал указанный справочник. Подскажите, что значит "Авторегистрация"?

Спасибо!
1 Нуф-Нуф
 
09.07.09
09:17
это значит что при любом изменении он будет регистрироваться в этом плане обмена
2 quazare
 
09.07.09
09:21
(1) в общем случае - "планобмена" - некое хранилище записей?
3 bvn13
 
09.07.09
09:26
(2) хранилище записей для выгрузки в другие базы...
4 bvn13
 
09.07.09
09:26
+(3) это если образно говорить
5 rs_trade
 
09.07.09
09:28
(2) Там храняться ссылки на измененные элементы, для дальнейшей выгрузки..
6 quazare
 
09.07.09
09:32
(4),(5) спасибо. а регистрация изменений происходит автоматически по списку (выбранному в плане обмена). Допустим, если я автоматом добавлю элемент в справочник номенклатура, то это добавление "зарегистрируется" в плане обмена. А как посмотреть список зарегистрированных элементов?
7 DUDE
 
09.07.09
09:33
Если что создаваемые таблицы регистрации изменений потом можно просмотреть запросами.
8 DUDE
 
09.07.09
09:35
+ Есть станд. обработка "Регистрация изменений для обмена". Она идет, например, с конвертацией данных.
9 hhhh
 
09.07.09
09:37
(6) в плане обмена есть кнопка "Монитор" или "Зарегистрированные изменения" в виде телевизора.
10 quazare
 
09.07.09
09:41
(9) я просто сделал на платформе... внес 2-е записи в номенклатуру - как посмотреть изменения. План Обмена нахожу вот так:

ВыборкаУзлов = ПланыОбмена.ОбменНоменклатурой.Выбрать();
   
   Пока ВыборкаУзлов.Следующий() Цикл
       Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменНоменклатурой.ЭтотУзел() Тогда
   УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
   Сообщить("Нашел");
       КонецЕсли;
   КонецЦикла;
11 quazare
 
09.07.09
09:54
Дописал вот так, но пока непонятно как добраться до хранимых ссылок:

   Пока ВыборкаУзлов.Следующий() Цикл
       Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменНоменклатурой.ЭтотУзел() Тогда
           УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
           
           Запрос = Новый Запрос ("ВЫБРАТЬ
                          |    ОбменНоменклатурой.Наименование КАК Наименование,
                          |    ОбменНоменклатурой.НомерОтправленного КАК НомерОтправленного,
                          |    ОбменНоменклатурой.НомерПринятого КАК НомерПринятого,
                          |    ОбменНоменклатурой.Представление КАК Представление
                          |ИЗ
                          |    ПланОбмена.ОбменНоменклатурой КАК ОбменНоменклатурой");
                         
           Результат = Запрос.Выполнить().Выбрать();                          
           
           Результат.Следующий();
           
           Сообщить (Результат.Представление);
           
           
       КонецЕсли;
   КонецЦикла;
12 DUDE
 
09.07.09
09:57
(11) А что ты хочешь получить запросом? Если зарегистрированные изменения, то нужно что-то типа
"ВЫБРАТЬ
   НоменклатураИзменения.Ссылка,
   НоменклатураИзменения.Узел
ИЗ
   Справочник.Номенклатура.Изменения КАК НоменклатураИзменения".
Собственно это и есть таблица изменений спр. Номенклатура.
13 quazare
 
09.07.09
10:04
(12) че-то так ничего не работает :(
НоменклатураИзменения.Узел - ничего не выводит ...
14 rs_trade
 
09.07.09
10:07
Есть два способа выбрать изменения. Первый просто запросом, это для посмотреть. План обмена при этом не блокируется.

ВЫБРАТЬ
   Товар.Ссылка КАК Ссылка
ИЗ
   Справочник.Товар.Изменения КАК Товар
ГДЕ
   Товар.Узел = &Узел



Второй способ, выбрать изменения стандартными средствами. план обмена при этом блокируется


   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл(ПолучитьИмяВременногоФайла());
   
   ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
   ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена.Ссылка);
   Выборка = ПланыОбмена.ВыбратьИзменения(УзелОбмена.Ссылка, ЗаписьСообщения.НомерСообщения);

   Пока Выборка.Следующий() Цикл
       #Если Клиент Тогда
           ОбработкаПрерыванияПользователя();
       #КонецЕсли
       
       обОбъект = Выборка.Получить();
       
       Попытка
           ВыгрузитьОбъектСправочника(ИмяСправочника, обОбъект.Ссылка, спРеквизиты);
           ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, обОбъект);
           #Если Клиент Тогда
               Сообщить(обОбъект.Код+" успешно синхронизирован с узлом "+УзелОбмена.Наименование);
           #КонецЕсли
       Исключение
           ЗаписьЖурналаРегистрации("Обмен данными", ,УзелОбмена, обОбъект, ОписаниеОшибки(),);
       КонецПопытки;
   КонецЦикла;
   
   ЗаписьСообщения.ПрерватьЗапись();
15 DUDE
 
09.07.09
10:16
(13) Наверное не выводит тк нет других узлов, для которых бы регистрировались изменения.
В конце концов можно обратить внимание на обработку РегистрацияИзмененийДляОбмена81.epf, там и просмотреть изменения можно и добавить/удалить регистрацию.
16 quazare
 
09.07.09
11:42
(14) Делаю запросом - в чем косяк:

Пока ВыборкаУзлов.Следующий() Цикл
       Если ВыборкаУзлов.Ссылка = ПланыОбмена.ОбменНоменклатурой.ЭтотУзел() Тогда
           УзелОбъект = ВыборкаУзлов.ПолучитьОбъект();
           
           Запрос = Новый Запрос ("ВЫБРАТЬ
                          |    НоменклатураИзменения.Ссылка КАК Ссылка,
                          |    НоменклатураИзменения.Узел КАК Узел
                          |ИЗ
                          |    Справочник.Номенклатура.Изменения КАК НоменклатураИзменения
                          |ГДЕ
                          |    НоменклатураИзменения.Узел = &Узел");
                         
           Запрос.УстановитьПараметр("Узел",ПланыОбмена.ОбменНоменклатурой.НайтиПоНаименованию("ТестПланОбмена"));                          
           Результат = Запрос.Выполнить().Выбрать();                          
           
           Результат.Следующий();
           
           Сообщить (Результат.Узел);
           Сообщить (Результат.Ссылка);
           
       КонецЕсли;
   КонецЦикла;

На созданном экземпляре узла стоит точка...
17 rs_trade
 
09.07.09
15:08
(16) В консоли запросов выбирает записи?
18 quazare
 
10.07.09
10:03
(17) неа, чето не то делал.
подскажите а как определить в каком экземпляре узла идет обмен?
например,вот как у меня - есть узел обмена ОбменНоменклатурой и я создал 2 экземпляра - "ТестПланОбмена" и "ТестПланОбмена2"