Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Можно мозг сломать (число прочтений - 7326 )
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Можно мозг сломать
04. Мая 2009 :: 09:36
Печать  
Люди добры, скажите, нет ли визуального мастера прямых запросов. Сил уже нет!
  
Наверх
ICQ  
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #1 - 04. Мая 2009 :: 09:52
Печать  
Есть похожий на 1с 8.х
http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/0
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #2 - 04. Мая 2009 :: 09:55
Печать  
Delorn писал(а) 04. Мая 2009 :: 09:52:
Есть похожий на 1с 8.х
http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/0


Это консоль. В ней же все равно руками надо писать.
А руками запрос я уже неделю пишу.
  
Наверх
ICQ  
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #3 - 04. Мая 2009 :: 09:59
Печать  
Нашел вот это http://www.1cpp.ru/forum/YaBB.pl?num=1148127139/0

Альтернатив нет никаких?
  
Наверх
ICQ  
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #4 - 04. Мая 2009 :: 10:00
Печать  
там есть пример http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/96#96
Вот в нем есть кнопка Построить запрос. Может быть это то что тебе надо.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно мозг сломать
Ответ #5 - 04. Мая 2009 :: 10:03
Печать  
BuZZZard писал(а) 04. Мая 2009 :: 09:59:
Нашел вот это http://www.1cpp.ru/forum/YaBB.pl?num=1148127139/0

Альтернатив нет никаких?

А чем не нравится?
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #6 - 04. Мая 2009 :: 10:06
Печать  
JohnyDeath писал(а) 04. Мая 2009 :: 10:03:
BuZZZard писал(а) 04. Мая 2009 :: 09:59:
Нашел вот это http://www.1cpp.ru/forum/YaBB.pl?num=1148127139/0

Альтернатив нет никаких?

А чем не нравится?


Я еще не могу сказать нравится или нет. Спрашиваю чтобы исключить заведомо неправильный выбор из альтернативных вариантов.
  
Наверх
ICQ  
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #7 - 04. Мая 2009 :: 10:08
Печать  
Хорошая вещь Улыбка я тебе тоже самое показывал только для режима предприятие... чтоб можно было по отлаживать запрос.
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #8 - 04. Мая 2009 :: 10:08
Печать  
Delorn писал(а) 04. Мая 2009 :: 10:00:
там есть пример http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/96#96
Вот в нем есть кнопка Построить запрос. Может быть это то что тебе надо.

Кнопка Конструктор запросов? Она не активна.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно мозг сломать
Ответ #9 - 04. Мая 2009 :: 10:12
Печать  
BuZZZard писал(а) 04. Мая 2009 :: 10:08:
Delorn писал(а) 04. Мая 2009 :: 10:00:
там есть пример http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/96#96
Вот в нем есть кнопка Построить запрос. Может быть это то что тебе надо.

Кнопка Конструктор запросов? Она не активна.

С консолью идёт дока. Там всё написано Подмигивание
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #10 - 04. Мая 2009 :: 10:19
Печать  
JohnyDeath писал(а) 04. Мая 2009 :: 10:12:
BuZZZard писал(а) 04. Мая 2009 :: 10:08:
Delorn писал(а) 04. Мая 2009 :: 10:00:
там есть пример http://www.1cpp.ru/forum/YaBB.pl?num=1193394153/96#96
Вот в нем есть кнопка Построить запрос. Может быть это то что тебе надо.

Кнопка Конструктор запросов? Она не активна.

С консолью идёт дока. Там всё написано Подмигивание


"При работе с ИБ в формате .DBF метод ничего не делает и возвращает пустую строку."
Это все что нашел.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Можно мозг сломать
Ответ #11 - 04. Мая 2009 :: 10:38
Печать  
Ну делай конструктором под SQL, под ДБФ совсем мало надо будет подправить
Цитата:
а. Виртуальные таблицы  не поддерживаются в ДБФ.
б. Некоторые таблицы в SQL варианте начинаются с «_» : 1SJourn и _1SJourn
в. Вместо поля DATE_TIME_IDDOC используется date в FoxPro
г. в ДБФ  - РегКассаНач.period = :ПредМесяц~~, в SQL - РегКассаНач.period = :ПредМесяц
д. В Fox служебные слова нерегистрозависимы
е. Вместо CASE используется функция ICASE
ж. В Fox нет (NOLOCK) и GROUPING
з. Специфические функции Fox как правило не поддерживаются в SQL.
дополнительные сведения см. в документации(http://www.1cpp.ru/forum/YaBB.pl?num=1185783552) к Fox раздел "Масштабирование Базы Данных Visual FoxPro в Базу Данных SQL Server"
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #12 - 04. Мая 2009 :: 10:56
Печать  
У меня нет SQL. Есть только DBF и OLEDB.

ПС. Еще нет боксерской груши, о которой постоянно думаю когда начинаю писать прямые запросы.
  
Наверх
ICQ  
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #13 - 04. Мая 2009 :: 11:18
Печать  
Можете меня застрелить за тупость!

Задача: Собрать контров и их адреса из документов. Контр берется из документа ПродажаТМЦ, адрес доставки из документа ЗаявкаКлиента, ссылка на который есть в общем реквизите Документ-основание документа ПродажаТМЦ.

Собрал запрос в qryMaker, перекинул в qryConsole, убрал табуляцию во FROM, убрал алиасы в квадратных скобках, добавил параметры.... Получилось:
Код
Выбрать все
SELECT
    $ПродажаТМЦ.Контрагент Контрагент
    ,$ЗаявкаКлиента.АдресДоставки АдресДоставки
FROM
    $Документ.ПродажаТМЦ AS ПродажаТМЦ
INNER JOIN
    1SJOURN AS Журнал ON ПродажаТМЦ.IDDOC = Журнал.IDDOC
INNER JOIN
    $Документ.ЗаявкаКлиента AS ЗаявкаКлиента ON ЗаявкаКлиента.IDDOC = Журнал.$ОбщийРеквизит.ДокументОснование
CROSS JOIN
    $ДокументСтроки.ПродажаТМЦ AS ПродажаТМЦСтроки
WHERE
    Жур.Date BETWEEN :НачДата~~ AND :КонДата~~
    AND Жур.Closed = 1
GROUP BY
    $ПродажаТМЦ.Контрагент
    ,$ЗаявкаКлиента.АдресДоставки
 



Пишет ошибку: qryConsole : Command contains unrecognized phrase/keyword.

Убрал:
Код
Выбрать все
CROSS JOIN
    $ДокументСтроки.ПродажаТМЦ AS ПродажаТМЦСтроки 



Пишет ошибку: qryConsole : Путь к базе
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Можно мозг сломать
Ответ #14 - 04. Мая 2009 :: 11:27
Печать  
Жур на
Журнал

Журнал.$ОбщийРеквизит.ДокументОснование
на
Right(Журнал.$ОбщийРеквизит.ДокументОснование,9)
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #15 - 04. Мая 2009 :: 11:29
Печать  
kiruha писал(а) 04. Мая 2009 :: 11:27:
Жур на
Журнал

Видимо уже глаз замылился.

Код
Выбрать все
SELECT
    $ПродажаТМЦ.Контрагент Контрагент
    ,$ЗаявкаКлиента.АдресДоставки АдресДоставки
FROM
    $Документ.ПродажаТМЦ AS ПродажаТМЦ
INNER JOIN
    1SJOURN AS Журнал ON ПродажаТМЦ.IDDOC = Журнал.IDDOC
INNER JOIN
    $Документ.ЗаявкаКлиента AS ЗаявкаКлиента ON ЗаявкаКлиента.IDDOC = Right(Журнал.$ОбщийРеквизит.ДокументОснование,9)
WHERE
    Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~
    AND Журнал.Closed = 1
GROUP BY
    $ПродажаТМЦ.Контрагент
    ,$ЗаявкаКлиента.АдресДоставки
 



Выдает ошибку: qryConsole : Error # 3021 : 0 : BOF или EOF имеет значение True, либо текущая запись удалена. Для выполняемой операции требуется текущая запись.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Можно мозг сломать
Ответ #16 - 04. Мая 2009 :: 11:51
Печать  
Попробуй выполнить в ДБФ - вроде ошибок не вижу

если АдресДоставки не неограниченной длины
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #17 - 04. Мая 2009 :: 11:53
Печать  
kiruha писал(а) 04. Мая 2009 :: 11:51:
Попробуй выполнить в ДБФ - вроде ошибок не вижу


В смысле без консоли?

Убрал
Код
Выбрать все
AND Журнал.Closed = 1 


Ошибка пропала. Даже что- то возвращает. Но как-то мало....
Сейчас попробую без консоли посмотреть.
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Можно мозг сломать
Ответ #18 - 04. Мая 2009 :: 11:58
Печать  
Наверно скобки были нужны перед AND
(Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~)
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #19 - 04. Мая 2009 :: 12:20
Печать  
Код
Выбрать все
SELECT
    $ПродажаТМЦ.Контрагент as [Контрагент $Справочник.Контрагенты]
    ,$ЗаявкаКлиента.АдресДоставки as [АдресДоставки $Справочник.АдресаДоставки]
FROM
    $Документ.ПродажаТМЦ AS ПродажаТМЦ
INNER JOIN
    1SJOURN AS Журнал ON ПродажаТМЦ.IDDOC = Журнал.IDDOC
INNER JOIN
    $Документ.ЗаявкаКлиента AS ЗаявкаКлиента ON ЗаявкаКлиента.IDDOC = Right(Журнал.$ОбщийРеквизит.ДокументОснование,9)
WHERE
    (Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~)
GROUP BY
    $ПродажаТМЦ.Контрагент
    ,$ЗаявкаКлиента.АдресДоставки
 



Этот вариант заработал.

Но как выбрать только проведенные документы?
Вариант
Код
Выбрать все
SELECT
    $ПродажаТМЦ.Контрагент as [Контрагент $Справочник.Контрагенты]
    ,$ЗаявкаКлиента.АдресДоставки as [АдресДоставки $Справочник.АдресаДоставки]
FROM
    $Документ.ПродажаТМЦ AS ПродажаТМЦ
INNER JOIN
    1SJOURN AS Журнал ON ПродажаТМЦ.IDDOC = Журнал.IDDOC
INNER JOIN
    $Документ.ЗаявкаКлиента AS ЗаявкаКлиента ON ЗаявкаКлиента.IDDOC = Right(Журнал.$ОбщийРеквизит.ДокументОснование,9)
WHERE
    (Журнал.Date BETWEEN :НачДата~~ AND :КонДата~~)
    AND Журнал.Closed = 1
GROUP BY
    $ПродажаТМЦ.Контрагент
    ,$ЗаявкаКлиента.АдресДоставки
 


Не возвращает результатов. Хотя документ возвращаемый при первом варианте проведен.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно мозг сломать
Ответ #20 - 04. Мая 2009 :: 12:34
Печать  
У тебя скорее всего есть бухия, а там Closed = 5 (обычно) для проведенных.
Точнее смотри у себя в табличке общего журнала
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #21 - 04. Мая 2009 :: 12:37
Печать  
JohnyDeath писал(а) 04. Мая 2009 :: 12:34:
У тебя скорее всего есть бухия, а там Closed = 5 (обычно) для проведенных.
Точнее смотри у себя в табличке общего журнала


Вот жесть! Да, она тоже есть.
Заработало!

Осталось самую малость. Фильтр номенклатуры, сумма количества в документах, сумма количества документов.....
Страшно представить какие камни ждут дальше.
  
Наверх
ICQ  
IP записан
 
Delorn
YaBB Newbies
*
Отсутствует


1c user

Сообщений: 9
Зарегистрирован: 07. Августа 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #22 - 04. Мая 2009 :: 12:40
Печать  
Вот тут есть описание этих моментов.
http://www.1cpp.ru/forum/YaBB.pl?num=1148874473
  
Наверх
 
IP записан
 
BuZZZard
Full Member
***
Отсутствует



Сообщений: 112
Местоположение: Калининград
Зарегистрирован: 15. Октября 2007
Пол: Мужской
Re: Можно мозг сломать
Ответ #23 - 04. Мая 2009 :: 12:43
Печать  
Delorn писал(а) 04. Мая 2009 :: 12:40:
Вот тут есть описание этих моментов.
http://www.1cpp.ru/forum/YaBB.pl?num=1148874473


Это у меня есть.
А вот опыта и понимания в каких случаях где и что искать нету.
Перечитывать всю документацию при каждом вопросе в поисках похожего вопроса просто нереально.
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно мозг сломать
Ответ #24 - 04. Мая 2009 :: 16:00
Печать  
BuZZZard писал(а) 04. Мая 2009 :: 10:56:
У меня нет SQL. Есть только DBF и OLEDB.

ПС. Еще нет боксерской груши, о которой постоянно думаю когда начинаю писать прямые запросы.

достаточно обить стены матрацами..
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать