|   |   | 
| 
 | v7: Помогите, пожалуйста с запросом. | ☑ | ||
|---|---|---|---|---|
| 0
    
        GirlProgram 08.09.14✎ 14:14 | 
        Торговля и склад.
 Необходимо получить всю номенклатуру, которую в течении полугода заказывали у определенного поставщика. Перем Запрос, ТекстЗапроса; Запрос = СоздатьОбъект("Запрос"); ТекДата2 = ТекущаяДата(); Если ТекДата2>ПолучитьДатуТА() Тогда ТекДата2=ПолучитьДатуТА() КонецЕсли; ТекДата1 = ДобавитьМесяц(ТекДата2, -6); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ТекДата1 по ТекДата2; |Номенклатура = Регистр.Заказы.Номенклатура; |Поставщик = Регистр.Заказы.ДоговорПоставщика.Владелец; |ГРУППИРОВКА Номенклатура упорядочить по Номенклатура.Наименование; //|Условие(Поставщик = Контрагент); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Пока Запрос.Группировка("Номенклатура") = 1 Цикл Сообщить(Запрос.Номенклатура); Конеццикла; В итоге Запрос.Группировка("Номенклатура") = 0 :( Пробовала убрать условие - аналогичная ситуация, посмотрела, что в заданный период были заказы у поставщика. Что я не правильно делаю? | |||
| 1
    
        fedoss 08.09.14✎ 14:16 | 
        В запросе к регистру должна быть функция     | |||
| 2
    
        GirlProgram 08.09.14✎ 14:27 | 
        (1) ок, попробую     | |||
| 3
    
        GirlProgram 08.09.14✎ 14:31 | 
        (1) добавила такую функцию 
 |Функция НоменклатураМинОстатокСумма = Сумма(Номенклатура.МинОстаток); все равно пустой результат | |||
| 4
    
        fedoss 08.09.14✎ 14:34 | 
        Количество = Регистр.Заказы.КоличествоПриход;
 Функция ПриходКоличество = Приход(Количество); | |||
| 5
    
        КонецЦикла 08.09.14✎ 14:37 | 
        (3) Делай конструктором
 Тебе нужен мин остаток? Зачем лезть в регистр? И это... номенклатура и так будет упорядочена... ничего там после Группировка Номенклатура писать не нужно | |||
| 6
    
        GirlProgram 08.09.14✎ 20:24 | 
        (5) я и делала конструктором, мне вообще не нужно ни количество, ни минимальный остаток, мне нужна только номенклатура и поставщик и все.
 А как мне получить информацию о поставщике и номенклатуре у них заказанной за определенный период? Делать выборку из табличных частей документов? мне казалось через регистр будет быстрее.... | |||
| 7
    
        GirlProgram 08.09.14✎ 20:48 | 
        Сделала такой запрос:
 "//{{ЗАПРОС(Сформировать) |Период с ТекДата1 по ТекДата2; |Номенклатура = Регистр.Заказы.Номенклатура; |Поставщик = Регистр.Заказы.ДоговорПоставщика.Владелец; |Количество = Регистр.Заказы.КоличествоПриход; |Функция ПриходКоличество = Приход(Количество); |Группировка Номенклатура упорядочить по Номенклатура.Наименование; |Условие(Поставщик = Контрагент); |"//}}ЗАПРОС В итоге номенклатура выводится, но выводится вся, не обрабатывается Условие. | |||
| 8
    
        kobzon 08.09.14✎ 20:55 | 
        Какое? |Условие(Поставщик = Контрагент) Это условие не выполняется?     | |||
| 9
    
        GirlProgram 08.09.14✎ 21:01 | 
        (8) да, вернее выполняется как-то странно, выводится номенклатура этого поставщика и номенклатура, у которого не указан поставщик,  как такое может быть не понятно, другие поставщики не захватываются     | |||
| 10
    
        GirlProgram 08.09.14✎ 21:02 | 
        Плюс пытаюсь вывести такое сообщение:
 Сообщить(Запрос.Номенклатура + " " + Запрос.ПриходКоличество + " " + Запрос.Поставщик); Но выводится только Запрос.Номенклатура | |||
| 11
    
        kobzon 08.09.14✎ 21:14 | 
        Толи у меня ТиС какой то не такой, но у меня нет такого регистра.     | |||
| 12
    
        kobzon 08.09.14✎ 21:21 | 
        (7) Если плохо понимаешь запросы, регистры, делай как понимаешь. Как и хотела выборкой документов. Не думаю, что прям в миллион раз будет медленнее.     | |||
| 13
    
        GirlProgram 08.09.14✎ 21:23 | 
        (11) ничего не могу сказать, мне дали базу очень древнего релиза, которая подписывалась под организацию, возможно этот регистр самописный, с торговлей никогда дело не имела, а 7ку вообще забыла как страшный сон, а тут "Здрасте"... И ведь в регистр не заглянешь, чтобы понять, откуда номенклатура без поставщика берется.....     | |||
| 14
    
        GirlProgram 08.09.14✎ 21:25 | 
        (12) один фиг разбираться, в 8ке я бы уже давно все что угодно состряпала, а тут.... что не фраза - то какая-то фигня...     | |||
