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



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Помогите создать запрос по остаткам
17. Августа 2010 :: 09:49
Печать  
есть СписокЗначений с (значениями и группами значений Справочник.Номенклатура)

как задействовать данный СписокЗначений в ПрямомЗапросе?

УложитьСписокЗначений - укладывает только элементы
УложитьСписокГрупп - укладывает только группы значений
  

Всем спасибо, я не понял!
Наверх
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Помогите создать запрос по остаткам
Ответ #1 - 17. Августа 2010 :: 10:17
Печать  
УложитьСписокОбъектов(Список, #ВыбСписок,"Номенклатура");

ЗЫ: УложитьСписокЗначений /УложитьСписокГрупп ты вообще откуда взял ?
из класса какого -нить ?
Подмигивание
  
Наверх
 
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #2 - 17. Августа 2010 :: 16:19
Печать  
Класс "ПрямойЗапрос"
  

Всем спасибо, я не понял!
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #3 - 17. Августа 2010 :: 16:20
Печать  
а почему УложитьСписокОбъектов а не УложитьСписокЭлементов в чем разница?
  

Всем спасибо, я не понял!
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #4 - 17. Августа 2010 :: 16:22
Печать  
Помогите создать запрос для заданного списка значений.

Задача:

1) Построить запрос для определенного списка номенклатур в выбранной фирме по выбранному складу.
При условии что, текущий остаток по данной номенклатуре < МинОстатка.

Причем не просто по этой номенклатура а номенклатуре соедененной по ОсновномуСвойству

Пример:
Винт на 10х15 /2 шт./ мин остаток = 10/ Основное свойство  = Винты
Винт на 15х15 /5 шт./ мин остаток = 0/  Основное свойство = Винты

должно сработать данное условие по группировке ОсновноеСвойство / Винты < 10 шт.

использовать надо максимальный МинОстаток по данной группировке Винты
« Последняя редакция: 18. Августа 2010 :: 01:46 - qop_akaki »  

Всем спасибо, я не понял!
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #5 - 17. Августа 2010 :: 18:59
Печать  
А в где указан тот самый минимальный остаток?
И назови конфигурацию - я так понимаю что типовая ТиС?
  
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #6 - 18. Августа 2010 :: 00:03
Печать  
Комплексная, МинОстаток в справочник.Номенклатура
  

Всем спасибо, я не понял!
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #7 - 18. Августа 2010 :: 08:32
Печать  
Ну что где специалисты по ПрямымЗапросам???
  

Всем спасибо, я не понял!
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #8 - 18. Августа 2010 :: 08:37
Печать  
qop_akaki писал(а) 18. Августа 2010 :: 08:32:
Ну что где специалисты по ПрямымЗапросам???

Как бы тебе объяснить.
Никто никому не обязан на данном форуме ничем. В том числе это касается и тебя.
Ты просишь не помочь тебе исправить ошибку а сделать за тебя задачу ПОЛНОСТЬЮ.
В то время когда ты и сам мог бы прочитать документацию и примеры.
Возможно что кто-то откликнется как это часто бывает на этом форуме (я планировал к обеду написать запрос тебе).
Но при таком отношении - лично у меня желание делать задачу полностью и с 0 пропало.
  
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #9 - 18. Августа 2010 :: 08:49
Печать  
Ты не прав, я не прошу сделать задачу полностью как ты сказал.

     ТекстЗапросаОстатка = ПрямойЗапрос.ПодготовитьТекстЗапроса("
     |select Номенклатура [Номенклатура $Справочник.Номенклатура] , КоличествоОстаток, МинОстаток
     |from
     |      $РегистрОстатки.ОстаткиТМЦ(
     |            ,((Номенклатура IN (Select val from #ВыбНоменклатура)) AND (КоличествоОстаток < МинОстатка))
     |            ,(Номенклатура, МинОстаток)
     |            ,(Количество)) as Остатки");

А последний пост с моей стороны это просто крик о помощи, в работе которую надо было сдать вчера.  Плачущий

Если кого обидел извините!!!
  

Всем спасибо, я не понял!
Наверх
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #10 - 18. Августа 2010 :: 08:58
Печать  
Учитывая твой опыт прикрепи пожалуйста текстовый файл с модулем формы где полностью весь код.
Я поправлю и выложу обратно.
  
Наверх
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #11 - 18. Августа 2010 :: 09:18
Печать  
Сама обработка
  

___________________003.ert ( 105 KB | Загрузки )

Всем спасибо, я не понял!
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите создать запрос по остаткам
Ответ #12 - 18. Августа 2010 :: 10:31
Печать  
Код
Выбрать все
     |select Номенклатура [Номенклатура $Справочник.Номенклатура] , КоличествоОстаток, $Ном.МинОстаток
     |from
     |	$РегистрОстатки.ОстаткиТМЦ(
     |		,
     |		,(Номенклатура IN (Select val from #ВыбНоменклатура))
     |		,(Номенклатура)
     |		,(Количество))
     | as Остатки
     | left join справочник.Номенклатура как ном ON Остатки.Номенклатура = $Ном.ТекущийЭлемент
     |Where Остатки.КоличествоОстаток < $Ном.МинОстаток 



как то так...
  
Наверх
wwwICQ  
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #13 - 18. Августа 2010 :: 15:08
Печать  
Чет не работает?

     "
     |select Номенклатура [Номенклатура $Справочник.Номенклатура], vt_ra_405.КоличествоОстаток, Ном.МинОстаток
     |from (SELECT Номенклатура IN (Select val from vt_ВыбНоменклатура) , SUM(НоменклатураОстаток) AS НоменклатураОстаток
     |FROM (SELECT rg_405.Номенклатура AS Номенклатура FROM [РегистрИтоги.ОстаткиТМЦ] AS rg_405 SUM(Количество) AS КоличествоОстаток
     |WHERE rg_405.PERIOD = '20100801') AS vt_ra_405 GROUP BY Номенклатура HAVING (SUM(НоменклатураОстаток) <> 0)) as Остатки
     |left join [Справочник.Номенклатура] AS ном ON Остатки.Номенклатура = Ном.ID Where Остатки.КоличествоОстаток < Ном.МинОстаток
     |");
  

Всем спасибо, я не понял!
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #14 - 18. Августа 2010 :: 16:21
Печать  
2 qop_akaki
Когда берешь чужой запрос, все таки проверяй. Anatol ошибся и неправильно указал порядок параметров.
В конце концов документацию для кого писал?

Код
Выбрать все
     |select Номенклатура [Номенклатура $Справочник.Номенклатура] , КоличествоОстаток, $Ном.МинОстаток
     |from
     |	$РегистрОстатки.ОстаткиТМЦ(
     |		,(Номенклатура IN (Select val from #ВыбНоменклатура))
     |		,(Номенклатура)
     |		,(Количество)) as Остатки
     | left join справочник.Номенклатура как ном $nolock
     | on Остатки.Номенклатура = $Ном.ТекущийЭлемент
     |Where Остатки.КоличествоОстаток < $Ном.МинОстаток  



2 Anatol
Я не первый раз замечаю что ты пропускаешь $nolock. Для DBF-щика это не страшно, но для SQL-щика может обернуться неприятностями, причем неожиданными. Прекращай это  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите создать запрос по остаткам
Ответ #15 - 18. Августа 2010 :: 19:14
Печать  
vandalsvq писал(а) 18. Августа 2010 :: 16:21:
2 qop_akaki
Когда берешь чужой запрос, все таки проверяй. Anatol ошибся и неправильно указал порядок параметров.
В конце концов документацию для кого писал?


ну лезть каждый раз в доку (касаемо документации в ворде) лично мне напряжно, тем более когда запрос в браузере и его не проверить. ну а порядок параметров я брал из доки по 1с++ (http://www.1cpp.ru/docum/icpp/html/ODBC.html#id34)

главное чтобы смысл был понятен. ну а синтаксис дело  техники =)

может доку по Прямому запросу и Поставщику данных в инете где нибудь разместить?


vandalsvq писал(а) 18. Августа 2010 :: 16:21:
2 qop_akaki
2 Anatol
Я не первый раз замечаю что ты пропускаешь $nolock. Для DBF-щика это не страшно, но для SQL-щика может обернуться неприятностями, причем неожиданными. Прекращай это  Подмигивание


да, есть такой грешок...  как то небыло с этим проблем... да и ставлю я его в самом конце когда запрос отлажен

может по умолчанию nolock в запросы подставлять?
  
Наверх
wwwICQ  
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #16 - 19. Августа 2010 :: 08:05
Печать  
На данном этапе получилось: НЕ БЕЗ ВАШЕЙ ПОМОЩИ!

Выбрать Всю номенклатуру где Остаток < МинимальногоОстатка
По выбранной номенклатуре, фирме, складу.

Не совсем понял как можно добавить подчиненный справочник.

Справочник.Номенклатура.ОсновноеСвойство -> Справочник.СвойстваНоменклатуры -> Справочник.ЗначенияСвойств

     |Select
     |      ОстаткиПоВыбору.Номенклатура AS [Номенклатура $Справочник.Номенклатура],
     |      ОстаткиПоВыбору.Фирма AS [Фирма $Справочник.Фирмы],
     |      ОстаткиПоВыбору.Склад AS [Склад $Справочник.Склады],
     |      ОстаткиПоВыбору.КоличествоОстаток AS [КоличествоОстаток $Число],
     |      $СпрНоменклатура.МинОстаток,
     |      $СпрНоменклатура.БазоваяЕдиница AS [БазоваяЕдиница $Справочник.Единицы],
     |      $СпрНоменклатура.ОсновнаяЕдиница AS [ОсновнаяЕдиница $Справочник.Единицы],
     |      $СпрНоменклатура.ОсновноеСвойство AS [ОсновноеСвойство $Справочник.СвойстваНоменклатуры]
     |      $СпрСвойствНоменклатуры.ЗначениеСвойства AS [ЗначениеСвойства $Справочник.ЗначенияСвойств]
     |      
     |From
     |      $РегистрОстатки.ОстаткиТМЦ(,((Номенклатура IN (Select val from #ВыбНоменклатура)) AND (Фирма = :ВыбФирма) AND (Склад = :ВыбСклад)),
     |                                              (Номенклатура,Фирма,Склад),(Количество)) As ОстаткиПоВыбору
     |   left join Справочник.Номенклатура как СпрНоменклатура $nolock on ОстаткиПоВыбору.Номенклатура = $СпрНоменклатура.ТекущийЭлемент
     |Where ОстаткиПоВыбору.КоличествоОстаток < $СпрНоменклатура.МинОстаток
     |   left join Справочник.СвойстваНоменклатуры как СпрСвойствНоменклатуры $nolock on $СпрНоменклатура.ОсновноеСвойство = $СпрСвойствНоменклатуры.ТекущийЭлемент

  

Всем спасибо, я не понял!
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #17 - 19. Августа 2010 :: 08:29
Печать  
Anatol писал(а) 18. Августа 2010 :: 19:14:
может доку по Прямому запросу и Поставщику данных в инете где нибудь разместить?

Можно, но очень много работы. Как нибудь может потом. Пока только doc. Когда руки дойдут я попробую и als сделать и chm.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Anatol
Senior Member
****
Отсутствует


тыц, пыц, тыц!!!

Сообщений: 412
Зарегистрирован: 24. Апреля 2009
Re: Помогите создать запрос по остаткам
Ответ #18 - 19. Августа 2010 :: 08:59
Печать  
Код
Выбрать все
     |From
     |	$РегистрОстатки.ОстаткиТМЦ(,((Номенклатура IN (Select val from #ВыбНоменклатура)) AND (Фирма = :ВыбФирма) AND (Склад = :ВыбСклад)),
     |							    (Номенклатура,Фирма,Склад),(Количество)) As ОстаткиПоВыбору
     |   left join Справочник.Номенклатура как СпрНоменклатура $nolock on ОстаткиПоВыбору.Номенклатура = $СпрНоменклатура.ТекущийЭлемент
    |   left join Справочник.СвойстваНоменклатуры как СпрСвойствНоменклатуры $nolock on $СпрНоменклатура.ОсновноеСвойство = $СпрСвойствНоменклатуры.ТекущийЭлемент
    |Where ОстаткиПоВыбору.КоличествоОстаток < $СпрНоменклатура.МинОстаток 


  
Наверх
wwwICQ  
IP записан
 
janibeg
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 11
Зарегистрирован: 13. Февраля 2008
Re: Помогите создать запрос по остаткам
Ответ #19 - 20. Августа 2010 :: 05:58
Печать  
А вот такой вопрос:
Есть ли у кого обработка, типа той, о которой писал автор темы, но
с использованием стандартного множественного фильтра 1с7.
Был бы очень признателен, если бы можно было такую получить Улыбка
  
Наверх
 
IP записан
 
qop_akaki
Junior Member
**
Отсутствует



Сообщений: 40
Местоположение: Красноярск
Зарегистрирован: 12. Июля 2010
Пол: Мужской
Re: Помогите создать запрос по остаткам
Ответ #20 - 21. Августа 2010 :: 00:11
Печать  
стандартная обработка запроса выполняется секунды 3-4 на моей номенклатуре это не приемлемо
  

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