|
v7: Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
Mad88
20.09.17
✎
12:35
|
Добрый день
//Остатки РегОТ=СоздатьОбъект("Регистр.Склад"); Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество"); //Запрос ТТ=СоздатьОбъект("ТаблицаЗначений"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Запросище) |Подразделение = Регистр.Склад.Подразделение; |Количество = Регистр.Склад.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Условие(Номенклатура = Товары.Номенклатура); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда //Возврат; КонецЕсли; Запрос.Выгрузить(ТТ,0,0); Пока ТТ.ПолучитьСтроку()=1 Цикл Сообщить(ТТ.КоличествоКонОст); КонецЦикла; В общем вот запрос, выгружаю его в ТЗ, затем делаю цикл по ТЗ, но в цикле делается ровно 0 итерацияй, то есть в Сообщить() не заходит, остатки есть, подскажите что делаю не так. |
|||
1
Джинн
20.09.17
✎
12:39
|
Условие кривое.
|
|||
2
Джинн
20.09.17
✎
12:40
|
Да и период неплохо бы.
|
|||
3
Builder
20.09.17
✎
12:44
|
(2) Период не обязательно, остатки же.
А вот условие не в тему совсем. |
|||
4
Builder
20.09.17
✎
12:47
|
Да и вообще зачем запрос если остаток уже получен тут:
Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество"); |
|||
5
Mad88
20.09.17
✎
12:53
|
(4) Хочу получить данные запросом, и что не так с условием? Мне по конкретной номенклатуре надо
|
|||
6
Herby
20.09.17
✎
12:53
|
условие возможно кривое, ну и группировки у тебя нет. а итоги ты в ТТ не выгружаешь
|
|||
7
Builder
20.09.17
✎
12:56
|
Для начала добавить в запрос номенклатуру.
|Номенклатура = Регистр.Номенклатура; |
|||
8
Builder
20.09.17
✎
12:57
|
+ к (7)
|Номенклатура = Регистр.Склад.Номенклатура; |
|||
9
Джинн
20.09.17
✎
12:58
|
(3) Тогда только не ТА будут.
|
|||
10
1dvd
20.09.17
✎
13:00
|
(5) Товары - эт чо?
|
|||
11
Mad88
20.09.17
✎
13:04
|
(10) Товары это табличная часть справочники, там все нормально так конкретная Номенклатура
|
|||
12
1dvd
20.09.17
✎
13:05
|
(11) и давно в клюшках у ТЧ есть имя?
|
|||
13
Herby
20.09.17
✎
13:15
|
(11) однако)
|
|||
14
Mad88
20.09.17
✎
13:20
|
(12) Ну кароче это справочник который выступает в роли табличной части
|
|||
15
toypaul
гуру
20.09.17
✎
13:21
|
без Группировка не будет работать
|
|||
16
toypaul
гуру
20.09.17
✎
13:22
|
вот что бывает когда 8шнки в 7ку лезут :)
|
|||
17
Mad88
20.09.17
✎
13:37
|
Не знаю мужики написал вот так
"//{{ЗАПРОС(Запросище) |Номенклатура = Регистр.Склад.Номенклатура |Количество = Регистр.Склад.Количество |Функция КоличествоКонОст = КонОст(Количество) |Группировка Номенклатура |Условие(Номенклатура) = Товары.Номенклатура |"//}}ЗАПРОС Но чего - то не работает, возможно я чего то не понимаю. |
|||
18
Ёпрст
20.09.17
✎
13:39
|
(17) Тебе еще в начале обсуждения сказали:
выкинь вот это |Условие(Номенклатура) = Товары.Номенклатура к едрени фени. |
|||
19
Ёпрст
20.09.17
✎
13:39
|
потом, сообщи общественности, что есть Товары у тебя
|
|||
20
Ёпрст
20.09.17
✎
13:39
|
ну и ; везде отсутствует в тексте запроса.
|
|||
21
Zypse
20.09.17
✎
13:50
|
(0) Мда
Перед циклом нужно ТТ.Выбратьстроки() |
|||
22
Mad88
20.09.17
✎
13:53
|
(19) Справочник
|
|||
23
Mad88
20.09.17
✎
13:59
|
(18) а как без условия то тогда? Мне нужно по конкретной номенклатуре
|
|||
24
povar
20.09.17
✎
13:59
|
(22) где это в коде видно ?
|
|||
25
Mad88
20.09.17
✎
14:05
|
(24) Товары = СоздатьОбъект("Справочник.СпецпредложенияТовары");
Товары.ИспользоватьВладельца(Пакет); Товары.ВыбратьЭлементы(); Пока Товары.ПолучитьЭлемент() = 1 Цикл Если Товары.ПометкаУдаления() = 0 Тогда НоваяСтрока(); Номенклатура = Товары.Номенклатура; Загружен = "Загружен"; Количество = 1; ЕдИзм = СоздатьОбъект("Справочник.ЕдиницыИзмерения"); ЕдИзм.ИспользоватьВладельца(Товары.Номенклатура); ЕдИзм.ВыбратьЭлементы(); //Остатки РегОТ=СоздатьОбъект("Регистр.Склад"); Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество"); //Запрос ТТ=СоздатьОбъект("ТаблицаЗначений"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Запросище) |Номенклатура = Регистр.Склад.Номенклатура; |Количество = Регистр.Склад.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Номенклатура; //|Условие(Номенклатура = Товары.Номенклатура); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда //Возврат; КонецЕсли; Запрос.Выгрузить(ТТ,0,1); ТТ.ВыбратьСтроки(); Пока ТТ.ПолучитьСтроку()=1 Цикл Сообщить(ТТ.КоличествоКонОст); КонецЦикла; Пока ЕдИзм.ПолучитьЭлемент() = 1 Цикл Если ЕдИзм.ПометкаУдаления() = 0 Тогда Единица = ЕдИзм.БазоваяЕдиница; Если ПустоеЗначение(Единица) = 0 Тогда Прервать; КонецЕсли; КонецЕсли; КонецЦикла; ПриВыбореЗначения("Номенклатура"); КонецЕсли; КонецЦикла; |
|||
26
skafandr
20.09.17
✎
14:06
|
(22) Элементы номенклатуры в список значений и
Условие (Ноиенклатура в СЗ) |
|||
27
Builder
20.09.17
✎
14:09
|
Ох йо, это документ с реквизитом Номенклатура.
И запрос в цикле, ппц полный. Выкини запрос, он тут лишний, остаток ты уже получил. И названия реквизитов в запросе не должны совпадать с реквизитами документа. |
|||
28
skafandr
20.09.17
✎
14:10
|
Классный код
Фантазия на слове Номенклатура зациклилась? Номенклатура = Товары.Номенклатура; ..... |Номенклатура = Регистр.Склад.Номенклатура; ..... |Условие(Номенклатура = Товары.Номенклатура |
|||
29
Herby
20.09.17
✎
14:13
|
(25) страшное дело
|
|||
30
Mad88
20.09.17
✎
14:50
|
В общем написал вот так, но запрос почему то в тз выгружает аж 3 строчки с одним и тем же остатком, причем в одной строке номенклатура вообще пустая во второй другая в вот в третей то что нужно) это нормально или что?)
С таким условием - Условие (Номенклатура в СЗ), результат аналогичный ТекстЗапроса = "//{{ЗАПРОС(Заказ) |Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата())); |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ТекущийДокумент = Документ.ЗаказПокупателя.ТекущийДокумент; |зНомерНаСайте = Документ.ЗаказПокупателя.НомерНаСайте; |Группировка Документ; |Условие(СокрЛП(зНомерНаСайте) = СокрЛП(НомерНаСайте)); |"//}}ЗАПРОС ; |
|||
31
Mad88
20.09.17
✎
14:51
|
(30) тьфу ты не то скопировал
ТекстЗапроса = "//{{ЗАПРОС(Запросище) |зНоменклатура = Регистр.Склад.Номенклатура; |Количество = Регистр.Склад.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Группировка зНоменклатура; |Условие (зНоменклатура = Ном); |"//}}ЗАПРОС ; |
|||
32
Ёпрст
20.09.17
✎
14:52
|
(31)
|Группировка зНоменклатура Без Групп; |
|||
33
Ёпрст
20.09.17
✎
14:53
|
Хотя, в свете (25) этот запрос не нужен
|
|||
34
Mad88
20.09.17
✎
14:55
|
(33) Мне еще нужно будет потом его дописать и выбрать остатки в разрезе подразделений, я не знаю как без запроса это сделать
|
|||
35
Ёпрст
20.09.17
✎
14:58
|
(34) озвучь всю задачу:
тебе нужно заполнить табличную часть какого-то документа данными из ....? |
|||
36
Mad88
20.09.17
✎
15:08
|
(35) Табличная часть документа заполняется, но там есть еще реквизит подразделение, мне нужно найти на каких подразделениях числятся остатки и подставить туда первое попавшееся на котором есть хотя бы 1.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |