Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 16:05
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: 1Cv77 SQL Ошибка  (Прочитано 6398 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Sanan Celilli

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-12-10
  • Сайт: 
  • Профессия: Программист 7.7
Помогите, пожалуйста.  Создал новый отчет (1Сv77 бухгалтеря). В DBF версие все в порядке, отчет работает как надо. Объединяю  SQL версией. Выдает ошибку:
SQL State: 42000
Native: 4104
Message:[Microsoft] [ODBC SQL Server Driver] [SQL Server] the multi-part identifier "SC3427.PARENTID" could not be bound
Благодарю заранее.


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #1: 26 Фев 2013, 09:19 »
пример запроса выложи

Оффлайн Sanan Celilli

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-12-10
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #2: 27 Фев 2013, 09:08 »
Процедура SenedUzreSorgu(SechNV, Tapildi, IlkTar, SonTar)
   Перем Запрос, ТекстЗапроса;
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(SenedUzreSorgu)
   |Период с IlkTar по SonTar;
   |YolVereqi  = Документ.ЙолВярягяси.ТекущийДокумент;
   |NeqlVasit  = Документ.ЙолВярягяси.Автомобил;
   |IshGunleri = Документ.ЙолВярягяси.IshGunleri;
   |IshlemGunu = Документ.ЙолВярягяси.IshlemGunu;
   |Функция IshlenmishG = Сумма(IshGunleri);
   |Группировка NeqlVasit упорядочить по NeqlVasit.Производственное;
   |Условие(NeqlVasit в SechNV);
   |"//}}ЗАПРОС
   ;
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;

   Пока Запрос.Группировка(1) = 1 Цикл
       Если Запрос.IshlenmishG > 0 Тогда
           Tapildi = 1;
      Иначе
           Tapildi = 0;
      КонецЕсли;
   КонецЦикла;

КонецПроцедуры

Добавлено: 27 Фев 2013, 09:26

Суть в том, что надо выяснить по документу "ЙолВярягяси (путевой лист)" Автомобил вышел на работу, или нет? Автомобил (SechNV) находим предидущим запросом на основание справочника "ОсновныеСредство"

Последний раз редактировалось: Sanan Celilli; 27 Фев 2013, 09:26. Причина: Объединение сообщений

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #3: 27 Фев 2013, 10:05 »
А по русски не судьба писать?
в 1C для того и добавили возможность русского, чтобы было читабельно и сразу понятно.

У "Автомобил" точно есть реквизит "Производственное"?
IshGunleri - это точно числовой реквизит?
IlkTar, SonTar - это точно даты?
SechNV - это реквизит типа "Автомобил" или это список значений? если это реквизит, то лучше писать не
|Условие(NeqlVasit в SechNV), а |Условие(NeqlVasit = SechNV)

на вскидку запрос написан правильно,  но возможно вы и напутали что-то с идентификаторами, что с такими названиями реквизитов не мудрено.

Оффлайн Sanan Celilli

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-12-10
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #4: 27 Фев 2013, 10:29 »
Вы предполагаете, что в DBF версии с такими ошибками отчет может работать, а в SQL - е нет? Вед в в DBF версии отчет работает нормално !!!

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #5: 27 Фев 2013, 11:06 »
есть варианты, при которых в дбф работает, а в sql нет, и наоборот.

и не рекомендуется называть переменные запроса, точно также как и название реквизитов.

и кстати, вы уверены что проблема в этом запросе? у вас же еще один запрос есть, в котором SechNV определяете.

Другие отчеты (с запросами) нормально работают в SQL версии?
Добавлено: 27 Фев 2013, 12:10

в общем пробуй, выполнить запрос с одной переменной, например

|NeqlVasit  = Документ.ЙолВярягяси.Автомобил;
|Группировка NeqlVasit упорядочить по NeqlVasit.Производственное;

выполни с этим минимальным набором, если будет работать, значит в других переменных проблема - добавляй следующие, таким образом определишь в каком случае запрос валится.

и еще, реквизит "Производственное" случайно не строка неограниченной длинны?


Последний раз редактировалось: Herby; 27 Фев 2013, 12:10. Причина: Объединение сообщений

Оффлайн Sanan Celilli

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-12-10
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #6: 27 Фев 2013, 12:58 »
Болшое Вам спасибо. Мне стыдно, но дело было именно в "по NeqlVasit.Производственное;" должен был написать "по NeqlVasit.Наименование;"

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #7: 27 Фев 2013, 13:05 »
а что тогда Производственное? просто если такого реквизита нет, то в DBF тоже не сработало бы

Оффлайн Sanan Celilli

  • *
  • Сообщений: 36
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2009-12-10
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #8: 27 Фев 2013, 13:17 »
Реквизит Производственное есть в справочнике, но упорядочить по нему нелзя (это просто признак). И мне то же интересно как же ДБФ пропустил такое ?

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Re: 1Cv77 SQL Ошибка
« Ответ #9: 27 Фев 2013, 14:25 »
Реквизит Производственное есть в справочнике, но упорядочить по нему нелзя (это просто признак). И мне то же интересно как же ДБФ пропустил такое ?

потому что в DBF свои запросы, неизвестно как они там внутри строятся, но видимо каким-то образом это пропускается и не приводит к ошибке.

а в sql версии, запрос 1с на внутреннем уровне переводится в sql-запрос, и структура sql такое уже не могла обработать, вот и ошибка.

часто бывает когда ошибок нет, но результаты запросов на SQL и ДБФ разные. особенно это касается строковых переменных.

и вариантов где в одном формате базе работает, а в другом нет - масса. просто все на память и не воспроизведу сейчас. но было много проблем, когда работал в конторе где конфигурация одна и та же, но использовалась на разных форматах базы, и приходилось очень много отчетов править.
Добавлено: 27 Фев 2013, 14:32

Есть недокументированная функция Запрос.ВключитьSQL(0);
ее выключаешь перед запрос.выполнить(.....

и запрос тогда будет выполняться без использованием SQL технологий, ошибки бы у вас не было, сработало бы как и для DBF версии. но только производительность сильно бы понизилась.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
184 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
40 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
29 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 727
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal