Имя: Пароль:
1C
1С v8
1С Бухгалтерия предприятия. Обмен по Организации РБП
,
0 YFedor
 
21.02.12
11:42
Имеем 1С Бухгалтерия предприятия 2.0 РИБ на основе плпна обмена ПоОрганизации.

Гланый узел:

После загрузки данных из подчиненных узлов находим, иногда, что загрузились "УдаленияОбъекта" для Справочника РасходыБудущихПериодов. И эти удаления зарегистрированы для обмена для всех подчиненных узлов.
Получаем, естественно, "битые" ссылки в документах, где используются эти элементы РБП.

При этом:
1) В подчиненном узле, из которого загружали, эти объекты есть.
2) В файле обмена из узла нет "ObjectDeletion"

Расскажите, плиз, в чем причина ошибки и как лечить?
1 YFedor
 
21.02.12
11:55
^
2 YFedor
 
21.02.12
12:11
^
^
3 YFedor
 
21.02.12
12:38
^
^
^
4 YFedor
 
21.02.12
12:59
^
^
^
^
5 YFedor
 
21.02.12
13:56
^
^
^
^
^
6 Aleksey
 
21.02.12
13:59
Сочуствую, смирись. Или стукни в аську, напишу где поправить код
7 Aleksey
 
21.02.12
14:00
8 YFedor
 
21.02.12
14:05
(6) Да немного другая ситуация. Этот элемент в центре удаляется
9 YFedor
 
21.02.12
14:05
+ То что там в (3) указано сделал ...
10 Aleksey
 
21.02.12
14:06
Есть РС РасчетСписанияРБП, который заполняется при проведении закрытия месяца, т.е. когда идет списание РБП

Далее при выгрузки изменений анализируется этот РС, и если там нет записи по организации, то посылается туда признак удаления РБП.
11 Aleksey
 
21.02.12
14:06
Тогда нужно подробности кто и где что меняет
12 YFedor
 
21.02.12
14:07
(10, 11) Я же пишу в (0), что в файле выгрузки из почки нет удаления объекта, но после загрузки в центре из этого файла смотрим в центре, а там зарегистрированы для почек удаления объекта. И битые ссылки в центре ...
13 Aleksey
 
21.02.12
14:10
(12) Все правильно. Если в центре записать РБП (зайти и поменять что-то к примеру). Будет как раз это
14 Aleksey
 
21.02.12
14:12
В общих модулях ищи ПроцедурыОбменаДаннымиПоОрганизации

Там есть процедура ДополнитьМассивУзловДляВыгрузкиСправочника

Там в конце ищи выгрузку РБП и ремь ее


//ИначеЕсли ТипЭлемента = Тип("СправочникОбъект.РасходыБудущихПериодов")
//    ИЛИ ТипЭлемента = Тип("СправочникСсылка.РасходыБудущихПериодов") Тогда    
//    
//    СсылкаНаЭлемент = ОпределитьПоЭлементуЭтоГруппаИСсылку(Элемент, "Справочники", ТипЭлемента, Истина, ЭтоГруппа);
//    
//    Если ЭтоГруппа Тогда
//        
//        // все узлы
//        ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи);
//        
//    Иначе
//    
//        ДополнитьМассивУзламиПоРегиструИПараметру("РасчетСписанияРБП", "Статья", СсылкаНаЭлемент, МассивУзловДляПередачи,,СоответствиеУзловИОрганизаций);
//        
//    КонецЕсли;
15 Aleksey
 
21.02.12
14:13
Из минусов. Справочник РБП будет общий для всех

Из плюсов, не будет удалятся
16 YFedor
 
21.02.12
14:18
(14), (15) Я не заремливал всю часть про РБП, просто сделал вот так:

ИначеЕсли ТипЭлемента = Тип("СправочникОбъект.РасходыБудущихПериодов")
       ИЛИ ТипЭлемента = Тип("СправочникСсылка.РасходыБудущихПериодов") Тогда    
       
       СсылкаНаЭлемент = ОпределитьПоЭлементуЭтоГруппаИСсылку(Элемент, "Справочники", ТипЭлемента, Истина, ЭтоГруппа);
       
       //{© YF начало изменений 28.03.2011
       //При старом методе возникала ситуация, когда выгруженный из периферии в центр элемент меняли в центре,
       //после этого в периферию выгружался признак удаления элемента и, следовательно, в периферийной базе элемент удалялся,
       //оставляя битые ссылки. После вторичного обмена с центром элемент удалялся и в центре.
       //  Для недопущения этого было принято решение выгружать все элементы ...
       //
       // Было
       //Если ЭтоГруппа Тогда
       //    
       //    // все узлы
       //    ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи);
       //    
       //Иначе
       //
       //    ДополнитьМассивУзламиПоРегиструИПараметру("РасчетСписанияРБП", "Статья", СсылкаНаЭлемент, МассивУзловДляПередачи,,СоответствиеУзловИОрганизаций);
       //    
       //КонецЕсли;
       //Стало
       ОбеспечитьВыгрузкуОбъектаДляВсехУзлов(ВыгружатьДляВсехУзлов, ВозвращатьМассивВсехУзлов, МассивУзловДляПередачи);
       //}© YF окончание изменений 28.03.2011
               
   Иначе

не помогает, плюс не могу найти где вызывается эта процедура именно для справочника РБП
17 Aleksey
 
21.02.12
14:22
(16) Подписка на событие ПередЗаписьюСправочникаДляОбменаПоОрганизации
18 YFedor
 
21.02.12
14:23
(17) В ней нет справочника РБП в Источниках
19 YFedor
 
28.02.12
11:39
Продолжаем разговор
20 YFedor
 
28.02.12
15:45
^
21 YFedor
 
28.02.12
16:48
^
^
22 YFedor
 
28.02.12
18:06
^
^
^
23 YFedor
 
29.02.12
09:39
^
24 YFedor
 
16.03.12
15:49
Продолжаем разговор
25 YFedor
 
16.03.12
16:23
^
26 Бубр
 
19.03.12
03:41
(0) поборол задачку ?
27 YFedor
 
19.03.12
10:17
(26) Нет
28 YFedor
 
19.03.12
10:19
+
Вопрос тогда такой:
Решил сделать подписку на событие перед удалением справочника, в которой просто ставлю отказ = Истина.

Объект не удаляется, но на этом останавливается загрузка с ошибкой "не удалось удалить элемент такой-то"

Как избежать этой ошибки?
29 YFedor
 
19.03.12
10:49
^
30 YFedor
 
19.03.12
11:29
^
^
31 YFedor
 
19.03.12
12:47
^
^
^
32 YFedor
 
19.03.12
14:30
^
^
^
^
33 Бубр
 
19.03.12
16:06
(28) а закрыть редактирование в Главном узле не прокатывает ?
34 YFedor
 
19.03.12
22:07
(33) Редактирование чего закрыть?
35 hhhh
 
19.03.12
22:31
РИБ по организациям так устроена, что это обычное явление. И номенклатуру можно так удалить и контрагента и физических лиц: у нас был случай, пришла новая сотрудница В один из периферийных узлов. Посмотрела в базу и ахнула: сколько лишних физических лиц. И номенклатура какая-то левая. Ну не поленилась, села и всё "лишнее" удалила под ноль.

Поэтому это твое РБП - это такая мелочевка, что глупо тратить на нее свое время. Лучше займись чем-нибудь полезным.

А для справочников просто выпустить инструкцию: что номенклатура общая, контрагенты общие, чтобы никто ничего лишнего не удалял.
36 pav007
 
19.03.12
22:40
У меня тоже обмен по организации. Филиалы часто грохали чужие элементы, после этого я настроил автообмен с удалением истории. Порядок такой выгружаю из ЦБ автообмен с релизом получаю ответные автообмены гружу после этого чищу всю историю выкладываю им - в результате у меня к примеру 20 элементов с одним и тем же названием но это касается только Контрагентов, РБП, виды субконто и другая мелочь не влияющая на отчётность. База порядка 30 гигов, битых ссылок полно постепенно их грохаю.
37 YFedor
 
19.03.12
22:47
(35), (36)
Вы не поняли. Элементы никто вручную не удаляет, я же пишу об этом в (0)
38 CepeLLlka
 
19.03.12
23:00
(0) Привет.. а можешь подсказать..
Если я в ЗУПе хочу настроить тоже РИБ по организациям, то у меня тоже траблы будут, да? Отказаться от этого что-ли?
39 YFedor
 
19.03.12
23:01
(38) Зуп не юзал, но судя по тому как в БП 2.0, то траблы будут, правда может не существенные ...
40 Бубр
 
20.03.12
00:03
(33) элементов справочников, которые были заведены в периферии ведь удаляется только  при редактировании элемента в центре. или я еще какую то ситуацию  упустил?
41 YFedor
 
20.03.12
10:03
(40) При загрузке в центре удаляются элементы справочника, которые в центре до загрузки уже были.

Но эти элементы никто не удалял в периферии, там они тоже есть, в файле обмена, из которого загружаем в центре, нет ни одного "УдалениеОбъекта", т.о. удаление происходит в центре во время разбора данных загрузки. Замучался уже искать где именно ...
42 Бубр
 
21.03.12
17:25
(41) права на удаление объектов справочника есть ? наверняка грузишь под  полными правами.
попробуй убрать их.
43 YFedor
 
21.03.12
19:25
(42) тогда в ошибку вывалится типа как в (28)