|
|
Как в запросе преобразовать Число в строку
DiMel_77, Chameleon1980, JanK, shuhard, Alex7771, lirt82, am_bubnov, _Batoo, lubitelxml, Fedor-1971, obs191, ptiz, aka MIK, ALCAPONA, Prog_man, AndreyZhukov, PR, Indian, Bazooka, serpentt, Чужой, Вяйнемейнен, Chai Nic, PuhUfa, mr_K, takefive, vsy, ads55, Garykom, yanikolay, Джордж1, AlexYurg, Amra, Irbis, ДиВаH2, DJ Anthon, Anchorite, trad, Лодырь, lEvGl, МимохожийОднако, TormozIT
| ☑ |
|
0
lirt82
08.01.26
✎
14:28
|
Всем привет, делаю загрузку данных из файла эксель в таб. часть, и столкнулся с проблемой когда в файле эксель колонка ИНН тип общий а после передачи в запрос для последующей обработки в качестве параметра таблицы значении поле преобразуется в число, и ВЫРАЗИТЬ очищает поле.
///////////////
Данные = ПолучитьИзВременногоХранилища(Адрес);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(РасширениеExcelФайла);
Данные.Записать(ИмяВременногоФайла);
Документ = Новый ТабличныйДокумент;
Документ.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(Документ.Область(1, 1, Документ.ВысотаТаблицы, 6));
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
ТЗ_Excel = Новый ТаблицаЗначений;
ТЗ_Excel.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка"));
ТЗ_Excel.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка"));
ТЗ_Excel = ПЗ.Результат.Выгрузить();
/////////////////////
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаExcel.ФИО КАК СотрудникИзExcel,
| ТаблицаExcel.ИНН КАК ИНН_Сотрудника
|ПОМЕСТИТЬ ВТ_ТаблицаExcel
|ИЗ
| &ТЗ_ТаблицаExcel КАК ТаблицаExcel
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТаблицаExcel.СотрудникИзExcel КАК СотрудникИзExcel,
| ВЫРАЗИТЬ(ВТ_ТаблицаExcel.ИНН_Сотрудника КАК СТРОКА(19)) КАК ИНН_Сотрудника
|ИЗ
| ВТ_ТаблицаExcel КАК ВТ_ТаблицаExcel";
Запрос.УстановитьПараметр("ТЗ_ТаблицаExcel", ТЗ_Excel);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
|
|
|
1
Волшебник
08.01.26
✎
14:12
|
ИНН - это не число
задайте тип этой колонки "Строка" (формат=Текст) ещё в Ecxel
|
|
|
2
lirt82
08.01.26
✎
14:24
|
(1) сделал не помогло, в запросе поле числовое почему-то и очищается
|
|
|
3
Волшебник
08.01.26
✎
14:34
|
(2) сказки
|
|
|
4
lirt82
08.01.26
✎
14:42
|
(3) Что-то Построитель колдует при загрузке если цифру увидел то в ТЗ добавляет как число
|
|
|
5
Маленький Вопросик
08.01.26
✎
15:27
|
СокрЛП()
|
|
|
6
shuhard
08.01.26
✎
15:28
|
(4) ну да, проще всего в цикле по ТЗ форматом окучить
если акция разовая - в xls слева прилепить префикс из одной буквы, потом отрезать
|
|
|
7
Garykom
гуру
08.01.26
✎
16:20
|
(0) сделай значения в экселе настоящими строками (а не числами)
добавь ' (или ` уже не помню точно) впереди в каждой ячейке перед ИНН
|
|
|
8
Garykom
гуру
08.01.26
✎
16:22
|
Или тупо постобработай ТЗ после построителя перед передачей в запрос
Через Формат(Значение, "ЧГ=0")
|
|
|
9
Timon1405
08.01.26
✎
17:34
|
(0) ТЗ_Excel.Колонки.Добавить("ИННСтрокой", Новый ОписаниеТипов("Строка"));
и в цикле как в (8) обойти
(7) если разово нужно в текст то в экселе есть формула '=ТЕКСТ(ячейка,"0")', она точно помогает без '
|
|
|
10
craxx
08.01.26
✎
18:47
|
ТЗ_Excel = Новый ТаблицаЗначений;
ТЗ_Excel.Колонки.Добавить("ФИО", Новый ОписаниеТипов("Строка"));
ТЗ_Excel.Колонки.Добавить("ИНН", Новый ОписаниеТипов("Строка"));
ТЗ_Excel = ПЗ.Результат.Выгрузить();
Ничего не понимаю, а зачем добавляешь колонки, если все равно потом ТЗ_Excel получаешь из построителя?
|
|
|
11
lirt82
09.01.26
✎
09:17
|
(8) да, теперь помогло, благодарю
Для Каждого Стр Из ТЗ_Excel Цикл
Если ТипЗнч(Стр.ИНН) = Тип("Число") Тогда
Стр.ИНН = СтрЗаменить(Строка(Стр.ИНН), Символы.НПП, "")
КонецЕсли;
|
|
|
12
lirt82
09.01.26
✎
08:35
|
(10) если сразу ТЗ передавать в запрос в качестве параметра то будет ошибка "Содержимое объекта данных может быть выбрано только во временную таблицу", так как сначала нужно явно описать типы значении в ТЗ, иначе запрос не понимает что за таблица с какими свойствами.
|
|
|
13
Garykom
гуру
09.01.26
✎
10:18
|
(12) У тебя какие-то дикие заблуждения
1. Построитель затирает нахрен твои типы колонок и ставит свои
2. Тебе уже сказали про Формат в (8) какого хрена ты говнокодишь в (11)?
С чего взял что символом разделителем групп всегда будет НПП?
|
|