| 16
    
        GirlProgram 08.09.14✎ 21:31 | 
        (15) Возможно. Но мне нужна просто информация о том, какую номенклатуру можно заказать у этого поставщика, в 8ке есть привязка номенклатуры к поставщику, в 7ке этого нет, поэтому хотела извратиться и на основе сведений о уже заказанной номенклатуры у данного поставщика вывести инфу по возможной номенклатуре.     | |||
| 17
    
        kobzon 08.09.14✎ 21:33 | 
        (13) Рег = СоздатьОбъект("Регистр.Заказы");
 Рег.ВыбратьДвижения(ДатаНач, ДатаКон); Пока Рег.ПолучитьДвижение()=1 Цикл КонецЦикла; В цикле пропишешь свои реквизиты регистра и посмотришь откуда берутся пустые поставщики. | |||
| 18
    
        GirlProgram 08.09.14✎ 21:37 | 
        (17) все, я уже разобралась, эти пустые значения оказываются наименованиями папок, в которых расположена та или иная из заказанных номенклатур, теперь осталось понять, почему запрос мне выдает помимо номенклатуры еще и ее папку     | |||
| 19
    
        КонецЦикла 08.09.14✎ 21:39 | 
        (16) Ну это не проблема сделать... можно даже воспользоваться имеющимся механизмом свойств
 (18) Без групп - есть такие слова после группировки, может поможет А вообще, если дружишь с восьмеркой - то добро пожаловать в не кастрированный и дружелюбный T-SQL + 1C++ | |||
| 20
    
        GirlProgram 08.09.14✎ 21:40 | 
        Сделала так
 ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ТекДата1 по ТекДата2; |Номенклатура = Регистр.Заказы.Номенклатура.Наименование; |Поставщик = Регистр.Заказы.ДоговорПоставщика.Владелец; |Количество = Регистр.Заказы.КоличествоПриход; |Функция ПриходКоличество = Приход(Количество); |Группировка Номенклатура; |Условие(Поставщик = Контрагент); |"//}}ЗАПРОС все получилось | |||
| 21
    
        GirlProgram 08.09.14✎ 21:42 | 
        теперь вместо вывода в сообщении
 Пока Запрос.Группировка("Номенклатура") = 1 Цикл Сообщить(СокрЛП(Запрос.Номенклатура) + " " + СокрЛП(Запрос.ПриходКоличество) + " " + СокрЛП(Запрос.Поставщик)); Конеццикла; Мне нужно номенклатуру засунуть в Список ВыбНоменклатуры | |||
| 22
    
        kobzon 08.09.14✎ 21:43 | 
        (20)А что поменяла то?)
 (21) В ТЗ добавляй и там сворачивай. | |||
| 23
    
        GirlProgram 08.09.14✎ 21:44 | 
        (22) вместо Номенклатура = Регистр.Заказы.Номенклатура получаю
 Номенклатура = Регистр.Заказы.Номенклатура.Наименование | |||
| 24
    
        GirlProgram 08.09.14✎ 21:45 | 
        (23) + и тогда без групп выводится, только номенклатура     | |||
| 25
    
        kobzon 08.09.14✎ 21:49 | 
        (24) Ну для твоей цели наверное и так пойдет, а можно было как тебе сказали выше: после группировки написать Без Групп;     | |||
| 26
    
        GirlProgram 08.09.14✎ 21:51 | 
        (25) спасибо большое, но я хотела разобраться именно с тем, что в моем запросе не то, в итоге завершила следующим:
 ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ТекДата1 по ТекДата2; |Номенклатура = Регистр.Заказы.Номенклатура.Наименование; |НоменклатураСсылка = Регистр.Заказы.Номенклатура; |Поставщик = Регистр.Заказы.ДоговорПоставщика.Владелец; |Количество = Регистр.Заказы.КоличествоПриход; |Функция ПриходКоличество = Приход(Количество); |Группировка Номенклатура; |Условие(Поставщик = Контрагент); |"//}}ЗАПРОС Пока Запрос.Группировка("Номенклатура") = 1 Цикл ВыбНоменклатуры.ДобавитьЗначение(Запрос.НоменклатураСсылка); Конеццикла; Все получилось. Не знаю, насколько коряво, может можно было и как-то по другому сделать, но главное это работает так как мне надо :) Еще раз спасибо за участие. | |||
| 27
    
        GirlProgram 08.09.14✎ 21:52 | 
        (4) спасибо за подсказку про функцию     | |||
| 28
    
        Wirtuozzz 08.09.14✎ 22:01 | 
        Эти дьявольские манускрипты на 7.7 или 8.2?     | |||
| 29
    
        Wirtuozzz 08.09.14✎ 22:02 | 
        ... дебажутся то...     | |||
| 30
    
        КонецЦикла 08.09.14✎ 22:05 | 
        (28) Это убивец 8.3, пока не зарелизили...     | |||
| 31
    
        lavalit 09.09.14✎ 12:01 | 
        Напиши "Группировка Номенкалутра без групп"... Тогда группы(папки) не будут выводиться     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |