Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос не отрабатывает (DBF)          
kimonus Подменю пользователя
сообщение 25.05.11, 16:12
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Здравствуйте! помогите, пожалуйста разобраться!
Делаю два разных запроса в базе. Один отрабатывает, а второй - нет. Сколько не вчитывался - не могу понять, в чем причина. Кстати, тот, который не работает, писал я ))). Ниже запросы:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    Перем test2;
    Если ВыбКонПериода > ПолучитьДатуТА() Тогда
        ВыбКонПериода = ПолучитьДатуТА();
    КонецЕсли;
    test2="ПриходнаяНакладная";
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |Товар = Регистр.ДвижениеТоваров.Товар;
    |Склад = Регистр.ДвижениеТоваров.Склад;
    |Поставщик = Регистр.ДвижениеТоваров.Поставщик;
    |Колво = Регистр.ДвижениеТоваров.Колво;
    |ДатаПрих = Регистр.ДвижениеТоваров.Товар.ДатаПрих;
    |Вес = Регистр.ДвижениеТоваров.Вес;
    |Цена = Регистр.ДвижениеТоваров.Цена;  
    |ТекущийДокумент = Регистр.ДвижениеТоваров.ТекущийДокумент;
    |Скидка = Регистр.ДвижениеТоваров.Скидка;
    |Функция КолвоПриход = Приход(Колво);
//    |Функция СкидкаРасход = Расход(Скидка);
    |Функция ВесПриход = Приход(Вес);
    |Функция ЦенаПриход = Приход(Цена);
       |Группировка Склад упорядочить по Склад.Наименование;  
    |Группировка Поставщик упорядочить по Поставщик.Наименование;
    |Группировка Товар упорядочить по Товар.Наименование;
    |Условие(Товар в ВыбТовар);
    |Условие(Склад в ВыбСклад);  
    |Условие (не(Склад = ВыбСклад1));    
    |Условие(Поставщик в ВыбПоставщик);  
    |Условие(ТекущийДокумент.вид()=test2);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;                                  
    СуммаИтого=0;
    СкидкаИтого=0;
    ВесИтого=0;
    КолвоИтого=0;
    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);  
    Пока Запрос.Группировка(1) = 1 Цикл  
        Таб.ВывестиСекцию("Склад");    
        Пока Запрос.Группировка(2) = 1 Цикл  
            Таб.ВывестиСекцию("Поставщик");    
            Пока Запрос.Группировка(3) = 1 Цикл  
                Если Запрос.Товар.ЭтоГруппа() = 0 Тогда
                    
                    Если Запрос.КолвоПриход > 0 Тогда  
                        Таб.ВывестиСекцию("Товар");
                        СуммаИтого=суммаитого+запрос.ценаПриход;
                        ВесИтого=веситого+запрос.весприход;
                        КолвоИтого=колвоитого+запрос.колвоприход;
                    КонецЕсли;
            
                
            Иначе                            
                Таб.ВывестиСекцию("ГруппаТовар");
                
            КонецЕсли;  
                КонецЦикла;
        КонецЦикла;
        
    конеццикла;        
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Остатки товаров на складе", "");
КонецПроцедуры

Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с (НачГода(ТекущаяДата())) по (ТекущаяДата());
    |Обрабатывать НеПомеченныеНаУдаление;
    |Товар = Регистр.ДвижениеТоваров.Товар;
    |Склад = Регистр.ДвижениеТоваров.Склад;
    |Группировка Товар упорядочить по Товар.Наименование;
    |Группировка Склад упорядочить по Склад.Наименование;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Товар
        Таб.ВывестиСекцию("Товар");
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Склад
            Таб.ВывестиСекцию("Склад");
        КонецЦикла;
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры


Во втором (неработающем) запросе в группировке почему-то 0 элементов

-=VJ=- Подменю пользователя
сообщение 25.05.11, 16:16
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 402
Из: Киев
Спасибо сказали: 73 раз
Рейтинг: 0

Цитата(kimonus @ 25.05.11, 16:12) *
Во втором (неработающем) запросе в группировке почему-то 0 элементов


Для начала период нормально задайте (см. первый запрос)


Signature
Живу на VJ.net.ua.
Спілкуюсь в ЖЖ

mister-x Подменю пользователя
сообщение 25.05.11, 16:59
Сообщение #3

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Цитата
Во втором (неработающем) запросе в группировке почему-то 0 элементов
отже, другий запит виконується - тоді
НачГода(ТекущаяДата()
і
ТекущаяДата()
винести за запит (присвоїти змінним) і за допомогою них, задати період як в першому запиті.

kimonus Подменю пользователя
сообщение 26.05.11, 9:28
Сообщение #4

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Сделал, как Вы предложили. Теперь процедура выглядит так:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    НП = НачГода(ТекущаяДата());
    КП = ТекущаяДата();
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с НП по КП;
    |Товар = Регистр.ДвижениеТоваров.Товар;
    |Склад = Регистр.ДвижениеТоваров.Склад;
    |Группировка Товар упорядочить по Товар.Наименование;
    |Группировка Склад упорядочить по Склад.Наименование;
    |Условие(Склад в ВыбСклады);
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей Товар
        Таб.ВывестиСекцию("Товар");
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей Склад
            Таб.ВывестиСекцию("Склад");
        КонецЦикла;
    КонецЦикла;
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры


Но, все равно, на выходе - ничего

Valerka Подменю пользователя
сообщение 26.05.11, 9:37
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 65
Из: Каменец-Подольский
Спасибо сказали: 4 раз
Рейтинг: 0

Склад выбираете правильный? Есть на нем товар?


Signature
Разум, не имеющий цели, всегда блуждает в потёмках.

Ardi Подменю пользователя
сообщение 26.05.11, 9:43
Сообщение #6

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

добавить в запрос сумму/количество прихода, расхода .


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Valerka Подменю пользователя
сообщение 26.05.11, 10:04
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 65
Из: Каменец-Подольский
Спасибо сказали: 4 раз
Рейтинг: 0

Проще - Группировка Товар Все


Signature
Разум, не имеющий цели, всегда блуждает в потёмках.

kimonus Подменю пользователя
сообщение 26.05.11, 12:45
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Valerka @ 26.05.11, 9:37) *
Склад выбираете правильный? Есть на нем товар?

Да, товар есть. Как подверждение - первый запрос отрабатывает как нужно


Цитата(Ardi @ 26.05.11, 9:43) *
добавить в запрос сумму/количество прихода, расхода .

в смысле, функцию? но ее нет и в первом запросе, а он работает


Цитата(Valerka @ 26.05.11, 10:04) *
Проще - Группировка Товар Все

Это не помогло

Даже с точки зрения чистой логики: чем отличаются принципиально оба запроса? у меня не хватает опыта оценить ))

Ziam Подменю пользователя
сообщение 26.05.11, 13:32
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 234
Из: Харцызск
Спасибо сказали: 62 раз
Рейтинг: 0

А переменная ВыбСклады что это?

kimonus Подменю пользователя
сообщение 26.05.11, 13:48
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ziam @ 26.05.11, 13:32) *
А переменная ВыбСклады что это?

Это значение из справочника - выбирается на форме. Я пробовал закомментировать условие, может, без него отработало бы. Но не отработало sad.gif

Ardi Подменю пользователя
сообщение 26.05.11, 13:54
Сообщение #11

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(kimonus @ 26.05.11, 13:45) *
в смысле, функцию? но ее нет и в первом запросе, а он работает

В первом запросе функция есть.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: kimonus,

Acid Подменю пользователя
сообщение 26.05.11, 14:03
Сообщение #12

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

Ясен пень нет результата запроса - а где вы указали в запросе хотя бы один ресурс выбирать?
|Колво = Регистр.ДвижениеТоваров.Колво;
|Функция КолвоПриход = Приход(Колво);

Спасибо сказали: kimonus,

kimonus Подменю пользователя
сообщение 26.05.11, 14:33
Сообщение #13

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Acid @ 26.05.11, 14:03) *
Ясен пень нет результата запроса - а где вы указали в запросе хотя бы один ресурс выбирать?
|Колво = Регистр.ДвижениеТоваров.Колво;
|Функция КолвоПриход = Приход(Колво);


Спасибо большое, завелось )) Я только начинаю с 1с. Не оч понял логику запроса - думал, что если составить так, как было, он просто выберет ВСЕ значения из базы. А получается, что обязательно нужно использовать функцию?

Ardi Подменю пользователя
сообщение 26.05.11, 14:44
Сообщение #14

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Как в сегда. Я отвечаю правильно, а плюсики другим.

Сообщение отредактировал Ardi - 26.05.11, 14:45


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

mister-x Подменю пользователя
сообщение 26.05.11, 14:51
Сообщение #15

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1417 раз
Рейтинг: 0

Дійсно по регістрам накопичення повинні бути функції в запиті (сума, кількість...) - про це і в літературі жовтенькій сказано.

kimonus Подменю пользователя
сообщение 26.05.11, 15:13
Сообщение #16

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ardi @ 26.05.11, 14:44) *
Как в сегда. Я отвечаю правильно, а плюсики другим.

ИзвиниТЕ, это я от радости )))

Цитата(mister-x @ 26.05.11, 14:51) *
Дійсно по регістрам накопичення повинні бути функції в запиті (сума, кількість...) - про це і в літературі жовтенькій сказано.

посоветуеТЕ что-нибудь? я имею в виду литературу

Vofka Подменю пользователя
сообщение 26.05.11, 15:23
Сообщение #17

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4521 раз
Рейтинг: 3644.1

Цитата
посоветуеТЕ что-нибудь? я имею в виду литературу

Для этого есть целый раздел. Т.к. тема решена, то для предотвращения флуда - она закрывается icon_holy7.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 21.05.24, 4:14
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!