Вход | Регистрация


1С:Предприятие ::

Метки: 

v7: Помогите с запросом

Я
   Mad88
 
20.09.17 - 12:35
Добрый день 
//Остатки

РегОТ=СоздатьОбъект("Регистр.Склад");
Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество");
//Запрос

ТТ=СоздатьОбъект("ТаблицаЗначений");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = 
"//{{ЗАПРОС(Запросище)

|Подразделение = Регистр.Склад.Подразделение;
|Количество = Регистр.Склад.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Условие(Номенклатура = Товары.Номенклатура);
|"//}}ЗАПРОС

;
// Если ошибка в запросе, то выход из процедуры

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    //Возврат;

КонецЕсли;
Запрос.Выгрузить(ТТ,0,0);
Пока ТТ.ПолучитьСтроку()=1 Цикл
    Сообщить(ТТ.КоличествоКонОст);
КонецЦикла;

В общем вот запрос, выгружаю его в ТЗ, затем делаю цикл по ТЗ, но в цикле делается ровно 0 итерацияй, то есть в Сообщить() не заходит, остатки есть, подскажите что делаю не так.
 
  Рекламное место пустует
   Джинн
 
1 - 20.09.17 - 12:39
Условие кривое.
   Джинн
 
2 - 20.09.17 - 12:40
Да и период неплохо бы.
   Builder
 
3 - 20.09.17 - 12:44
(2) Период не обязательно, остатки же.
А вот условие не в тему совсем.
   Builder
 
4 - 20.09.17 - 12:47
Да и вообще зачем запрос если остаток уже получен тут:
Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество");
   Mad88
 
5 - 20.09.17 - 12:53
(4) Хочу получить данные запросом, и что не так с условием? Мне по конкретной номенклатуре надо
   Herby
 
6 - 20.09.17 - 12:53
условие возможно кривое, ну и группировки у тебя нет. а итоги ты в ТТ не выгружаешь
   Builder
 
7 - 20.09.17 - 12:56
Для начала добавить в запрос номенклатуру.
|Номенклатура  = Регистр.Номенклатура;
   Builder
 
8 - 20.09.17 - 12:57
+ к (7) 
|Номенклатура  = Регистр.Склад.Номенклатура;
   Джинн
 
9 - 20.09.17 - 12:58
(3) Тогда только не ТА будут.
   1dvd
 
10 - 20.09.17 - 13:00
(5) Товары - эт чо?
 
 
   Mad88
 
11 - 20.09.17 - 13:04
(10) Товары это табличная часть справочники, там все нормально так конкретная Номенклатура
   1dvd
 
12 - 20.09.17 - 13:05
(11) и давно в клюшках у ТЧ есть имя?
   Herby
 
13 - 20.09.17 - 13:15
(11) однако)
   Mad88
 
14 - 20.09.17 - 13:20
(12) Ну кароче это справочник который выступает в роли табличной части
   toypaul
 
15 - 20.09.17 - 13:21
без Группировка не будет работать
   toypaul
 
16 - 20.09.17 - 13:22
вот что бывает когда 8шнки в 7ку лезут :)
   Mad88
 
17 - 20.09.17 - 13:37
Не знаю мужики написал вот так

"//{{ЗАПРОС(Запросище)

|Номенклатура = Регистр.Склад.Номенклатура
|Количество = Регистр.Склад.Количество
|Функция КоличествоКонОст = КонОст(Количество)
|Группировка Номенклатура
|Условие(Номенклатура) = Товары.Номенклатура
|"//}}ЗАПРОС


Но чего - то не работает, возможно я чего то не понимаю.
   Ёпрст
 
18 - 20.09.17 - 13:39
(17) Тебе еще в начале обсуждения сказали:
выкинь вот это |Условие(Номенклатура) = Товары.Номенклатура

к едрени фени.
   Ёпрст
 
19 - 20.09.17 - 13:39
потом, сообщи общественности, что есть Товары у тебя
   Ёпрст
 
20 - 20.09.17 - 13:39
ну и ; везде отсутствует в тексте запроса.
   Zypse
 
21 - 20.09.17 - 13:50
(0) Мда
Перед циклом нужно ТТ.Выбратьстроки()
   Mad88
 
22 - 20.09.17 - 13:53
(19) Справочник
   Mad88
 
23 - 20.09.17 - 13:59
(18) а как без условия то тогда? Мне нужно по конкретной номенклатуре
   povar
 
24 - 20.09.17 - 13:59
(22) где это в коде видно ?
   Mad88
 
