Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Простая выборка из справочника (число прочтений - 5456 )
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Простая выборка из справочника
20. Декабря 2016 :: 08:27
Печать  
Есть запрос

Код (SQL)
Выбрать все
SELECT
$спрТов.Бренд,
спрТов.DESCR
FROM
$Справочник.Номенклатура as спрТов
WHERE
спрТов.ISFolder= 2
AND
спрТов.IsMArk <> '*' 



спрТов.Бренд  - это строка, длина 20. В итоговой выборке эта колонка почему-то пустая. Почему - понять не могу, в самом DBF значения заполнены. Прошу помочь решить данную проблему Улыбка
  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #1 - 20. Декабря 2016 :: 10:03
Печать  
Это DBF таблица


А это результат запроса
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Простая выборка из справочника
Ответ #2 - 20. Декабря 2016 :: 11:01
Печать  
SashaL писал(а) 20. Декабря 2016 :: 08:27:
Есть запрос

Код (SQL)
Выбрать все
SELECT
$спрТов.Бренд,
спрТов.DESCR
FROM
$Справочник.Номенклатура as спрТов
WHERE
спрТов.ISFolder= 2
AND
спрТов.IsMArk <> '*' 



спрТов.Бренд  - это строка, длина 20. В итоговой выборке эта колонка почему-то пустая. Почему - понять не могу, в самом DBF значения заполнены. Прошу помочь решить данную проблему Улыбка


А попробуй так:
Код (SQL)
Выбрать все
SELECT
  спрТов.CODE
, спрТов.DESCR
, $спрТов.Бренд
FROM
  $Справочник.Номенклатура as спрТов
WHERE
  спрТов.ISFolder= 2 AND спрТов.IsMArk <> '*'
 

  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #3 - 20. Декабря 2016 :: 11:11
Печать  
К сожалению, результат не изменился
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Простая выборка из справочника
Ответ #4 - 20. Декабря 2016 :: 11:34
Печать  
Чем читаеш? (ODBC, OLEDB)
  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #5 - 20. Декабря 2016 :: 11:41
Печать  
Код
Выбрать все
Процедура СоединитьсяС_БД()
	Попытка
		СоединениеС_ИБ = СоздатьОбъект("OLEDBData");

		//СтрокаСоединения = "Provider=VFPOLEDB.1;Deleted=Yes;Data Source="
	   //+ ?(Путь="",КаталогИБ(),Путь) + ";Mode=ReadWrite;Extended Properties="";User ID="";"+
		//               "Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";

		СтрокаСоединения =("
		//|Provider=VFPOLEDB.1;
		////|Deleted=Yes;
		//|Null = Yes;
		//|Exclusive = No;
		//|SourceType = DBF;
		//|Data Source=" + КаталогИБ() + ";
		//|Mode=ReadWrite;
		//|Extended Properties="""";
		//|User ID="""";
		//|Password="""";
		//|Mask Password=False;
		//|Collating Sequence=MACHINE;
		//|DSN=""""");

		|Provider=VFPOLEDB.1;
		|Deleted=-1;
		|Null = Yes;
		|Exclusive = No;
		|SourceType = DBF;
		|Data Source=" + КаталогИБ() + ";
		|Mode=ReadWrite;
		|Extended Properties="""";
		|User ID="""";
		|Password="""";
		|Mask Password=False;
		|Collating Sequence=MACHINE;
		|DSN=""""");

        //"Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + КаталогИБ()+ ";Mode=ReadWrite;Extended Properties="";User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";

		РезультатСоединения = СоединениеС_ИБ.Соединение(СтрокаСоединения);

		тКомандаПрямогоЗапроса = СоединениеС_ИБ.СоздатьКоманду();

		тКомандаПрямогоЗапроса.Отладка(Отладка);

	Исключение
		Сообщить("ОШИБКА: "+ОписаниеОшибки());
		тКомандаПрямогоЗапроса = "";
	КонецПопытки;
КонецПроцедуры   



Закомментированные строки соединения тоже пробовались в качестве эксперимента, положительного результата не принесло Печаль
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Простая выборка из справочника
Ответ #6 - 20. Декабря 2016 :: 11:48
Печать  
Припоминается мне. Если в таблице есть реквизит (СТРОКА НЕОГРАНИЧЕННОЙ ДЛИНЫ), то их нужно переместить в конец списка реквизитов.
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: Простая выборка из справочника
Ответ #7 - 20. Декабря 2016 :: 12:00
Печать  
А лучше использовать 1Sqlite http://www.1cpp.ru/forum/YaBB.pl?num=1214205575
  
Наверх
 
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Простая выборка из справочника
Ответ #8 - 20. Декабря 2016 :: 20:15
Печать  
SashaL писал(а) 20. Декабря 2016 :: 08:27:
Есть запрос


VFPOLEDB не умеет догадываться что строка в 1с длинная, 1sqlie  умеет, но если на 1sqlie чем то противен, надо будет эту строку склеивать из кусочков....

leov-001 писал(а) 20. Декабря 2016 :: 11:48:
Припоминается мне. Если в таблице есть реквизит (СТРОКА НЕОГРАНИЧЕННОЙ ДЛИНЫ), то их нужно переместить в конец списка реквизитов.

Не забыл! Это нужно для заливки в MSSQL.

  
Наверх
www  
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #9 - 21. Декабря 2016 :: 05:50
Печать  
На sqlite буду переходить в крайнем случае Улыбка Уже как-то свыкся с 1сpp.

Так речь-то о том, что строковый реквизит фиксированной длины - 20 символов.  Озадачен Про неограниченную строку в курсе, что она по кусочкам хранится в 1SCONST
  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #10 - 22. Декабря 2016 :: 07:25
Печать  
Такс, вроде нашел причину, теперь надо понять почему так Улыбка В таблице sc33 всего 62 поля, так вот запрос выводит значения только до 43 поля включительно, а начиная с 44 выдает пустые значения
Версия 1cpp 3.2.2.0
  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #11 - 22. Декабря 2016 :: 07:55
Печать  
Версия 3.2.4.1 такое же поведение. Вопрос - это всегда так было, просто не обращал внимание или исключительная ситуация у меня в БД?
  
Наверх
 
IP записан
 
stepman1
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 86
Зарегистрирован: 02. Июля 2007
Re: Простая выборка из справочника
Ответ #12 - 22. Декабря 2016 :: 08:43
Печать  
Проверил для SQL базы.
Создал справочник с 55 реквизитами типа строка(10)

Все норм, включая 44+ реквизиты.
ДБФ не проверял.
  
Наверх
 
IP записан
 
SashaL
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 41
Зарегистрирован: 15. Октября 2008
Re: Простая выборка из справочника
Ответ #13 - 22. Декабря 2016 :: 09:00
Печать  
Запрос к стандартному файлу


Запрос к модифицированному файлу (подвинул поле на 43 место)


Архив для тестовhttp://filecloud.me/5zl0ybtjolib.html (два файла DBF, основной и модифицированный)
  
Наверх
 
IP записан
 
stepman1
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 86
Зарегистрирован: 02. Июля 2007
Re: Простая выборка из справочника
Ответ #14 - 22. Декабря 2016 :: 09:22
Печать  
проверил dbf
тоже норм
1с 7.7 025, 1с++ 3.2.4.3

70 реквизитов типа строка(10)

http://screencast.com/t/m56PyEQ7q
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать