Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ошибка в виртуальной таблице РегистрОстаткиОбороты (число прочтений - 1589 )
ol
Senior Member
****
Отсутствует


1C++ rocks!

Сообщений: 272
Местоположение: Санкт-Петербург
Зарегистрирован: 24. Января 2009
Пол: Мужской
ошибка в виртуальной таблице РегистрОстаткиОбороты
18. Апреля 2010 :: 10:41
Печать  
обнаружил в РегистрОстаткиОбороты (в других не проверял):
если в условии встречается строка, в которой содержится '--'
выдает ошибку, например

Код
Выбрать все
select
	  ОстаткиПоРасчетам.Контрагент [Контрагент $Справочник.Контрагенты],
	  ОстаткиПоРасчетам.РасчДокумент [РасчДокумент $Документ],
	  ОстаткиПоРасчетам.СуммаКонечныйОстаток
from $РегистрОстаткиОбороты.Взаиморасчеты(:ДатаРасчета,,,,
	  inner join $Справочник.Контрагенты as СпрКонтрагенты (nolock) on СпрКонтрагенты.id = Контрагент
,
$СпрКонтрагенты.ИНН = '-----------'
	  (Контрагент, РасчДокумент), Сумма
) as ОстаткиПоРасчетам

 

  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ошибка в виртуальной таблице РегистрОстаткиОбороты
Ответ #1 - 19. Апреля 2010 :: 04:54
Печать  
Передавай это условие в виде параметра, например так:
Код
Выбрать все
select
	  ОстаткиПоРасчетам.Контрагент [Контрагент $Справочник.Контрагенты],
	  ОстаткиПоРасчетам.РасчДокумент [РасчДокумент $Документ],
	  ОстаткиПоРасчетам.СуммаКонечныйОстаток
from $РегистрОстаткиОбороты.Взаиморасчеты(:ДатаРасчета,,,,
	  inner join $Справочник.Контрагенты as СпрКонтрагенты (nolock) on СпрКонтрагенты.id = Контрагент
,
$СпрКонтрагенты.ИНН = :Усл1
	  (Контрагент, РасчДокумент), Сумма
) as ОстаткиПоРасчетам
РС.УстановитьТекстовыйПараметр("Усл1","-----------");
 


У меня другая проблема была, с датой + время, т.е. вида Date>'20100215 13:00:00' - парсер реагировал на двоеточие. Поэтому сделал для себя такую функцию:
Код
Выбрать все
Функция ВыделитьТексты(вхТекст)
     рТекст = СтрЗаменить(СтрЗаменить(вхТекст,РазделительСтрок,""),"'",РазделительСтрок);
     выхТекст = "";
     счПер = 1;
     Для Сч=1 По СтрКоличествоСтрок(рТекст) Цикл
	    Если Сч%2=1 Тогда
		   выхТекст=выхТекст+СтрПолучитьСтроку(рТекст,Сч);
	    Иначе
		   выхТекст=выхТекст+":пр"+счПер;

		   счПер=счПер+1;
	    КонецЕсли;
     КонецЦикла;
     Возврат выхТекст;
КонецФункции
//---------------------------------------------
 

  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать