Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Типизация (число прочтений - 1467 )
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Типизация
27. Апреля 2017 :: 08:25
Печать  
Запрос в мусул.
есть класс
Спр_Валюты


в нем:

Код
Выбрать все
Процедура _SQLCreate(парам) Экспорт
	текстЗапроса=" Select id,code,descr from SC89 where id="+парам;
	тз=рсСКЛ.ВыполнитьИнструкцию(текстЗапроса);
	тз.ВыбратьСтроки();
	Пока тз.ПолучитьСтроку() = 1 Цикл
		я().ид=тз.id;
		Сам().код=тз.code;
		Сам().наименование=тз.descr;
	КонецЦикла;
КонецПроцедуры // _SQLCrerate(парам)
 



в отчете
Код
Выбрать все
//*******************************************
Процедура Сформировать()
	РекордСет = СоздатьОбъект("ODBCRecordSet");
	РекордСет.SetDatabase(ТекущаяБазаДанных);
	текстЗапроса="SELECT id
	|			,code as артикул
	|			,descr as наименование
	|			,SP2301 as [Валюта $класс.Спр_Валюты]
	|	FROM "+префиксТаблиц+"SC13";
	Сообщить(текстЗапроса);



  Если РекордСет.Открыть(текстЗапроса)=0 Тогда
   Сообщить("Ошибка "+СокрЛП(РекордСет.ПолучитьОписаниеОшибки()),10);
  КонецЕсли;

  РекордСет.ПолучитьРезультатыВ_ТЗ(ТпРезультата.ТаблицаЗначений,1);
КонецПроцедуры
 



Жмем " Сформировать"

получаем :

Ошибка State 23000, native 1064, message [MySQL][ODBC 3.51 Driver][mysqld-5.5.47-0ubuntu0.14.04.1]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Валюта_1c_type_класс_1c_dot_Спр_Валюты]



  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация
Ответ #1 - 27. Апреля 2017 :: 09:48
Печать  
Так попробуй:

     |                  ,code as артикул
     |                  ,descr as наименование
     |                  ,SP2301 as Валюта
Если РекордСет.Открыть(текстЗапроса)=0 Тогда
   Сообщить("Ошибка "+СокрЛП(РекордСет.ПолучитьОписаниеОшибки()),10);
КонецЕсли;

РекордСет.УстТипыКолонок1С("Строка,Строка,$класс.Спр_Валюты");

РекордСет.ПолучитьРезультатыВ_ТЗ(ТпРезультата.ТаблицаЗначений,1);
  

1&&2&&3
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Типизация
Ответ #2 - 27. Апреля 2017 :: 11:24
Печать  
>Данный метод возможно вызывать только после подготовки запроса или открытия курсора


кста, если
Код
Выбрать все
	текстЗапроса="SELECT id
	|			,code as артикул
	|			,descr as наименование
	|			,SP2301 as [Валюта $class.Спр_Валюты]
	|	FROM "+префиксТаблиц+"SC13";
 



ставим в поставщикОДБЦ.МуСКЛ, то типизация работает.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3047
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация
Ответ #3 - 27. Апреля 2017 :: 11:53
Печать  
ок, тогда так:


|                  ,code as артикул
|                  ,descr as наименование
|                  ,SP2301 as Валюта_1c_type_класс_1c_dot_Спр_Валюты
Если РекордСет.Открыть(текстЗапроса)=0 Тогда
   Сообщить("Ошибка "+СокрЛП(РекордСет.ПолучитьОписаниеОшибки()),10);
КонецЕсли;
РекордСет.ПолучитьРезультатыВ_ТЗ(ТпРезультата.ТаблицаЗначений,1);
  

1&&2&&3
Наверх
 
IP записан
 
kriblya
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 313
Зарегистрирован: 24. Декабря 2007
Re: Типизация
Ответ #4 - 27. Апреля 2017 :: 12:08
Печать  
Вроде заработало.спасибо. Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать