Как расшифруется UID код справочника ? #341645


#0 by чувак
Есть такой UID код у справочника "{"B","0","0","2982","0","0","      4348   "}". Оттуда я понял только 2982, это код таблицы этого справочника. А остальные что означают? Особенно 4348. :)
#1 by Лефмихалыч
#2 by Лефмихалыч
#3 by a_ivanov
ID объекта скорей всего...
#4 by Лефмихалыч
4348 - это ID стори таблицы. Последние три пробела зарезервированы для ИД базы в случае использования УРБД
#5 by чувак
а передние пробелы? Ты наверно имел ввиду ID строки таблицы?
#6 by a_ivanov
так 1С хранит ID,  с пробелами. char.
#7 by Лефмихалыч
ну, да, стРОКи таблицы. А передние пробелы зарезервированы для максимально возможной длины этого ИД
#8 by Mikeware
какой нафиг "строки"???
#9 by Лефмихалыч
а чего, если не строки таблицы?
#10 by dk
хорош спорить, в все разжевано.
#11 by a_ivanov
наверно имел ввиду строки таблицы SQL
#12 by dk
т.е. в :)
#13 by Лефмихалыч
ога, мля, именно SQL я в виду и имел. Гений, ё...
#14 by a_ivanov
кому то не понятно было о каких строках идет речь...
#15 by Mikeware
птыц, ты вообще с реляционными БД знаком?
#16 by Ёпрст
Имхо, знаком :))
#17 by Лефмихалыч
чо сказать-то хочешь?
#18 by Mikeware
как раз видно, что не знаком... просто руководятел.... То, что у для реляционных баз пофиг в какой "строке" что находится.  Сам ссылки даешь, и сам, похоже, не удосужился прочитать...
#19 by Лефмихалыч
тебе череп не жмет? ЗЫ Ты правда считаешь, что 1С 7.7 - реляционная база данных?
#20 by чувак
А тогда что за цифра это?
#21 by Лефмихалыч
расслабься, просто Mikeware заняться нечем и он решил до формулировок подоёпывацца
#22 by Mikeware
А ты считаешь, что SQL-сервер (и файловое хранилище на dbf-ках) - не реляционная? :-))) действительно, "руководятел™"... ид объекта в десятичном виде. Читай ссылки в и в
#23 by Лефмихалыч
иди учить правила Кодда, программоид
#24 by чувак
А таблице SQL мне кажется он хранится в 36-ричной системе исчисления. Я прав?
#25 by Лефмихалыч
прав
#26 by чувак
А есть ли какой-нить преобразователь ? В винде калькулятор берет только до 16-го сцука. :)
#27 by a_ivanov
а зачем если не секрет?
#28 by Лефмихалыч
_IdToStr _StrToId незадокументированные функции семерки
#29 by Лефмихалыч
например, может пригодиться для прямх запросов к скулю через АДО. Да мало ли...
#30 by чувак
Там написано,что работает до 18-релиза, а у меня 23 й:(
#31 by Mikeware
Прав. Смотри ссылку в . _IdToStr и _StrToId И не забывай, что код ИБ перед преобразованием отделять надо
#32 by a_ivanov
тебе в какую сторону то преобразователь нужен то? Есть такой...
#33 by Лефмихалыч
мир?
#34 by чувак
И напоследок. Как формируется этот пресловутый ID? Система автоматически создает при записи нового элемента справочника? Если да, тогда по каким правилам? ЗЫ. Видимо слишком далеко зашел ::
#35 by Лефмихалыч
сие есть неведомо. Вариантов масса
#36 by Mikeware
А мы разве воевали? :-) Кстати, база что файловая, что сиквельная, вполне отвечает требованиям как Кодда, так и Дейта. Другое дело, что они (1С-ные БД)не нормализованные (но от этого не перестают быть реляционными)
#37 by Лефмихалыч
я сказал база? я имел в виду СУБД. Ни семерка, ни восьмерка не хранят метаданных в виде таблиц, стало быть реляционными СУБД не являются, это вот я имел в виду. Применительно к семерке я не вижу разницы между "ИД строки таблицы" и "ИД объекта", т.к. в семерке там, где есть понятие ОБЪЕКТ, нет понятия ТАБЛИЦА и наоборот.
#38 by чувак
Зачем все это надо мне? Просто есть одна система, оттуда данные заливаются в промежуточную базу, который хранится в СКЛ. И с этой базы данные загружаются в 1С. Но меня удивляет то, что одинэс берет код из промежуточной базы (там как-раз хранится этот код в 36-м счислении), потом это преобразует в 10-чный. Потом все соберет в кучу, формирует UID код. И с помощи ЗначениеИзСтрокиВнутр преобразует в внутренный тип 1С. и находит в 1С с помощью НайтиЭлемент. Но меня волнует как может совпадать коды из совершенно разных баз (та система работает в Оракле)?
#39 by a_ivanov
ROW_ID тоже однозначно идентифицирут строку таблицы. Но не объект...
#40 by Лефмихалыч
гхмм... "Но меня удивляет то, что одинэс берет код" - одинэс так точно не делает. Еще раз, в чем проблема? У тебя что-то где-то при каком-то обмене задваивается?
#41 by Лефмихалыч
а, вы об этом, понятно. Да, действительно, я неправ в формулировке "ИД строки"
#42 by чувак
Я имел ввиду из промеж. базы в 1С заполняется документ, там есть справочник Контрагенты. В обоих базах это справочник заполняется независимо, соответственно если одновременно создать в обоих один и тот-же контрагент, у них не будет ничего общего (ИНН не берем в счет). Вот вопрос: как одинэс нашел этот справочник, если в обоих базах нету ничего общего в обоих справочниках?
#43 by a_ivanov
то есть он находит одного и того же контрагента? Можно найти в своей базе по ID из другой базы какой либо объект, но соответствовать объекту из другой базы он конечно же не будет...
#44 by Лефмихалыч
подозреваю, что промежуточная база как раз и нужна для хранения соответствий ID. Чувак, я прав?
#45 by чувак
(43,44) Ладно всем спасибо, как нить решу эту головоломку :)
#46 by чувак
Сорри за глупый вопрос. А если зайти в таблицу в 1С через ЕМ, и там поменять этот треклятий код (ID), то это как влияет в саму баз 1с. катаклизмов не будет?
#47 by a_ivanov
будет катаклизм...объект не найден будет, везде где используется этот элемент
#48 by чувак
Спасибо, наверно буду терроризировать Оракулов, чтоб они поменяли.
#49 by a_ivanov
у них будет тоже самое..))) если менять, то менять по всей базе...
#50 by чувак
Но у них не 1С, какая-та прога под Оракул. Или это не имеет значения?
#51 by a_ivanov
не имеет, принцип один и тот же. Этот ИД содержится где то в других таблицах. И если ты его поменяешь вручную, ссылки на него будут нарушены...
#52 by Лефмихалыч
Чувак, ты объясни еще раз, ЗАЧЕМ тебе менять что-то, я просто недогоняю, чего ты в результате получить хочешь. Может есть способ проще...
#53 by чувак
Каждый раз при заливке в документ данных из промежуточной базы многие контрагенты не попадают точно в документ, из за того, что в промежуточной один код, а в 1С другой код (ID). Так вот бухи запарились каждый раз вручную менять контрагентов и седня меня прижали к стенке, сказали жизнь или правильные контрагенты :) Если одинэс искал бы по обычному коду, то другое дело. Он ищет по UID. Это до меня один умник прогер замутил такую фигню.
#54 by Лефмихалыч
если я правильног понял смысл слов "промежуточная база", то ты можешь поменять вручную код в промежуточной базе. в я правильно предположил или в промежуточной базе еще что-то?
#55 by a_ivanov
Так сделай поиск по коду
#56 by FreeFin
Похоже на моё... А в реквизитом справочника с сортировкой, этот UID не заведен, случаем?
#57 by чувак
Но туда тоже заливается от другой системы, она как-бы транзитная база. Т.е. корень зла там, в базе, которая заливает в промежуточную базу а насчет , то там нету никаких соответствий. Но в ПБ нету кода УИД же скрытий, он же не отображается в 1С
#58 by чувак
Хотя подожди, там в справочнике оказываца есть реквизит "уникальный код" и он сортируется
#59 by КонецЦикла
Ипать, развели КакаФонию
#60 by Лефмихалыч
чо-то мы оба недогоняем. Откуда (каким образом, в какой момент) код 1С появляется в промежуточной базе?
#61 by чувак
Есть варианты? Судя по твоему тону, это дляя тебя сущая ерунда :)
#62 by МихаилМ
#63 by a_ivanov
возьми из промежуточной базы какое либо поле за основу для кода в спр.контрагенты. Можно взять поле ID из базы Оракул, конвертровать его в десятичный формат и далее поиском по коду, если не найден создавай нового...
#64 by КонецЦикла
Исходя из описанного в моно только посоветовать курить ЖКК и бицца апстену
#65 by чувак
Еще раз. 1) С проги под Оракл данные заливаются в промежуточную базу (ПБ) 2) Из ПБ данные заливаются в 1С -В двух первых базах у контрагента код 36-ричные -При заливке одинэс этот код берет, переводит на 10-ричный, и формирует переменную с ID кодом (в последней ячейке этой УИД, будет этот переведенный код) -Потом 1С с помощью функции ЗначениеИзСтрокиВнутр превращает это УИД код в элемент справочника -С помощью метода НайтиЭлемент 1С находит этот элемент, и ставить в документ. Но 1С иногда находит другой справочник
#66 by чувак
Иди в бухгалтерию!
#67 by Лефмихалыч
пункт 2 каким образом происходит? Волшебным? Какая база к какой подключается и подключается ли? Промежуточная база - это 1С?
#68 by Лефмихалыч
шо ты злой такой сегодня?
#69 by чувак
Ладно комрады, наверно всем мозги запарил, чо нить придумаем.
#70 by КонецЦикла
Вид справочника хранится? Или только контрагенты интересуют? Тогда вид можно подсовывать А если пользоваться разумом или 1С++, то многократного перевода в другие системы не понадобится
#71 by чувак
Данные в 1С загружаются с помощью обработки 1С, вот код:
#72 by a_ivanov
изврат. в оракле наверняка тоже есть поле код, аналог 1С-ного. по нему и можно было синхронизировать...
#73 by чувак
Хочу заметить, что это процедура и создает УИД код:
#74 by чувак
Если в 1С ID код нельзя менять, и в Оракле нельзя менять, то что делать? убится об стенку? :)
#75 by КонецЦикла
CrObject - что это такое?
#76 by dk
Другой справочник или другой элемент справочника? Если другой элемент: где-то Епрст приводил пример, что если часто удалять элементы в справочнике, то ID перестает быть уникальным между сеансами обмена. Т.е. был элемент1 с ID = 15454 Его выгрузили в ПБ Удалили непосредственно (Удалить) упаковали базу создали другой элемент, ему тоже присвоился ID = 15454 Выгружают данные из ПБ Встает уже новый элемент
#77 by КонецЦикла
Заметили, спасибки... ЗАВЕСТИ В 1С реквизит с сортировкой ИДОракл
#78 by Лефмихалыч
Поменяй код в промежуточной базе, по которому производится поиск, и делу конец
#79 by FreeFin
Да пофиг по "идоракл", или идо1С, лишь бы и там и там были и синхронизировались, с условием соблюдения уникальности. Если есть некий реквизит ГлобальныйУникальныйКодДляВсехМестХраненияЭлементаСправочника , то "приходящего" сначала ищем по-нему, не находим - ищем по "достаточным идентификационным признакам" код окпо+не знаю что в Казахстане (банк, счет...хез). Если опть не находим, ищем по наименованию (что уже не есть хорошо и с учетом того, что если нашли, и уверенно=это он (проверять выгрузкой строками в ТЗ и вбивать "согласие" вручную), тогда УИД, получив из ЗначениеВСтрокуВнутр (например, или сгенеренный/полученный по другим способом) записать в базе получателе, если реквизит пустой (обработка и/или ПриЗаписи нового есть или не делал никто?), а потом , надо будет выгрузить (не понято куда, но туда, где его (значения реквизита) нет) "завязав" значением этого реквизита элементы во всех местах, где "живет" этот элемент.
#80 by чувак
Другой элемент. Я тоже об этом подумал, попробую, но пока незнаю, дадут ли мне доступ в оракл базу, чтоб оттуда одним махом получить коды Оракла
#81 by КонецЦикла
Ниасилел вообще... Зачем нужно значение из строки внутр и уид в данном случае? Зачем промежуточная база? Пойду-ка жрать...
#82 by КонецЦикла
Жжош И попроси прогеров на Оракле завести уникальный индекс что ли на id :)
#83 by чувак
И так при каждой заливке туда, нет уж спасибки. А может это код оракле обычный реквизит, тогда там просто можно менять.
#84 by FreeFin
А что тут "осиливать". Банальное Общее поле (значение реквизита в 1С, в другой 1С?, поле в оракле). По не му и увязывать. А что внутри реквизита/поля (или из 1С ЗначениеВСтрокуВнутр (если в 1с создан) или канить бодяга из оракла = без разницы. Только уникальность важна. И синхронизация для новых/измененных.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С