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


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Статья о использовании прямых запросов
29. Мая 2006 :: 03:47
Печать  
Т.к. количество вопросов по прямым запросам (извиняюсь за каламбур) неуклонно растет, а в доке ВСЕ ЕЩЕ остается не исправленная статья, предлагаю свою версию статьи Acsenta в моей доработке.

ЗЫ: Уважаемые авторы, может таки включите это в документацию?

На подходе доработка статьи по ВТ. Примеров действительно мало.
ЗЫ: trdm, накидай мне чего нарыл, попробую систематизировать.
____________________________________
Обновил немного.
Дописал из документации описание виртуальных таблиц. А то в примерах ниче не понятно было...
« Последняя редакция: 21. Августа 2007 :: 05:00 - Vaicartana »  

mod_002.zip ( 117 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #1 - 29. Мая 2006 :: 04:21
Печать  
Годится!
Только в документации это есть, если иметь ввиду те *.chm которые уже скомпилированы и выложены.
Без твоих правок, разумеется...
  
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #2 - 29. Мая 2006 :: 07:28
Печать  
Дык, и я про то, что в доке есть. Только
1. там Acsent сделал несколько ошибок, которые пока не поправлены
2. нет работы с DBF
3. Тишина про запрос к ЖурналуРасчетов
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #3 - 29. Мая 2006 :: 07:31
Печать  
Да, Алексей хорошо доработал статью Acsent-а по работе с ДБФ и журналом расчетом.
Рекомендую Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #4 - 30. Мая 2006 :: 18:31
Печать  
Блин, опять перепечатывать ))))
Это у меня щас настольная брошюрка, в купе с килограммовой книгой по скулю.
  
Наверх
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #5 - 23. Июня 2006 :: 06:30
Печать  
Хорошая статья.
Была бы еще лучше, если из нее сделать две: отделить работу с DBF от SQL. И вообще, как мне кажется, направление DBF пока  остается в роли бедного родственника. Приходится по крупицам собирать информацию из разных источников. К примеру замену механизма "CASE-WhEN-THEN-END" на функцию "ICASE()" смог найти только после поисков на "Itland" и список можно продолжать до посинения.
  

Константин
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #6 - 23. Июня 2006 :: 09:11
Печать  
На ITLAND есть замечательные факушные ветки, их читать можно даже перед сном.
  
Наверх
ICQ  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #7 - 23. Июня 2006 :: 10:05
Печать  
Согласен, но вроде бы как именно здесь официальный форум 1С++, поэтому именно здесь хочется увидеть максимум информации о 1С++ и о сем, что около.
  

Константин
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #8 - 23. Июня 2006 :: 10:44
Печать  
Цитата:
Хорошая статья.
Была бы еще лучше, если из нее сделать две: отделить работу с DBF от SQL.

Если ты напишешь такую статью - она будет прикреплена, не сомневайся.
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #9 - 23. Июня 2006 :: 10:51
Печать  
fez писал(а) 23. Июня 2006 :: 10:44:
Цитата:
Хорошая статья.
Была бы еще лучше, если из нее сделать две: отделить работу с DBF от SQL.

Если ты напишешь такую статью - она будет прикреплена, не сомневайся.

Сразу пожелание к статье, увидеть побольше специфичных примеров по работе с драйвером FoxPro.
Увидел ICASE() и сразу заинтересовался... По скулю можно и книгу прочесть, а вот по драйверу инфы раз-два и опчедся...
  
Наверх
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #10 - 23. Июня 2006 :: 13:29
Печать  
Цитата:
Если ты напишешь такую статью - она будет прикреплена, не сомневайся

О, если бы я умел это делать так красиво...
  

Константин
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #11 - 26. Июня 2006 :: 03:55
Печать  
Цитата:
Согласен, но вроде бы как именно здесь официальный форум 1С++, поэтому именно здесь хочется увидеть максимум информации о 1С++ и о сем, что около.

Этот ресурс еще молодой, все документированные знания остались там. Посему, еще долго будут народ отправлять туда за чтением.
ЗЫ: можно конечно попробовать перенести что-то.
  
Наверх
ICQ  
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #12 - 27. Июня 2006 :: 08:53
Печать  
Цитата:
Хорошая статья.
Была бы еще лучше, если из нее сделать две: отделить работу с DBF от SQL.

думается что это лишнее.
Если отделять одно от другого то получится просто две копии практически одного и тогоже.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #13 - 11. Октября 2006 :: 14:10
Печать  
Статья крайне хорошая и дополнения о базе ДБФ очень полезны. Я как раз сейчас оптимизирую одну ДБФ базу и это мне очень пригодилось. Но есть и некоторые неточности:

1) Подключение к базе. Там такой текст:
Цитата:
Для DBF версии рекомендуется использовать объект “ OLEDBData”(для версии 1С++ 2.0.0.0 и выше) следующим образом:
           База = СоздатьОбъект("OLEDBData");
           Соединение = "Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + КаталогИБ()+ ";Mode=ReadWrite;Extended Properties="";User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;DSN=""";
           Рез = База.Соединение(Соединение);
           Запрос = База.СоздатьКоманду();

RS = СоздатьОбъект("ODBCRecordset");
SQL версия не требует дополнительной инструкции подключения к базе
//RS.УстБД1С();
ТекстЗапроса = "
|SELECT
|      Спр.Code as Код,
|      Спр.Descr as Наименование
|FROM
|      sc433 as Спр";

ТЗ = RS.ВыполнитьИнструкцию(ТекстЗапроса);
ТЗ.ВыбратьСтроку();


Для подключения к БД используется OLEDBData, а для выполнения запроса ODBCRecordset. Естественно, это не работает...

Плюс, строка подключения некорректная (хотя и работает). Например, строковые константы указаны неправильно (две кавычки в тексте 1С превращает в одну). Также в строке есть ненужные параметры. Вот про строку подключения из МСДН:

Цитата:
After the connection is open, you can query the value of ConnectionString to determine the data source evaluated.

A connection string includes the following attribute keywords and values:

Provider= cVFPOLEDBProvider


Specifies the Visual FoxPro OLE DB Provider (VFPOLEDB).
Data Source= cPath


Specifies the path to the Visual FoxPro database or a folder containing free tables. For example, c:\Microsoft Visual FoxPro\Samples\Data\Testdata.dbc
DSN= cDSNName


Specifies an existing ODBC DSN.
Mode= cMode


Specifies one of the following: Read, ReadWrite, Share Deny None (default), Share Deny Read, Share Deny Write, or Share Exclusive, which includes the previous two modes.
For a complete explanation of connection string syntax, see the Microsoft OLE DB 2.5 Programmer's Reference and SDK Guide.


Также есть неточность здесь:

Цитата:
И еще: в DBF версии в модуле проведения ЗАПРОСЫ НЕ РАБОТАЮТ! Т.к. при этом происходит начало транзакции и драйвер FoxPro не может ничего получить из базы.


На самом деле в модуле проведения запросы работают. Но есть тонкости: выбирать данные из регистра нужно ДО того, как в модуле проведения будет как-либо произведена запись в регистр. После записи в регистр 1С запрещает блокировать таблицу регистра и Fox не может из нее вытащить данные. Запись в регистр происходит, например, при выполнении ДвижениеПриходВыполнить и ПРИ УДАЛЕНИИ ДВИЖЕНИЙ перед перепроведением документа. Поэтому, чтобы можно было использовать запросы в модуле документа, нужно отключить автоматическое удаление движений в "Конфигураторе". Соответственно, при выборке остатков нужно из них, в определенных случаях, вычитать собственные неудаленные движения документа. После выборки данных из регистра удаляем движения документа самостоятельно и делаем проведение с использованием собранных прямым запросом данных.

Вообще, Fox не может вытащить данные потому, что пытается заблокировать таблицу перед чтением. Если 1С ее занимает, то блокировка не удается. Из-за этого, в частности, прямые запросы не работают, если пытаются вытащить данные из регистра, по которому в текущий момент проводится документ. Меня это сильно разозлило - ведь 1С спокойно формирует отчеты по регистрам в момент проведения документов. Немного поковырял драйвер OLE DB (vfpoledb.dll) и повырезал там вызовы функции LockFile. В результате, теперь прямые запросы работают, даже если в этот момент проводится документ. Вероятно, и запросы к регистру в модуле проведения будут работать после модификации самого регистра. Естественно, такой драйвер нельзя использовать для записи данных в таблицу ДБФ - можно обгадить базу.

Также этот патч решает потенциальную проблему: ведь Fox при выполнении запроса блокирует таблицу. Соответственно, если вдруг кто-то захочет провести документ по регистру, по которому формируется запрос, то его ждет облом. Что при этом будет с 1С - не знаю, но для 1С это явно будет нештатная ситуация. Возможно, такой патч - это аналог скульного NOLOCK'а для ДБФ.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #14 - 11. Октября 2006 :: 16:09
Печать  
Собственно, сам пропатченный файл:
http://uzhast.fatal.ru/vfpoledb/
  
Наверх
 
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #15 - 20. Октября 2006 :: 01:16
Печать  
Для выполнения запроса используется переменная Запрос, а не RS. Это вообще то дополнение к статье Acsent'a, причем не обработанное им. Отсюда и некоторые недорозумения в тексте.

Строку подключения я брал из документации, как там написано так и у меня.

А вот насчет блокировок - оч. интересное дополнение. Попробую свой заброшенный класс Регистр доделать с учетом этих исправлений.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #16 - 20. Октября 2006 :: 08:17
Печать  
Подкидываю еще пару приколов прямых запросов в ДБФ Улыбка

Прикол 1. "Кеширование", блин.
В конфигурации есть несколько расходных накладных, которые делают практически одно и то же. (Конфигурация осталась еще с времен ТиС 7.0 - что-то вроде редакции 2.0). Для тестирования проведения этих документов есть юнит-тест. Он создает под каждый из этих документов приходную накладную, создает расходную накладную и проводит ее. Далее смотрит движения по регистрам. Так вот, обнаружил любопытственную вещь: после переписывания проведения под прямые запросы тест стал нормально проходить первый вид документов, а на остальных падал. Выяснил почему: при проведении второго вида документов документ видел нулевые остатки товара, хотя товар только что был специально оприходован. Если документ потом провести вручную, то он проводился. Если изменить порядок тестирования видов, то опять же первый вид документов проводится, а следующие падают. Вылечилось переподключением к базе: т.е. для глобального объекта вида "OLEDBData" при входе в модуль проведения выполняем сначала "Закрыть", а потом опять "Соединение". Очень похоже на то, что FoxPro пытается кешировать запросы, а отключить это я не смог...

Прикол 2. Несовместимость форматов 1С и FoxPro.
Создаем справочник "ТестовыйСправочник". В нем два реквизита: "Новый1" и "Новый2". Реквизиты текстовые. Создаем простейший запрос:

Процедура Сформировать()
     ТекстЗапроса = "
           |SELECT
           |      $Спр.Новый1 AS Новый1,
           |      $Спр.Новый2 AS Новый2
           |FROM
           |      $Справочник.ТестовыйСправочник AS Спр
           |";
           
     Запрос = СоздатьОбъект ("ПрямойЗапрос");
     Запрос.Текст = ТекстЗапроса;
     Выборка = Запрос.Выполнить ();
     Выборка.ВыбратьСтроку ();
КонецПроцедуры

Все в порядке, пока длины этих реквизитов не превышают 255 символов. Если для них выставить длину побольше, то у меня перестает отображаться второй реквизит - выдаются пустые значения. То же самое, если файл справочника открыть через Excel: первый реквизит виден, а второй - фиг. Получается, что прямыми запросами не удается вытащить реквизиты, которые следуют после реквизитов со слишком большой длиной.
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #17 - 22. Октября 2006 :: 07:14
Печать  
Цитата:
Прикол 1. "Кеширование", блин.

А попробуй с такой строкой подключения, плиз (акцент на OLE DB Services=0).
Код
Выбрать все
Путь = КаталогИБ();
Рез_oledb = db_oledb.Connect("Provider=VFPOLEDB.1;Deleted=Yes;Data Source=" + Путь + ";Mode=ReadWrite;User ID="";Password="";Mask Password=False;Collating Sequence=RUSSIAN;OLE DB Services=0");
 

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



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #18 - 22. Октября 2006 :: 15:29
Печать  
spock писал(а) 22. Октября 2006 :: 07:14:
А попробуй с такой строкой подключения, плиз (акцент на OLE DB Services=0).

Попробовал - не помогло. Строка такая:
Код
Выбрать все
		глСтрокаПрямогоПодключенияКБД = Шаблон ("Provider=VFPOLEDB.1; Mode=ReadWrite;OLE DB Services=0;
		|Data Source=[КаталогИБ ()];");
 

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



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #19 - 17. Ноября 2006 :: 06:08
Печать  
Для пополнения ФАК'а ссылка на драйвер FoxPro для OLE DB:
http://download.microsoft.com/download/b/f/b/bfbfa4b8-7f91-4649-8dab-9a647636036...

Файл надо скачать и установить, если при выполнении запросов к ДБФ-базе выдается ошибка "Класс не зарегистрирован".
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #20 - 06. Декабря 2006 :: 11:53
Печать  
Алексей, есть какие-нибудь изменения/дополнения к статье.
Я собираюсь ее закинуть в общую доку на 1С++.

ЗЫ Народ, если есть замечание к статье в части ДБФ, кидайте сюда.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
potap
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 10. Января 2007
Re: Статья о использовании прямых запросов
Ответ #21 - 10. Января 2007 :: 07:37
Печать  
В описании примера работы с виртуальными таблицами, в запросе
ТекстЗапроса = "
|SELECT
|      Рег.Товар as [Товар $Справочник.Номенклатура],
|      Рег.КоличествоНачальныйОстаток as КоличествоНачОст,
|      Рег.КоличествоПриход as КоличествоПриход,
|      Рег.КоличествоРасход as КоличествоРасход,
|      Рег.КоличествоКонечныйОстаток as КоличествоКонОст,
|      Рег.СуммаНачальныйОстаток as СуммаНачОст,
|      Рег.СуммаПриход as СуммаПриход,
|      Рег.СуммаРасход as СуммаРасход,
|      Рег.СуммаКонечныйОстаток as СуммаКонОст,
|FROM
|      $РегистрОстаткиОбороты.ОстаткиТоваров(:НачДата, :КонДата~,,,
|                               Склад = :ВыбСклад,
|                               (Товар), (Сумма, Количество)) as Рег";
есть ошибки, не надо запятой перед from и не хватает одной запятой при перечислении параметров.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #22 - 31. Января 2007 :: 20:51
Печать  
artbear писал(а) 06. Декабря 2006 :: 11:53:
Алексей, есть какие-нибудь изменения/дополнения к статье.
Я собираюсь ее закинуть в общую доку на 1С++.
ЗЫ Народ, если есть замечание к статье в части ДБФ, кидайте сюда.

Вообще маловато примеров работы. я в свое время специально серфил по инету для выяснения особенностей работы с виртуальными таблицами остатков, т.к в доке их не нашел...
  
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #23 - 01. Апреля 2007 :: 06:29
Печать  
Добавлены запросы с группировкой "Период"
Приведен пример работы с ИндексированнойТаблицей
Сделано несколько косметических изменений.

Вобщем с апгрейтом!

trdm, опять перепечатывай  Смех
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #24 - 02. Апреля 2007 :: 10:04
Печать  
Улыбка ну, перепечатывать рановато, а вот *.chm перекомпилю.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #25 - 02. Апреля 2007 :: 10:19
Печать  
А смысл перекомпилировать?
или ты вордовский файл разбираешь в html, подсовываешь его в проект 1С++/Documents.dsp и уже в МС ВС++ компилишь?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #26 - 02. Апреля 2007 :: 10:21
Печать  
Да разбираю, у меня своя, самопальная не 1С++-я.
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #27 - 02. Апреля 2007 :: 10:32
Печать  
Не понял, подробнее скажи, как разбираешь, и что за самопальная? Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #28 - 02. Апреля 2007 :: 14:26
Печать  
artbear писал(а) 02. Апреля 2007 :: 10:32:
Не понял, подробнее скажи, как разбираешь, и что за самопальная? Печаль

да не разбираю а просто в html сохраняю, сори.
а цсм-ка просто сборник с разных ресурсов по скулю и 1С, ничего сверхестественного.
У Янга есть, я ему высылал...
  
Наверх
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #29 - 02. Апреля 2007 :: 14:59
Печать  
trdm, так ждать от тебя примеров по ВТ или самому копать?
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #30 - 02. Апреля 2007 :: 17:41
Печать  
Vaicartana писал(а) 02. Апреля 2007 :: 14:59:
trdm, так ждать от тебя примеров по ВТ или самому копать?

Не жди, яж их не собирал, просто искал, а когда находил изучал.
сборник мой содержит 1С++  только "в том" числе, да и то ветки из факов...
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #31 - 03. Апреля 2007 :: 04:35
Печать  
Так выложил бы свой набор chm сюда или дай линк, где можно посмотреть Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #32 - 03. Апреля 2007 :: 08:15
Печать  
artbear писал(а) 03. Апреля 2007 :: 04:35:
Так выложил бы свой набор chm сюда или дай линк, где можно посмотреть Улыбка

http://ipload.ru/file.php?File=46756365023
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #33 - 11. Апреля 2007 :: 03:59
Печать  
Занес последний вариант статьи в доку 1С++ вместо исходной статьи acsent-a
http://www.1cpp.ru/forum/YaBB.pl?num=1173766505/4#4
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #34 - 05. Мая 2007 :: 08:35
Печать  
$ФлагРегистра для ДБФ. Что это?
  

Константин
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Статья о использовании прямых запросов
Ответ #35 - 10. Мая 2007 :: 09:00
Печать  
Цитата:
$ФлагРегистра для ДБФ. Что это?


То же, что и SQL -
факт проведения документа журнала по выбранному регистру
тип  N  длина 1   точность 0  
Код
Выбрать все
//.......
|AND Жур.$ФлагРегистра.РезервыТоваров = 1
 



Как правило использовать нецелесообразно, так как являясь дополнительным условием
только замедляет выполнение запроса.
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #36 - 10. Мая 2007 :: 15:44
Печать  
Я к тому, что метапарсер ругается на этот самый флаг.
  

Константин
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Статья о использовании прямых запросов
Ответ #37 - 14. Мая 2007 :: 09:01
Печать  
Цитата:
Я к тому, что метапарсер ругается на этот самый флаг.


Когда копирую твой "$ФлагРегистра " - то же ругань , видимо у тебя в примере шрифт какой то не тот .
Скопируй из моего сообщения или документации или набей вручную.
  
Наверх
 
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #38 - 21. Августа 2007 :: 00:35
Печать  
Наткнулся на глюк в работе ОДБСишного драйвера
Если в пути к базе есть одиночная кавычка ' то запрос выдает что не может найти ни одной таблицы базы, к чему бы не было произведено обращение.

Может и баян, но неприятно...
  
Наверх
 
IP записан
 
DimokSH
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 6
Зарегистрирован: 29. Марта 2010
Re: Статья о использовании прямых запросов
Ответ #39 - 11. Июня 2010 :: 07:53
Печать  
Есть ли универсальный отчет по регистру? на прямых запросах?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Статья о использовании прямых запросов
Ответ #40 - 11. Июня 2010 :: 08:12
Печать  
DimokSH писал(а) 11. Июня 2010 :: 07:53:
Есть ли универсальный отчет по регистру? на прямых запросах?
есть и не один..ищи.
  
Наверх
 
IP записан
 
arpeko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 11. Ноября 2010
Re: Статья о использовании прямых запросов
Ответ #41 - 11. Ноября 2010 :: 10:16
Печать  
Здравствуйте, помогите с запросом к другой базе в 1с7.
Делаю следующий запрос:

ТекстЗапроса="
|select
| descr as Наим, SP138 as ПолнНаим,
| $Спр.ТипНоменклатуры as [ТипНоменклатуры $Перечисление.ТипыНоменклатуры]
| from $Справочник.Номенклатура as Спр
|WHERE
|  $Спр.ТипНоменклатуры = $Перечисление.ТипыНоменклатуры.Продукция
|";         

Он мне возвращает данные в колонках Наим, ПолнНаим, ТипНоменклатуры, но почему-то в колонке ТипНоменклатуры ничего нет, если вместо строки
| $Спр.ТипНоменклатуры as [ТипНоменклатуры     $Перечисление.ТипыНоменклатуры]
записать
  $Спр.ТипНоменклатуры as ТипНоменклатуры
то выводит  '    CH   ', а мне нужно вывести 'Продукция', в чем недочет, второй день голову ломаю????
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #42 - 11. Ноября 2010 :: 10:19
Печать  
Так и должно быть. Нельзя получить ссылку на объект другой конфигурации. Все что ты можешь - получить параметры этого объекта - код, наименование, представление и любые другие, но не ссылку!
  
Наверх
 
IP записан
 
arpeko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 11. Ноября 2010
Re: Статья о использовании прямых запросов
Ответ #43 - 12. Ноября 2010 :: 06:30
Печать  
Dmitry The Wing писал(а) 11. Ноября 2010 :: 10:19:
Так и должно быть. Нельзя получить ссылку на объект другой конфигурации. Все что ты можешь - получить параметры этого объекта - код, наименование, представление и любые другие, но не ссылку!


Смысл  понял, но каким образом это можно сделать, можете показать?
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #44 - 12. Ноября 2010 :: 06:42
Печать  
arpeko писал(а) 12. Ноября 2010 :: 06:30:
Смысл  понял, но каким образом это можно сделать, можете показать?

Что именно?
  
Наверх
 
IP записан
 
arpeko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 11. Ноября 2010
Re: Статья о использовании прямых запросов
Ответ #45 - 12. Ноября 2010 :: 08:19
Печать  
Получить параметр...
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #46 - 12. Ноября 2010 :: 08:41
Печать  
ой ... это перечисление ... его никак нельзя удаленно получить, т.к. имя хранится только в метаданных ... я решал это путем копирования перечислений, т.к. это обычно неизменные значения.
Запросом получал порядковый номер, а по нему уже находил это значение локально.
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #47 - 12. Ноября 2010 :: 10:14
Печать  
Код
Выбрать все
|, case when $Спр.ТипНоменклатуры = $Перечисление.ТипыНоменклатуры.Продукция then 'Продукция'
|		when $Спр.ТипНоменклатуры = $Перечисление.ТипыНоменклатуры.Товар then 'Товар'
|	 else '' end as ТипНоменклатуры 



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


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Статья о использовании прямых запросов
Ответ #48 - 16. Ноября 2010 :: 02:25
Печать  
vivm писал(а) 12. Ноября 2010 :: 10:14:
case
Это хорошо, когда у перечисления мало значений, а когда много - проще скопировать...
К тому же, его использование явно не будет ограничено только запросом. Коль уже видна затребованность получения - значит перечисление будет использовано и где-то еще в конфе.
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Статья о использовании прямых запросов
Ответ #49 - 09. Февраля 2011 :: 10:17
Печать  
Можно в конфе, откуда копируешь, добавить справочник "ОбъектыМетаданных" и туда заполнить всю нужную информацию по внутренним ИД объектов, а затем прямым запросом join-ить этот справочник  по ИД нужных объектов, и из него тащить представление объекта.
  
Наверх
 
IP записан
 
Garry
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 10. Декабря 2011
Re: Статья о использовании прямых запросов
Ответ #50 - 10. Декабря 2011 :: 13:44
Печать  
  Друзья, может кто из Вас простыми доступными для физика-математика словами (опыт 5 лет в 1с7) объяснить схему построения ПРЯМОГО ЗАПРОСА в ДБФ-базе с помощью 1с++ ?
(что скачать, куда поставить и пр.)
  К примеру есть простенький запрос по долгам поставщикам из Регистра.ПОСТАВЩИКИ (ТиС) - как его "переделать" в ПРЯМОЙ ?

  Запрос таков -

Процедура Сформировать()      
     
     Запрос = СоздатьОбъект("Запрос");
     ТекстЗапроса =
     "//{{ЗАПРОС(Сформировать)
     |Период с ДатаНачала по ДатаКонца;
     |Контрагент = Регистр.Поставщики.Договор.Владелец;
     |Долг = Регистр.Поставщики.СуммаРуб;
     |Док  = Регистр.Поставщики.КредДокумент;
     |Функция КонОст = КонОст(Долг);
     |Группировка Контрагент;  
     |";  

     // Если ошибка в запросе, то выход из процедуры    
     Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
           Сообщить("Ошибка в запросе");
           Возврат;
     КонецЕсли;    
     
     Пока Запрос.Группировка(1)=1 Цикл
         
           Контр = Запрос.КонтрАгент;
           СуммаДолга  = Запрос.КонОст;
           Докум = Запрос.Док;
           
           Сообщить("агент ----- "+Контр);
           Сообщить("долг = "+СуммаДолга);
           Сообщить("документ = "+Докум);
                       
     КонецЦикла;
     
КонецПроцедуры
//************************************************
Буду премного благодарен за добрый совет.
В свою очередь могу быть полезен практически любыми консультациями по математике-физике.
Воскресенский Игорь.
garry366@mail.ru
Улыбка
  
Наверх
 
IP записан
 
Garry
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 10. Декабря 2011
Re: Статья о использовании прямых запросов
Ответ #51 - 10. Декабря 2011 :: 13:48
Печать  
   Друзья, может кто из Вас простыми доступными для физика-математика словами (опыт 5 лет в 1с7) объяснить схему построения ПРЯМОГО ЗАПРОСА в ДБФ-базе с помощью 1с++ ?
(что скачать, куда поставить и пр.)
   К примеру есть простенький запрос по долгам поставщикам из Регистра.ПОСТАВЩИКИ (ТиС) - как его "переделать" в ПРЯМОЙ ?

   Запрос таков -

Процедура Сформировать()      
     
     Запрос = СоздатьОбъект("Запрос");
     ТекстЗапроса =
     "//{{ЗАПРОС(Сформировать)
     |Период с ДатаНачала по ДатаКонца;
     |Контрагент = Регистр.Поставщики.Договор.Владелец;
     |Долг = Регистр.Поставщики.СуммаРуб;
     |Док  = Регистр.Поставщики.КредДокумент;
     |Функция КонОст = КонОст(Долг);
     |Группировка Контрагент; 
     |";   

     // Если ошибка в запросе, то выход из процедуры   
     Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
           Сообщить("Ошибка в запросе");
           Возврат;
     КонецЕсли;   
     
     Пока Запрос.Группировка(1)=1 Цикл
        
           Контр = Запрос.КонтрАгент;
           СуммаДолга  = Запрос.КонОст;
           Докум = Запрос.Док;
           
           Сообщить("агент ----- "+Контр);
           Сообщить("долг = "+СуммаДолга);
           Сообщить("документ = "+Докум);
                       
     КонецЦикла;
     
КонецПроцедуры
//************************************************
Буду премного благодарен за добрый совет.
В свою очередь могу быть полезен практически любыми консультациями по математике-физике.
Воскресенский Игорь.
garry366@mail.ru
Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Статья о использовании прямых запросов
Ответ #52 - 11. Декабря 2011 :: 15:23
Печать  
Скачиваешь статью из первого сообщения и делаешь для начала, по образу и подобию.
Потом читаешь про использование индексов в фоксе, и переписываешь получившийся запрос.
А вот когда надоесть играться с фоксом, смотришь в сторону 1sqlite.
Как-то так.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать