|
250 млн объектов, 1 млн видов метаданных, 128 УРБД баз | ☑ | ||
---|---|---|---|---|
0
Вуглускр1991
01.05.16
✎
00:24
|
Привет!
И вот опять мне надо лить из 7.7 в 8.х документы и справочники. Я стал искать в гугле, кто же является в этом вопросе специалистом ... и нашел v8: v8: РИБ 7.7 - 8.2 Только в этот раз условия немного поменялись КД 7.7 -> 8 правила регистрации бывают? УРБД нет, а лить надо. Порешав проблемы с получением данных из лога 1С 7.7, я вынул идентификаторы объектов, которые надо загрузить вот в таком виде О/1/(ИБД)2 ну, это запись обобщенная ИБД в скобках у меня нет, как я выше уже писал. После чего я решил не делать регистр соответствий этих строк идентификаторам объектов в 8-ке. Я добавил в конфигурацию подписку на запись документов и справочников, в которой заблокировал некоторый диапазон идентификаторов. Вот она //*** Процедура ПроверитьСозданнуюСсылкуУИДПриЗаписи(Источник, Отказ) Экспорт // Вставить содержимое обработчика. ГУИД = Источник.Ссылка.УникальныйИдентификатор(); Строка16 = Сред(ГУИД, 16, 3) + Сред(ГУИД, 10, 4) + Сред(ГУИД, 1, 8); СтрокаПеред = Сред(ГУИД, 25, 12) + Сред(ГУИД, 20, 4) + Сред(ГУИД, 15, 1); //"32e6f7e9afde" + "bf12" + "1" СтрокаВсяНачалоДиапазон = "32e6f7e9afdebf121000000000000000"; СтрокаВсяКонецДиапазон = "32e6f7e9afdebf1210ffffffffffffff"; СтрокаВсяВообще = СтрокаПеред + Строка16; Отказ = Отказ ИЛИ (СтрокаВсяНачалоДиапазон <= СтрокаВсяВообще) И (СтрокаВсяКонецДиапазон >= СтрокаВсяВообще); // закрыли обменный диапазон Если Отказ Тогда // Записать в ЖЖ КонецЕсли; КонецПроцедуры //*** В указанном диапазоне я смогу разместить 250 млн объектов для каждого из 1 млн видов метаданных полученных из 128 УРБД баз (в моем случае - ИД баз нули) Превращение внутреннего идентификатора объекта 7.7 во внутренний идентификатор объекта 8.х произойдет взаимно однозначно. Как считаете, можем ли мы, сообщество 1С программистов принять этот диапазон как некий стандарт, свободный для подобных целей? Кому понравилось решение - делюсь. Кто не верит, что пересечений не будет - проверьте в своих базах. С уважением. |
|||
1
H A D G E H O G s
01.05.16
✎
00:37
|
Не понял всю суть страданий автора.
|
|||
2
Красный рассвет
01.05.16
✎
00:39
|
(1) Там это:
- Вы жалуетесь? - Нет, я хвастаюсь! |
|||
3
Вуглускр1991
01.05.16
✎
00:40
|
(1) А страданий нет, все супер.
А ты в этой теме (УИДы) спец, зря включил этого ... |
|||
4
Aleksey
01.05.16
✎
03:29
|
подписка на событие в 7-ке?
|
|||
5
Aleksey
01.05.16
✎
03:54
|
ИМХО слишком заморчено
В типовой 1С первых символах гуид сидит дата и время создания,а значит кодируя первый 16 символов гуид мы уже однозначно исключим пересечение. Я например тупо перевожу посимвольно коды символов в 16-ную систему, ты можешь закодировать в гуид код базы, тип и вид объекта и его уникальный идентификатор например типовой гуид 8af5522a-5763-11e3-800b-14dae9151f5c где 3-ая группа цифр всегда начинается с 1, значит кодируя туда любой другой цифр уже однозначно даст уникальность Например в твоем случае 3ая группа может иметь вид 7+КодБазы, т.е. 7001, 7002 и т.д до 7999 |
|||
6
DrZombi
гуру
01.05.16
✎
07:58
|
(0) Зачем лить? Зачем объекты? 7.7 и 8.х две разные субстанции :)
|
|||
7
DrZombi
гуру
01.05.16
✎
08:05
|
(0) >>> Кому понравилось решение - делюсь.
Убого, тема сисек не раскрыта. Автор умолчал об подводных камнях, а именно про описание 7.7 и описание 8.ххх. Куда, что лить, зачем? Что за учет Упр или бухия? На основании какой конфигурации был выпилена нетленка в 7.7? Куда он льет? Какая конфигурация в 8.ххх взята за замену? ... Немного дегтя, если автор решил, что синхронизация по гуиду или иному методу, не доступному простому пользователю, это сверх точность. То его ждет разочарования, когда пользователи создадут новый элемент в 7.7 и тупо переименуют его, как старый. При этом сделают установку для себя, для пользователей, что сей элемент правильный. И тут начнутся танцы ужа на сковороде, когда накопятся сотни документов с таким элементом, а в БД 8.ххх все движения за двоятся. И таких чудес будет не один, и не два, а несколько сотен. Человеческий фактор, мать-едит :) |
|||
8
Обработка
01.05.16
✎
08:27
|
||||
9
Вуглускр1991
01.05.16
✎
09:42
|
(5) А почему она начинается с 1?
Вот что вторая цифра этой группы 1, это я знаю почему, и я кодирую туда 0 (см диапазон), поэтому пересечений со ссылками, генерируемыми 1С не будет. Но есть подводный камень - привет (7), это когда некий умный программист запросит новый ГУИД и слепит из него ссылку для своего элемента справочника или документа. Вот тут то ему и даст отлуп приведенная подписка. Один раз на много тысяч сгенерированных настоящих ГУИДов. (7) ТиС 9 -> УТ10 Все, что делается в 7.7 - святая корова для тех, кто использует 8. Переименуют объект 8 отразит это как в зеркале. (8) 5 лет полет нормальный в обе стороны. 7.7 до сих пор жива, на 8 развиваются новые проекты, но перехода полного нет. На середине переправы 7.7 -> 8 решили остановить коней, там и зафиксировались. 7.7 по прежнему держит фронт, на 8-ке закупка, выгрузка в БП3, синхронизации с сайтами, доп. свойства для объектов битриксов, проверка контрагентов. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |