![]() |
![]() |
![]() |
|
БП 2.0: место создания объектов РИБ | ☑ | ||
---|---|---|---|---|
0
Ksandr
16.02.11
✎
11:34
|
Ув. программисты, в БП 2.0 есть константа - сохранять место создания объектов РИБ. Скажите, а где на это место посмотреть можно?
|
|||
1
mosAdm
16.02.11
✎
12:36
|
Место создания объекта записывается в регистре сведений "Объекты информационных баз"
|
|||
2
Ksandr
16.02.11
✎
13:23
|
а справочники, на сколько я понял там не хранятся
|
|||
3
mosAdm
16.02.11
✎
13:55
|
Тип значения реквизита "Объект" - "ЛюбаяСсылка", значит и справочники тоже могут храниться в регистре
|
|||
4
Aleksey
16.02.11
✎
14:22
|
Процедура ЗарегистрироватьМестоСозданияОбъектаИнформационнойБазы(СсылкаНаОбъект, УзелОбмена = Неопределено)
НаборЗаписейРегистра = РегистрыСведений.ОбъектыИнформационныхБаз.СоздатьНаборЗаписей(); НаборЗаписейРегистра.Отбор.Объект.Установить(СсылкаНаОбъект); СтрокаНабора = НаборЗаписейРегистра.Добавить(); СтрокаНабора.Объект = СсылкаНаОбъект; СтрокаНабора.УзелОбмена = УзелОбмена; НаборЗаписейРегистра.Записать(); КонецПроцедуры |
|||
5
Aleksey
16.02.11
✎
14:24
|
(2), (3) Не совсем
// обработчик события при записи документа для регистрации места создания Процедура ПриЗаписиДокументаРегистрацияОбъектаИнформационнойБазыПриЗаписи(Источник, Отказ) Экспорт НужноРегистрироватьМестоСоздания = Ложь; Источник.ДополнительныеСвойства.Свойство("НужноРегистрироватьМестоСоздания", НужноРегистрироватьМестоСоздания); Если НужноРегистрироватьМестосоздания <> Истина Тогда Возврат; КонецЕсли; Если Источник.ОбменДанными.Загрузка = Истина И ЗначениеЗаполнено(Источник.ОбменДанными.Отправитель) Тогда // обмен с определенным узлом ЗарегистрироватьМестоСозданияОбъектаИнформационнойБазы(Источник.Ссылка, Источник.ОбменДанными.Отправитель); Иначе // объект создан в этой информационной базе ЗарегистрироватьМестоСозданияОбъектаИнформационнойБазы(Источник.Ссылка, Неопределено); КонецЕсли; КонецПроцедуры Т.е. обработчик событий для справочника нет, только для документов |
|||
6
zzerro
16.02.11
✎
14:49
|
А вообще зачем это все, т.е. для каких таких целей?
|
|||
7
Ksandr
16.02.11
✎
14:51
|
(4)(5) Спасибо.
Вероятно, чтобы регистр не тормозил, как ЖР так и сделали |
|||
8
Ksandr
16.02.11
✎
14:52
|
(6) А как можно определить, кто создал объект другим способом?
|
|||
9
Aleksey
16.02.11
✎
14:52
|
(6)
Обработка Обмен данными XML Функция ВыполнитьВыгрузку(НужноУдалитьПодключениеКИБПриемникуПослеВыгрузкиДанных = Истина, СтрокаСообщенияОбОшибке = "", СтрокаСообщенияОбОшибкеОтложенныеДвиженияДокумента = "", ПослеОшибкиОтложенногоПроведенияПрекратитьОперации = Ложь, КоличествоОшибокОтложенногоПроведенияДляПрекращенияОперации = 0) Экспорт .... НужноОграничиватьВыгрузкуПоПринадлежностиОбъектовКИнформационнымБазам = УзелДляОбмена.ИспользоватьИнформациюОМестеСозданияОбъектовПриВыгрузкеИЗагрузкеДанных; Если НужноОграничиватьВыгрузкуПоПринадлежностиОбъектовКИнформационнымБазам Тогда // определим есть ли хоть один объект который был создан в базе обмена и который выгружать не следует Запрос = Новый Запрос(); Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 1 | |ИЗ | РегистрСведений.ОбъектыИнформационныхБаз КАК ОбъектыИнформационныхБаз |ГДЕ | ОбъектыИнформационныхБаз.УзелОбмена = &Узел"; |
|||
10
Aleksey
16.02.11
✎
14:54
|
Вообщем из всей конфиги БП это регистр юзается только в этой обработки
|
|||
11
Aleksey
16.02.11
✎
14:55
|
В частности
Функция ОбъектСозданнВБазеПриемнике(Данные, ТекущаяСтрокаПравилаВыгрузки) Результат = Ложь; Если ТекущаяСтрокаПравилаВыгрузки.НеВыгружатьОбъектыСозданныеВБазеПриемнике = Истина Тогда // проверка наличия информации по объекту в регистре где хранится информация о местах создания объектов мЗапросИнформацииОМестеСозданияОбъекта.УстановитьПараметр("Объект", Данные.Ссылка); (запрос к этому регистру) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |