Имя: Пароль:
1C
1С v8
Проверка "Различаются ли документы"
,
0 SergeyGr
 
12.10.15
12:55
Из ПЕРВОЙ базы во ВТОРУЮ через xml-файлы  переносятся документы.
Иногда это новые документы, иногда "старые" (отредактированные).

Во ВТОРОЙ базе документы тоже могут редактироваться.  В этом случае их перазагружать НЕЛЬЗЯ !


Вопрос:
Можно ли "стандартно" проверить, а был ли изменен во ВТОРОЙ базе документ ?   (Чтобы не перезагружать его).


Спасибо
1 jurassic
 
12.10.15
12:57
про это есть галка в ПКО
2 SergeyGr
 
12.10.15
12:57
Подскажите, где посмотреть, плз !
3 jurassic
 
12.10.15
12:58
(2) в КД
4 Бледно Золотистый
 
12.10.15
12:59
(1) Нет такой галки, не обманывай!
5 jurassic
 
12.10.15
13:00
(4) напугал, аж сходил проверил
6 SergeyGr
 
12.10.15
13:01
Плз, про "галку" подскажите
7 GreatOne
 
12.10.15
13:02
(5) фух, с моей тоже все в порядке!
8 jurassic
 
12.10.15
13:05
9 SergeyGr
 
12.10.15
13:05
Плз, про "галку" подскажите !!!
10 Бледно Золотистый
 
12.10.15
13:07
(8) И какую же галку ТС ставить в твоем скриншоте? Может еще раз вопрос в (0) прочтешь?
11 zalexey
 
12.10.15
13:09
(8) а если во второй базе док не меняли, а в первой поменяли? Эта галка не даст загрузить док, а надо.
12 SergeyGr
 
12.10.15
13:09
Запускается обработка во ВТОРОЙ базе.

ЧтениеXML.ОткрытьФайл(СокрЛП(Файл.ПолноеИмя));
ЧтениеXML.Прочитать();

  ЗагружаемыйОбъект=ПрочитатьXML(ЧтениеXML);



                

Это документ из ПЕРВОЙ базы, а как проверить, что документ во ВТОРОЙ базе не был изменен ?

Только "перебором" всех реквизитов или есть Хитрость ?
13 GreatOne
 
12.10.15
13:11
(11) в условии такого не было.


(12) по ходу да.
    Для каждого МТРеквизит Из Док1.Метаданные().Реквизиты Цикл
        Если Док1[МТРеквизит.Имя] <> Док2[МТРеквизит.Имя] Тогда
            Возврат Ложь;        
        КонецЕсли;    
    КонецЦикла;
    
    Для каждого МТТЧ Из Док1.Метаданные().ТабличныеЧасти Цикл
        Индекс = 0;
        Для каждого СтрокаТЧ Из Док1[МТТЧ.Имя] Цикл
            Если Док1[МТТЧ.Имя].Количество <> Док2[МТТЧ.Имя].Количество() Тогда
                Возврат Ложь;            
            КонецЕсли;
            Для каждого МТТЧРеквизит Из МТТЧ.Реквизиты Цикл
                Если СтрокаТЧ[МТТЧРеквизит.Имя] <>  Док2[МТТЧ.Имя][Индекс][МТТЧРеквизит.Имя] Тогда
                    Возврат Ложь;    
                КонецЕсли;                
            КонецЦикла;        
            Индекс = Индекс + 1;    
        КонецЦикла;    
    КонецЦикла;
    
    Возврат Истина;
14 jurassic
 
12.10.15
13:12
(10) (11) уговорили
15 Бледно Золотистый
 
12.10.15
13:13
(12) Не понял, а с чем его сравнивать то хочешь? Если приедет док. который был изменен и в источнике и в приемнике?
16 jurassic
 
12.10.15
13:14
можно посмотреть в сторону значениеВСтрокуВнутр
17 DrShad
 
12.10.15
13:17
(16) можно , но с чем сравнивать?
18 SergeyGr
 
12.10.15
13:26
(12) Пока нужно определить, что "документ-источник" отличается от "документ-приемник"
19 DrShad
 
12.10.15
13:29
(18) ну если он попал в обмен то уже не равны
20 SergeyGr
 
12.10.15
13:45
(18) Там сделано, что при ЛЮБОМ перепроведении документ создает xml-файл и, соответственно, попадает в "обмен".
21 DrShad
 
12.10.15
13:47
(20) а вот это уже неверно, в обмен нужно регистрировать по ПРО, а в них проверять необходимость регистрации
22 SergeyGr
 
12.10.15
13:51
(20) Согласен. Но имею, что имею   :-)


Большое всем спасибо за советы !!