25 - 20.09.17 - 14:05
(24) Товары = СоздатьОбъект("Справочник.СпецпредложенияТовары");
    Товары.ИспользоватьВладельца(Пакет);
    Товары.ВыбратьЭлементы();
    Пока Товары.ПолучитьЭлемент() = 1 Цикл
        Если Товары.ПометкаУдаления() = 0 Тогда
            НоваяСтрока();
            Номенклатура = Товары.Номенклатура;
            Загружен = "Загружен";
            Количество = 1;
            ЕдИзм = СоздатьОбъект("Справочник.ЕдиницыИзмерения");
            ЕдИзм.ИспользоватьВладельца(Товары.Номенклатура);
            ЕдИзм.ВыбратьЭлементы();
            //Остатки

            РегОТ=СоздатьОбъект("Регистр.Склад");
            Остатки = РегОТ.СводныйОстаток(,Товары.Номенклатура,,"Количество");
            //Запрос

            ТТ=СоздатьОбъект("ТаблицаЗначений");
            Запрос = СоздатьОбъект("Запрос");
                ТекстЗапроса = 
            "//{{ЗАПРОС(Запросище)

            |Номенклатура = Регистр.Склад.Номенклатура;
            |Количество = Регистр.Склад.Количество;
            |Функция КоличествоКонОст = КонОст(Количество);
            |Группировка Номенклатура;
            //|Условие(Номенклатура = Товары.Номенклатура);

            |"//}}ЗАПРОС

            ;
            // Если ошибка в запросе, то выход из процедуры

            Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
                //Возврат;

            КонецЕсли;
            Запрос.Выгрузить(ТТ,0,1);
            ТТ.ВыбратьСтроки();
            Пока ТТ.ПолучитьСтроку()=1 Цикл
                Сообщить(ТТ.КоличествоКонОст);
            КонецЦикла;
            Пока ЕдИзм.ПолучитьЭлемент() =  1 Цикл
                Если ЕдИзм.ПометкаУдаления() = 0 Тогда
                    Единица = ЕдИзм.БазоваяЕдиница;
                    Если ПустоеЗначение(Единица) = 0 Тогда
                        Прервать;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
            ПриВыбореЗначения("Номенклатура");
        КонецЕсли;
    КонецЦикла;
   skafandr
 
26 - 20.09.17 - 14:06
(22) Элементы номенклатуры в список значений и 
 Условие (Ноиенклатура в СЗ)
   Builder
 
27 - 20.09.17 - 14:09
Ох йо, это документ с реквизитом Номенклатура.
И запрос в цикле, ппц полный.
Выкини запрос, он тут лишний, остаток ты уже получил.
И названия реквизитов в запросе не должны совпадать с реквизитами документа.
   skafandr
 
28 - 20.09.17 - 14:10
Классный код 

Фантазия на слове Номенклатура зациклилась?

Номенклатура = Товары.Номенклатура;
.....
|Номенклатура = Регистр.Склад.Номенклатура;
.....
|Условие(Номенклатура = Товары.Номенклатура
   Herby
 
29 - 20.09.17 - 14:13
(25) страшное дело
   Mad88
 
30 - 20.09.17 - 14:50
В общем написал вот так, но запрос почему то в тз выгружает аж 3 строчки с одним и тем же остатком, причем в одной строке номенклатура вообще пустая во второй другая в вот в третей то что нужно) это нормально или что?)

С таким условием - Условие (Номенклатура в СЗ), результат аналогичный

ТекстЗапроса = 
    "//{{ЗАПРОС(Заказ)

    |Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата()));
    |ОбрабатыватьДокументы все;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ТекущийДокумент = Документ.ЗаказПокупателя.ТекущийДокумент;
    |зНомерНаСайте = Документ.ЗаказПокупателя.НомерНаСайте;
    |Группировка Документ;
    |Условие(СокрЛП(зНомерНаСайте) = СокрЛП(НомерНаСайте));
    |"//}}ЗАПРОС

    ;
   Mad88
 
31 - 20.09.17 - 14:51
(30) тьфу ты не то скопировал 
    ТекстЗапроса = 
            "//{{ЗАПРОС(Запросище)

            |зНоменклатура = Регистр.Склад.Номенклатура;
            |Количество = Регистр.Склад.Количество;
            |Функция КоличествоКонОст = КонОст(Количество);
            |Группировка зНоменклатура;
            |Условие (зНоменклатура = Ном);
            |"//}}ЗАПРОС

            ;
   Ёпрст
 
32 - 20.09.17 - 14:52
(31)

|Группировка зНоменклатура Без Групп;
   Ёпрст
 
33 - 20.09.17 - 14:53
Хотя, в свете (25) этот запрос не нужен
 
  Рекламное место пустует
   Mad88
 
34 - 20.09.17 - 14:55
(33) Мне еще нужно будет потом его дописать и выбрать остатки в разрезе подразделений, я не знаю как без запроса это сделать
   Ёпрст
 
35 - 20.09.17 - 14:58
(34) озвучь всю задачу:
тебе нужно заполнить табличную часть какого-то документа данными из ....?
   Mad88
 
36 - 20.09.17 - 15:08
(35) Табличная часть документа заполняется, но там есть еще реквизит подразделение, мне нужно найти на каких подразделениях числятся остатки и подставить туда первое попавшееся на котором есть хотя бы 1.



Список тем форума
Рекламное место пустует   Рекламное место пустует
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует