|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
vitkhv, Код: php 1.
гуид это, который мы получили из Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 13:55 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2beyя правильно понял: Код: php 1.
Зн - это GUID, мы берем 33 символа справа, потом из полученного результата 32 символа слева и конкатенируем с 0x ну да, только эта функция преобразовывает значение полученное 1С ной функцией ЗначениеВСтрокуВнутр(). У вас та такой нет, поэтому вам она не нужна. Просто в начале не понятно было, что вам нужно, я думал вы в 1С пишите. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:04 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2beyvitkhv, Код: php 1.
гуид это, который мы получили из Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
да. Функция полностью выглядит так: Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:08 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
[quot vitkhv]sc2r2beyvitkhv, да. Функция полностью выглядит так: Код: sql 1. 2. 3. 4. 5.
Сейчас синтаксис 1С выучу )) авторгуид = Строка(докссылка.УникальныйИдентификатор()); - это, например, Код: php 1.
авторДля й = 1 по СтрЧислоВхождений(гуид,"-") Цикл гуид = СтрЗаменить(гуид,"-", Символы.ПС); КонецЦикла; Это непонятно, зачем цикл, чтобы удалить "-", т.е. должно получится "50cb4263dd5c11e6898bbcaec5369a36" ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:15 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey, этот цикл преобразовывает 50cb4263-dd5c-11e6-898b-bcaec5369a36 в: 50cb4263 dd5c 11e6 898b bcaec5369a36 итого 5 строк. а потом просто строчку по номеру получает и в новом порядке их конкатенирует с добавлением 0x ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:18 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
vitkhvsc2r2bey, этот цикл преобразовывает 50cb4263-dd5c-11e6-898b-bcaec5369a36 в: 50cb4263 dd5c 11e6 898b bcaec5369a36 итого 5 строк. а потом просто строчку по номеру получает и в новом порядке их конкатенирует с добавлением 0x т.е. это получается массив/коллекция, его собираем в строку "0х" + "898bbcaec5369a3611e6dd5c50cb4263" Получилось, спасибо!!! Ты гений :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:27 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey, да но только в 1С это работа с объектом текст, можно и через массив/коллекцию в той же 1С. С текстом просто быстрее будет. Еще быстрее если со строкой работать: Код: sql 1.
в 1С даже синтаксис такой же. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 14:44 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
vitkhv, большое человеческое спасибо, я много дополнительного для себя подчерпнул! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2018, 15:30 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey, всегда пожалуйста. Дальше пишу как для вас, так и заметку для себя. Функцию по получению UID из GUID написал свою: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
работает на 10-15% быстрее вот этой функции неизвестного автора: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Думаю автор использовал преобразование binary через uniqueidentifier к CHAR , потому как видимо не разобрался как напрямую конвертировать binary в CHAR, CAST например это делать не умеет, только CONVERTс доп. параметром. В моем варианте функции можно использовать вместо "+" для конкатенации функцию CONCAT (c 2012 MSSQL) или что еще лучше CONCAT_WS (c 2017 MSSQL) будет еще на 2-3% быстрее: Код: sql 1.
Вроде кажется, что такое 2-3 %, а на самом деле в нескольких местах выжмешь эти проценты и вот весь код начинает работать на 30-50% быстрее. Поэтому я такими вещами лучше не пренебрегать. Ну и еще для тренировки написал функцию преобразования аналогичную: Код: sql 1. 2. 3. 4. 5.
но на TSQL: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Кстати самая тормозная часть этого запроса, желательно переписать: Код: sql 1.
писал чтобы потренироваться в использовании табличной функции STRING_SPLIT. Функция удобная конечно, но для наших целей намного быстрее будет функция: Код: sql 1.
или если MSSQL 2017 через CONCAT_WS вместо "+". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 10:10 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
что-то все некорректно работает ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 17:26 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2beyчто-то все некорректно работает Ну так проверьте почему? Что выдаст такой запрос: Код: sql 1. 2. 3. 4. 5.
Где _ReferenceXXX это таблица справочника (вместо XXX номер), к которого должен формироваться запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 20:37 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
Если не знаете название таблицы, в 1С в табло выполните такой код: Код: sql 1.
вместо НужныйМнеСправочник напишите нужный справочник. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 20:58 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
Для общей проверки работоспособности функции в табло выпоните такой код: Код: sql 1.
вместо НужныйМнеСправочник напишите нужный справочник. вместо 00000014622 подставьте код имеющийся в НужномСправочнике. Результат выполнения этой функции, а получиться что то подобное: "3c29ac92-4a0b-11e8-9414-bcaec5369a36" вставляете в переменную @GUID1С вышеуказанного SQL запроса, соответственно вместо _ReferenceXXX подставляете результат функции ПолучитьСтруктуруХранения. Табло вызывается в меню->сервис->табло Выполняете, смотрите думаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 21:08 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
Напомню еще раз я не 1Сник, поэтому она далеко от меня, есть только SQL Server и веб сервер Я получал GUID обоими функциями, потом на php преобразую в бинарник и пишу в базу, смотрю в 1С запись есть и все данные подтягиваются, но при при попытке открыть элемент справочника пишет объект не найден ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 09:55 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey, авторпотом на php преобразую в бинарник Как вы его на PHP преобразуете? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:31 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2beyпишет объект не найден там д.б. в таком виде: 193 86f0b888e3fcbec611e873b98345ccc8 первая цифра до пробела это и есть номер таблицы. т.е. запрос в данном случае будет выглядеть так SELECT * FROM _Refernce193, а дальше неправильно преобразованный ГУИД 86f0b888e3fcbec611e873b98345ccc8 т.е. вам бы найти исходник GUID, и посмотреть в каком месте происходит неверное преобразование. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:40 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
для того,чтобы точно убедиться, что там справочник выполните такой запрос: Код: sql 1. 2. 3.
где XXX номер таблицы из битой ссылки. 193 86f0b888e3fcbec611e873b98345ccc8 в данном случае 193. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:44 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
Ну а дальше уже выполняете вот это: Код: sql 1. 2. 3. 4. 5.
где @GUID1С берете из вашего файла обмена, а вместо _ReferenceXXX подставляете таблицу полученную в результате выполнения предыдущего запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 10:51 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
там что-то с 1С разбираются, как там все под капотом работает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 14:25 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2beyтам что-то с 1С разбираются, как там все под капотом работает Там видимо данные не догружаются, т.е. это не справочник не загрузился а, реквизит из этого справочника. Т.е. сам справочник загрузился нормально (иначе вы бы вообще ничего не увидели), а вот на то, что ссылается реквизит не загрузилось (другой справочник или перечисление или ПВХ или Документ). Поэтому я и говорю, выполните запрос который я дал и посмотрите есть ли вообще данные в таблице и что это за таблица. В общем донастраивайте обмен. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 14:46 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey как там все под капотом работает Ну удачи им, дусмаю через полгодика разберутся :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 14:48 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
надеюсь быстрее, данные падают в БД правильные, в 1С отображаются, а вот как они подтягиваются это магия )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 15:04 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
sc2r2bey как они подтягиваются это магия )) Честно говоря не понял про что вы, и причем здесь функции преобразования GUID. Если вы про ссылку на реквизит, то обычный SELECT_Description FROM _ReferenceXXX WHERE _IDRref = @1, где @1 ссылка которая у вас битая и все это завернуто в sp_executesql или sp_execute. Если в профайлере не видите обращений, значит данные закешировались уже на сервере 1С. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 15:12 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
я тоже вас понимаю через раз ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 15:23 |
|
GUID из 1С в MS SQL и обратно, как реализовывается?
|
|||
---|---|---|---|
#18+
вот прилетают данные: Код: javascript 1. 2. 3. 4. 5. 6.
вот в SQL Server ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2018, 15:26 |
|
|
start [/forum/topic.php?fid=28&msg=39697842&tid=1518327]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
137ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 236ms |
total: | 482ms |
0 / 0 |