![]() |
|
Вопрос по правилам регистрации объектов | ☑ | ||
---|---|---|---|---|
0
Paul_Nevada
23.05.14
✎
00:34
|
Доброй ночи - всем!
Пример: Нужно, что бы контрагент не регистрировался к отправке, в случае, если ранее – однажды, он был направлен к выгрузке – даже, если был изменен. Вопрос – как лучше это реализовать? Вот как я считаю: 1. Запрос к РС “СоответствияОбъектовИнформационныхБаз”; 2. Если не пустой – Отказ = Истина –> в обработчик ПРО Перед обработкой для этого справочника. |
|||
1
Paul_Nevada
23.05.14
✎
08:13
|
Кто что скажет?
|
|||
2
Paul_Nevada
23.05.14
✎
10:37
|
В которой таблице "оседает" навсегда информация о том, что такой-то объект однажды был выгружен?
|
|||
3
Paul_Nevada
23.05.14
✎
12:41
|
???
|
|||
4
Paul_Nevada
23.05.14
✎
12:41
|
Поверить сложно, что вот так вот)
|
|||
5
Поpyчик-4
23.05.14
✎
13:01
|
(0) В обработчкие правил регистрации проверять, если не новый то не регистрировать.
|
|||
6
Поpyчик-4
23.05.14
✎
13:05
|
(0) Вот так у меня сделано http://savepic.net/5558056.png
|
|||
7
Paul_Nevada
23.05.14
✎
13:31
|
хм... а вот как я сделал:
пишу в том же обработчике ПРО: Запрос = Новый Запрос("ВЫБРАТЬ |СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника |ИЗ | РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз |ГДЕ | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &УникальныйИдентификаторИсточника | И СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточникаСтрокой <> """" | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника <> """""); Запрос.УстановитьПараметр("УзелИнформационнойБазы", ПРО.ИмяПланаОбмена); Запрос.УстановитьПараметр("УникальныйИдентификаторИсточника", Объект); Отказ = Не Запрос.Выполнить().Пустой(); |
|||
8
Paul_Nevada
23.05.14
✎
14:50
|
логика же на верном пути - если объект есть в этой таблице, значит однажды он уже был выгружен/загружен?
|
|||
9
Paul_Nevada
23.05.14
✎
16:26
|
Подскажите, пож, как получить узел плана обмена по имени...
Балин... |
|||
10
Paul_Nevada
23.05.14
✎
16:27
|
короче - проблема с запросом, выше написанным, когда перенес его в ПРО - ухожу в исключение в момент Выполнить(ПРО.ПередОбработкой);
|
|||
11
Paul_Nevada
23.05.14
✎
16:27
|
начудил с типами...
|
|||
12
Paul_Nevada
23.05.14
✎
16:30
|
нужна помощь в написании запроса к РС "СоответствияОбъектовИнформационныхБаз"
|
|||
13
Paul_Nevada
23.05.14
✎
16:58
|
Есть имя плана обмена - как получить узел?
|
|||
14
ДенисЧ
23.05.14
✎
16:59
|
ПланОбменаМенеджер.<Имя плана обмена>.НайтиПоНаименованию (ExchangePlanManager.<Имя плана обмена>.FindByDescription)
ПланОбменаМенеджер.<Имя плана обмена> (ExchangePlanManager.<Имя плана обмена>) НайтиПоНаименованию (FindByDescription) Синтаксис: НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>) Параметры: <Наименование> (обязательный) Тип: Строка. Строка, содержащая искомое наименование. <ТочноеСоответствие> (необязательный) Тип: Булево. Определяет режим поиска по полному соответствию. Поиск будет успешным, если строка поиска: в случае значения параметра Ложь - будет соответствовать левой части наименования; в случае значения параметра Истина - будет полностью совпадать с наименованием (за исключением "хвостовых" пробелов в наименовании). Значение по умолчанию: Ложь Возвращаемое значение: Тип: ПланОбменаСсылка. Ссылка на найденный узел. Если не существует ни одного узла с требуемым наименованием, то будет возвращена пустая ссылка. Описание: Осуществляет поиск узла плана обмена по его наименованию. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Если существует несколько узлов с указанным наименованием, то будет найден только один из них. |
|||
15
Paul_Nevada
23.05.14
✎
17:07
|
спасибо!)
|
|||
16
Paul_Nevada
23.05.14
✎
17:09
|
еще вопрос - уникальные идентификаторы в пределах одной ИБ - различны для всех объектов? или различны только в пределах объектов метаданных?
|
|||
17
ДенисЧ
23.05.14
✎
17:11
|
(16) Теоретически они должны быть уникальными. Но вероятность совпадения есть
|
|||
18
Paul_Nevada
23.05.14
✎
17:38
|
Понятно...
Вот так в итоге сделал: Запрос = Новый Запрос("ВЫБРАТЬ |СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника |ИЗ | РегистрСведений.СоответствияОбъектовИнформационныхБаз КАК СоответствияОбъектовИнформационныхБаз |ГДЕ | СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточника = &УникальныйИдентификаторИсточника | И СоответствияОбъектовИнформационныхБаз.УзелИнформационнойБазы = &УзелИнформационнойБазы | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторИсточникаСтрокой <> """" | И СоответствияОбъектовИнформационныхБаз.УникальныйИдентификаторПриемника <> """""); Запрос.УстановитьПараметр("УникальныйИдентификаторИсточника", Объект.Ссылка); Запрос.УстановитьПараметр("УзелИнформационнойБазы", ПланыОбмена[ПРО.ИмяПланаОбмена].НайтиПоКоду("БП")); Отказ = Не Запрос.Выполнить().Пустой(); |
|||
19
Paul_Nevada
23.05.14
✎
17:40
|
Как-то, конечно, не очень нравится, что нужно наверняка знать код узла плана обмена, жестко его прописывать...
С другой стороны - как иначе? Нормально - все работает. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |