#0
by alex-ls
Такой вопрос, надо вытащить данные из таблиц 1С sql-запросами. Но вот натолкнулся на непонятные вещи. " ID может иметь 3 представления (уровня) в зависимости от длины (количества значащих символов): 9 символов – определен тип и вид объекта (например «Справочник.Клиенты»), в ID включается только порядковый номер в 36-ричной системе исчисления. Под порядковый номер отводятся первые 6 символов, последние 3 символа зарезервированы под код базы УРБД. 13 символов – определен только тип объекта, вид не задан (например «Справочник»). Первые 4 символа – идентификатор вида (как он задан в метаданных), последующие 9 символов – по аналогии с предыдущим пунктом. 23 символа – не определен тип и вид объекта. В таком случае в первых 2 символах храниться тип объекта (будет рассмотрен ниже), следующие 13 символов формируются аналогично предыдущему пункту. " SELECT * FROM DH733 /*Начисление удержания сотрудника*/ в ней у меня есть поля sp723 и tsp723 получаю значения: A1 1G1 1G1 и 0 A1 Q9 Q9 и 0 Как узнать на что указывают данные значения? С 1С до этого не работал. Посоветуйте чего-нить...
#2
by ASV
>>Как узнать на что указывают данные значения? читать структуру DH733 в файле dds, лежит в каталоге базы
#5
by Подполковник
есть кстати просмоторщик ДДС файлов. очень удобная вещь при работе с прямыми запросами, всегда можно узнать какое поле за что отвечает
#6
by alex-ls
насчет . Это имеется в виду через алгоритимческий язык? Хотелось бы ограничиться только SQL или никак? Может дадите более точную ссылку, если я что не так понял?
#9
by alex-ls
<<есть кстати просмоторщик ДДС файлов. просмоторщик тоже поставил, как плагин к Far. Но что-то я все-таки видимо до конца не допонял :( Есть 2. идентификатор вида 3. порядковый номер в 36-ричной системе вот я запросом получаю значение поля и не вижу как я понимаю идентификатора вида :(
#10
by Джинн
"Только SQL" тебе на фиг не нужен. Забодаешься на нем запросы писать. 1С++ имеет метапарсер, который сам "соберет" запрос. И подключаешься с ним к базе ты через родное "одноэсовское" соединение с сервером.
#11
by alex-ls
да я не против забодаться :) Или хотя бы попробовать, просто в идеале задача стоит решить именно средствами SQL...
#12
by Джинн
Хочешь своего персонального геморроя? Поверь опыту старших товарищей. Этот геморрой в свое время уже поимевших :)
#13
by Иде я
Ты смотри название поля в таблице в DDS - там идет описание его. Потом заходи в конфигуратор и там посмотри какой тип в 1С. Если в таблице этого поля в описании нет, значит оно периодическое и хранится в 1SConst
#14
by alex-ls
to Иде я: так делаю... НачисленияУдержанияСотрудника -> Расчет -> Тип значение = <<Неопределенный>> И что это значит? Не видел нигде описания, как вязать в таком случае... Может кто подкинет ссылочек по внутреннему убранству? Сам искал, но видимо плохо.
#15
by alex-ls
to Джинн: Вообщем ситуация следующая, надо сделать импорт небольшого количества данных из 1С зарплата в оралковую структуру. Если Вы опишите хотя бы в общем виде проблемы с SQL доступом я буду Вам очень признателен. Вполне допускаю, что проще будет руками перебить из одной системы в другую :)
#16
by КонецЦикла
Чо курил? "импорт небольшого количества данных из 1С " - пишется недолго обработочка которая все куда надо положит без извратов, на встроенном языке 1С
#16
by Подполковник
лучше юзай банальную выгрузку данных в БДФ файл, а из него в оркл забирай, у знакомых вроде так реализовано
#18
by alex-ls
>> лучше юзай банальную выгрузку данных в БДФ файл 1С именно на дбф :) В оракл данные таблицы импортированы, теперь надо перегнать сами данные в другую структуру... >> Чо курил? "импорт небольшого количества данных из 1С " - пишется недолго повторюсь, сам я разработчик не 1С. А ораклоид. Посему встроенного языка 1С не знаю. Все-таки хотелось бы какой-нить документик (ссылу на него), где было бы описано хотя бы в общих чертах по какому алгоритму 1С осуществляет ссылочную целочтность или такого просто нет в природе?
#19
by floverr
Вот что вытащил из ДДС #==TABLE no 7 : Справочник Банки # Name |Descr |SQLTableNam|RecordLock T=SC72 |Справочник Банки |SC72 |R #-----Fields------- # Name |Descr |Type|Length|Precision F=ROW_ID |Row ID |I |0 |0 F=ID |ID object |C |9 |0 F=PARENTID |ID parent obj |C |9 |0 F=CODE |object code |C |9 |0 F=DESCR |object description |C |100 |0 F=ISFOLDER |Is Line - Folder |Y |0 |0 F=ISMARK |Object is Marked for|L |0 |0 F=VERSTAMP |Version stamp |I |0 |0 F=SP66 |(P)КоррСчет |C |20 |0 F=SP67 |(P)Местонахождение |C |50 |0 F=SP69 |(P)Телефоны |C |30 |0 F=SP68 |(P)Адрес |M |0 |0 Все Таблицы внем описаны.
#21
by Иде я
Если неопредеоенный, тогда сложно это все. Как вариант могу посоветовать распечатать из1с все типы значений которые там встречаются и по каждому типу копать
#23
by alex-ls
to floverr Вопрос относится к 23-символьным идентификаторам. В Вашем примере их нет... to Альф: это нашел чуть ли не первым делом, но как-то это описание не вяжется с полученными мною данными: (в ней у меня есть поля sp723 и tsp723 получаю значения: A1 1G1 1G1 и 0 A1 Q9 Q9 и 00 и постом Иде я (Если в таблице этого поля в описании нет, значит оно периодическое и хранится в 1SConst)
#24
by rsv
Ну чего там у вас нет ни одного 1С ника. Котрый через 1С звал бы хранимки на сервере ????
#25
by АЛьФ
2 Мало найти. Надо было еще и прочитать. "Любое поле SPyyy неопределенного типа (U) сопровождается полем TSPyyy типа Char, с назначением которого я не разобрался (похоже что оно всегда empty, если поле SPyyy пусто)."
#26
by alex-ls
to Иде я: Т.е. если тип неопределенный, то используя только *.dbf нельзя никак определить, на что ссылается строка? А необходима еще и информация из 1cv7.md?
#27
by alex-ls
to rsv: на данный момент нет. to АЛьФ: читал, как без этого. Скажу прямо понял не все... Но для этого и обращаюсь за разъяснениями на форум по 1С :) связанное поле SP* заполняется строкой включающий полный идентификатор объекта (его тип, вид, внутренний ИД код). Следует отметить, что для типов «Перечисление» нельзя не назначать вид, так как не назначение вида приведет к несовпадению типов и не заполнению неопределенного поля. Возможные значения TSP*: '0 ' - был назначен только тип объекта, вид не назначен (например «НазначитьТип(«Справочник»)») '1 ' - был назначен как тип объекта, так и его вид (например «НазначитьТип(«Справочник.Клиенты»)») У меня как раз 0 стоит, смотрите выше... Но дальше этого объяснения не идут :(
#29
by Иде я
Как вариант могу предложить создать пустую базу, завести реквизит неопределенного типа и посмотреть где оно вылезет
#30
by АЛьФ
2 Слюшай, позови спеца по 1С. Он тебе быстро и недорого сделает выгрузку тех данных, которые нужны, в том формате, который тебя устроит.
#31
by rsv
Понимаете ли alex-ls. В поле с типом неопределено может лежать все что угодно. Ссылки на любые таблицы и т.д. и прочее. Разбирать на что же это все ссылается геморойно. Если бы оно имело однозначо тип - Справочник.Сотруднки это одна песня. А в случае с неопределено- несколько иная.
#32
by rsv
Да и как таковой ссылочной целостности в 1С на уровне сервера БД нет. Все шустрит прикладной движок.
#33
by alex-ls
to rsv: Да я понимаю, что такое неопределенная ссылка. Просто думалось, что реализовано это более просто, например через промежуточную таблицу и описано в каком-то документе, который я не нашел. to КонецЦикла, АЛьФ: Насчет привлечения людей со стороны решения принимаю не я...
#35
by Иде я
Щас попробовал с пустой базой В незаполненом поле SP14 сидело " U " и в TSP14 пусто когда заполнил значением Справочник.Новый2 Сидит sP14 "B1 F 2" и TSP14 "1" Заполнил значение справочник.Новый3 sp14 "B1 H 1"
#36
by alex-ls
to Иде я: большое спасибо! F и H как я понял переводятся в 10-ый формат и прибавляются к B. B - это справочник получаем SP15 и SP17. 1 и 2 соответсвенно ID в соответсвующих таблицах... А как можно получить 0 в поле TSP14?
#37
by КонецЦикла
что куда прибавляется? не надо так издеваться написать обработку будет проще чем излазить все таблички (особенно когда речь зайдет о доках расчета зарплаты)
#38
by КонецЦикла
и цель какая выщемливать внутренние ИД объектов? они что аналогичные будут в оракле?
#42
by alex-ls
to КонецЦикла: внутренние идентификаторы соотвественно переносится не будут, да и структура будет другая данных... 4 символа – идентификатор вида (как он задан в метаданных) он преобразовывается в часть названия таблицы (числовую), первая часть (текстовая) отвечает за тип SP - соответственно справочник. Аббревиатуры названий типов данных (реквизит Type): N-числовой, Len и Dec – соответственно размер и точность поля S-строка, Len – длина строки. При Len=0 – строка неограниченной длины, хранящаяся в 1sblob D-дата B-справочник E-перечисление O-документ T-счет
#45
by Иде я
Щас присвоил строку "12300000000000000000000000000000000000000000000000000000000000000000000000000000000" И вот чего получилось SP="S1230000000"
#47
by alex-ls
to Иде я: то есть в tsp14 у Вас 0, а sp12 имеет вид: "B1 H 0" правильно? я же наткнулся на какую-то странность... Т.е. вместо ожидаемого идентификатора вида на его месте стоит идентификатор объекта, который потом дублируется еще вдобавок и на своем месте... SQL> select sp723_, tsp723_ 2 from sps.imp__DH733 3 where rownum < 3 ----------------------- --- A1 1G1 1G1 0 A1 1G1 1G1 0 Т.е. А - у меня это "Вид расчета". А 1G1 дублируется в поле по непонятным для меня причинам...
#50
by alex-ls
to КонецЦикла: Задача ставится не как одноразовая, а как разобраться со структурой таблиц 1С. Из-за возможности импорта других данных из 1С... я не прошу конкретно сделать импорт моих данных, а объяснить (как вариант дать ссылку) организацию работы ссылок в 1С
#51
by alex-ls
to Иде я: c постоянными значениями в неопределенных полях я более/менее разобрался... Что пишется в SP*, если TSP* имеет значение 0, т.е. был назначен только тип объекта, вид не назначен (например «НазначитьТип(«Справочник»)»)
#52
by quest
так и не понял, что тебе конкретно непонятно? Периодические реквизиты? Длинные строки? Реквизит неопределенного типа?
#55
by quest
Если правильно помню - А это для для вида расчета, следовательно, неопределнное значение у тебя - тип расчета, далее, 1 - его индекс. 1G1 это либо параметры, либо сылки на элементы (тут утверждать не буду, так как с зарплатой не работал)
#56
by alex-ls
... В случае типа=B/O/T/C/A (значения которых хранятся в таблицах), в поле SPyyy хранится ссылка на соответствующую таблицу. ... Если же на момент формирования структуры хранения Params.Source_Id=0 – например «справочник вообще» – поле SPyyy содержит, помимо 9-и байтового номера записи ещё и ID [int] соответствующего этой таблице объекта метаданных (в первых 4-х байтах). ... В случае, если Params.Type=U (значение неопределенного типа) – поле SPyyy имеет длину 23 байта и содержит в первых 2-х символах информацию о фактически хранящемся типе значения (например N для Numeric, B1 для типа B, E1 для типа E, и т.п.), в остальных символах – аналогично предыдущему (4+9). ... Вот в своем примере A1 1G1 1G1 A1 ясно что такое. Где здесь 4-х байтный идентификатор объекта метаданных?
#57
by alex-ls
Тогда такой вопрос участникам: сколько будет стоить выгрузка ентого добра в удобоваримый для SQL или к примеру XML вид. Что в данной задаче есть тарелка супа? Т.е. надо получить структуру только с явными ссылками и значениями
#59
by alex-ls
1С зарплата, нужно чтобы поля имели определенный тип, а не "черти что и сбоку бантик" :) Текстовый файл и dbf в принципе подойдет, при оговоренных выше условиях... Назовите ориентировочно, начальнику передам.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Запуск 1С SQL на не MS SQL сервере ?
- Ошибка SQL 924 при просмотре процессов SQL 2000 +1C 77
- SQL или не SQL ??? как решить ?
- 1cv8 SQL: Имя SQL сервера и имя SQL базы данных
- 77 на SQL 2005, добавил константу , а где ее и как искать в SQL MS 2005
- Парралельная установка Sql 2000 и Sql 2005
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
В этой группе 1С
- v7: Как перенести какую-то информацию из БД Экософт в какую-то 1С?
- Табл. часть дока и событие "НачалоВыбора"
- Выгрузка из ТЗ в справочник
- А есть товарный отчет в УТ может уже кто делал сам?
- Измерение регистра сведений - строка. Трабла при работе с набором.
- Как можно оповестить всех активных пользователей о событии
- Сохранение табличного документа в *.xls
- Партионный учет с выбором партиообразующего документа в УПП
- v8: текст xml содержит недопустимые символы. Кто-нибудь решил проблему?
- Отменить отбор
- v8: Подскажите, как перевести 1С 8.0 с файловой версии на SQL?
- v7: Долгая загрузка SQL базы
- 2-х мерный ШК на отчётах
- Объясните чайнику, какого фига существуют НедопустимыеСимволы в XML а-ля 1С
- Отладка на сервере функция останавливаться по ошибке.
- Открыть форму записи регистра сведений с выбранным в документе имерением
- Подключение сканера ШК "Symbol-LS2208 USB" к 1С
- v7: Объединение всех данных из 2-х одинаковых баз
- Добавление субконто в Комплексной
- Как убрать приложение у файла с определенным расширение?