|
Создание УИД УФ | ☑ | ||
---|---|---|---|---|
0
LeoKeyn
23.03.18
✎
14:09
|
Всем привет! Подскажите, пожалуйста, что я делаю не правильно?
Создаю новый УИД на основе строки УИД = Новый УникальныйИдентификатор(Строка(УИДСтрока)); Где УИДСтрока = "1a0ea41b-2d68-9644-b609-096e577bba48" В итоге получаю ошибку: {ВнешняяОбработка.ОбработкаОбращения.Форма.ФормаСписка.Форма(91)}: Ошибка при вызове конструктора (УникальныйИдентификатор) УИД = Новый УникальныйИдентификатор(Строка(УИДСтрока)); по причине: Недопустимое значение параметра (параметр номер '1') Даже преобразование для верности в строку сделал УИДСтрока, хотя она и так строка. Подскажите, пожалуйста, что тут не так? |
|||
1
Lexey_
23.03.18
✎
14:13
|
(0) "преобразование для верности в строку сделал УИДСтрока, хотя она и так строка" сделай на всякий случай побольше преобразований Строка(Строка(Строка(Строка(УИДСтрока))))
|
|||
2
Lexey_
23.03.18
✎
14:16
|
(0) УИДСтрока не является ли реквизитом формы другого типа?
|
|||
3
VitShvets
23.03.18
✎
14:16
|
(0) Вместо "Строка(..." попробуй "СокрЛП(". Конструктор так ругается, когда кривой параметр.
(1) :) |
|||
4
Малыш Джон
23.03.18
✎
14:18
|
(0) буквы русские есть в УИД
|
|||
5
VitShvets
23.03.18
✎
14:19
|
(4) Нету. У меня нормально отрабатывает:
Новый УникальныйИдентификатор("1a0ea41b-2d68-9644-b609-096e577bba48") |
|||
6
LeoKeyn
23.03.18
✎
14:19
|
(4) Нету, получаю его из Ссылка.УникальныйИдентификатор, потом преобразовываю в строку по необходимости и обратно в УИД нужно
(3) Не помогло:( |
|||
7
Галахад
гуру
23.03.18
✎
14:20
|
(6) Больше кода.
|
|||
8
Малыш Джон
23.03.18
✎
14:20
|
(5) да, тоже попробовал
|
|||
9
Малыш Джон
23.03.18
✎
14:21
|
(6) отладчик что говорит?
|
|||
10
Lexey_
23.03.18
✎
14:21
|
(6) "преобразовываю в строку по необходимости и обратно в УИД нужно" зачем обратно? есть же источник Ссылка.УникальныйИдентификатор?
|
|||
11
LeoKeyn
23.03.18
✎
14:22
|
Записываю в другую базу SQL:
//Инициализация переменных ИмяСервераSQL = "SQL20141C"; ПользовательSQL = "res"; ПарольSQL = "rj;puca2015"; БазаДанныхSQL = "Recourses"; ТаблицаSQL = "RecoursessFiles"; ///////////////////////////////////////// //Подключение к SQL-серверу Попытка Соединение = Новый COMОбъект("ADODB.Connection"); Команда = Новый COMОбъект("ADODB.Command"); Выборка = Новый COMОбъект("ADODB.RecordSet"); Соединение.ConnectionString = "driver={SQL Server};" + "server="+ИмяСервераSQL+";"+ "uid="+""+";"+ "pwd="+""+";"+ "database="+БазаДанныхSQL+";"; Соединение.ConnectionTimeout = 30; Соединение.CommandTimeout = 600; //Открытие соединение Соединение.Open(); Команда.ActiveConnection = Соединение; Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; УИД = Объект.ДокументСсылка.УникальныйИдентификатор(); Для Каждого Строка ИЗ Объект.Файлы Цикл ДвоичныйДокумент = Новый ДвоичныеДанные(Строка.ПутьКФайлу); ДвоичныйДокумент = Base64Строка(ДвоичныйДокумент); //Хранилище = Новый ХранилищеЗначения(ДвоичныйДокумент); ТекстТекущейИнструкции = "INSERT INTO "+ТаблицаSQL+" |([Link], [FileName], [File], [Format]) |VALUES ('"+УИД+"', '"+Строка.ИмяФайла+"', '"+ДвоичныйДокумент+"', '"+Строка.ФорматФайла+"')"; Попытка Соединение.Execute(ТекстТекущейИнструкции,,128); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла; ЭтаФорма.Закрыть("Успех"); КонецПроцедуры Потом Достаю: &НаКлиенте Процедура ЗаполнитьТаблицу() //Инициализация переменных ИмяСервераSQL = "SQL20141C"; ПользовательSQL = "res"; ПарольSQL = "rj;puca2015"; БазаДанныхSQL = "Recourses"; ТаблицаSQL = "RecoursessFiles"; ///////////////////////////////////////// //Подключение к SQL-серверу Попытка Соединение = Новый COMОбъект("ADODB.Connection"); Команда = Новый COMОбъект("ADODB.Command"); Выборка = Новый COMОбъект("ADODB.RecordSet"); Соединение.ConnectionString = "driver={SQL Server};" + "server="+ИмяСервераSQL+";"+ "uid="+""+";"+ "pwd="+""+";"+ "database="+БазаДанныхSQL+";"; Соединение.ConnectionTimeout = 30; Соединение.CommandTimeout = 600; //Открытие соединение Соединение.Open(); Команда.ActiveConnection = Соединение; Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Если Объект.ДокументСсылка.Пустая() Тогда ТекстИнструкции = "SELECT | * |FROM "+ТаблицаSQL; Иначе ТекстИнструкции = "SELECT | * |FROM "+ТаблицаSQL+" |WHERE Link="+Строка(Объект.ДокументСсылка.УникальныйИдентификатор()); КонецЕсли; ///////////////////////////////////////// //Читаем записи //Попытка Команда.CommandText = ТекстИнструкции; Выборка = Команда.Execute(); Если Выборка.BOF = Ложь Тогда Выборка.MoveFirst(); Пока Выборка.EOF = Ложь Цикл //Сообщить("[C_DateTime]="+Дата(Выборка.Fields("C_DateTime").Value) // +", [C_Char]="+СокрЛП(Выборка.Fields("C_Char").Value) // +", [C_Numeric]="+Число(Выборка.Fields("C_Numeric").Value)); Строчка = Объект.Файлы.Добавить(); Строчка.Основание = ПолучитьСсылку(Выборка.Fields("Link").Value); Строчка.ИмяФайла = Выборка.Fields("FileName").Value; Строчка.ПутьКФайлу = Выборка.Fields("File").Value; Строчка.ФорматФайла = Выборка.Fields("Format").Value; Выборка.MoveNext(); КонецЦикла; КонецЕсли; //Исключение // Сообщить(ОписаниеОшибки()); //КонецПопытки; КонецПроцедуры // ЗаполнитьТаблицу() &НаСервере Функция ПолучитьСсылку(УИДСтрока) УИД = Новый УникальныйИдентификатор(СокрЛП(УИДСтрока)); Возврат Справочники.Клиенты.ПолучитьСсылку(УИД); КонецФункции // ПолучитьСсылку() |
|||
12
hhhh
23.03.18
✎
14:22
|
(6) пиши всегда
XMLСтрока(УИДСтрока) функцию Строка выкинь везде на всякий случай. |
|||
13
LeoKeyn
23.03.18
✎
14:23
|
(11) В SQL поле типа varchar(MAX)
|
|||
14
LeoKeyn
23.03.18
✎
14:23
|
(12) Тоже не помогло
|
|||
15
LeoKeyn
23.03.18
✎
14:24
|
(12) Может попробовать делать его строкой перед записью в базу. Сейчас попробую
|
|||
16
Малыш Джон
23.03.18
✎
14:25
|
(15) в отладчике в строке с ошибкой какое значение у УИДСтроки?
|
|||
17
LeoKeyn
23.03.18
✎
14:27
|
(16) Вот это (0)
|
|||
18
LeoKeyn
23.03.18
✎
14:27
|
(16) тип строка, значение выше написал
|
|||
19
Lexey_
23.03.18
✎
14:27
|
(18) скрин отладчика давай
|
|||
20
VitShvets
23.03.18
✎
14:32
|
(18) Чудес не бывает. в (5) я в табло вставил строку, отработало без ошибок.
|
|||
21
LeoKeyn
23.03.18
✎
14:32
|
||||
22
LeoKeyn
23.03.18
✎
14:33
|
(20) так в том и дело, не могу понять в чем проблема то, почему он артачится
|
|||
23
LeoKeyn
23.03.18
✎
14:34
|
||||
24
LeoKeyn
23.03.18
✎
14:34
|
(23) [URL=https://savepice.ru][IMG]https://cdn1.savepice.ru/uploads/2018/3/23/4e017fa1815a8ec4fc405b4c004c8309-full.jpg[/IMG][/URL] [URL=http://perfetto-furniture.com/categories/gostinyie.html]итальянские гостиные[/URL]
|
|||
25
LeoKeyn
23.03.18
✎
14:34
|
(24) эт уже не то)
|
|||
26
Малыш Джон
23.03.18
✎
14:35
|
если честно, странно получаешь ссылку:
сначала говоришь SELECT Link FROM Table WHERE Link = Строка(Ссылка.УИД()), а потом говоришь ССылка = Новый УИД(Link) а нельзя сразу ссылку использовать? |
|||
27
LeoKeyn
23.03.18
✎
14:37
|
(26) Так он когда кладет ее в базу превращает в строку
|
|||
28
Малыш Джон
23.03.18
✎
14:37
|
я про момент получения говорю
|
|||
29
LeoKeyn
23.03.18
✎
14:38
|
(26) а условие на случай когда понадобится отбор по ссылке
|
|||
30
Малыш Джон
23.03.18
✎
14:39
|
(29) а ты можешь просто проверить наличие УИДа ссылки в выборке и если она там есть, то не получать её заново из УИДа из выборки, просто использовать ту ссылку, которую ты для условия в запросе использовал?
|
|||
31
LeoKeyn
23.03.18
✎
14:40
|
(30) так а если я не использую условие и мне нужно вывести все ссылки
|
|||
32
LeoKeyn
23.03.18
✎
14:43
|
(30) А не только по отбору
|
|||
33
Малыш Джон
23.03.18
✎
14:43
|
(32) значит SQL что-то не то с уидом делает. передавай в другую базу не уид, а строку
|
|||
34
LeoKeyn
23.03.18
✎
14:44
|
(33) то есть преобразовать его в строку до того как кинуть в базу? сейчас вот попробую
|
|||
35
LeoKeyn
23.03.18
✎
15:04
|
(33) не помогло, то же самое
|
|||
36
Малыш Джон
23.03.18
✎
15:15
|
(35) скрин из отладчика кинь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |