Группа: Пользователи
Сообщений: 68
Спасибо сказали: 1 раз
Рейтинг: 0
Задание вроде бы проще некуда, выбрать документы по регистрам за определенный период...
У меня получается код:
Процедура ТекстЗапроса() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ТекстЗапроса) |Период с ВыбНачПериода по ВыбКонПериода; |Докум = Регистр.Касса.Чек; |Сумма = Регистр.Касса.Сумма; |Фирма = Регистр.Касса.Чек.Предприятие; |Функция СуммаНачОст = НачОст(Сумма); |Функция СуммаКонОст = КонОст(Сумма); |Группировка Докум; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("ТекстЗапроса"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Докум Таб.ВывестиСекцию("Докум"); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("ТекстЗапроса", ""); КонецПроцедуры
Документы выбирает... Но за весь период существования базы, а не за указанный период... Конфигурация не стандартная... Но не могли же авторы поменять суть запросов... Или могли? Помогите пожалуйста, подскажите в чем ошибка... Спасибо.
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0
Плохо с логикой у тебя в запросе ... Получаешь остатки за период в которых могут быть различные документы за разные периоды ... Период с д1 по д2; ТекущийДокумент = Регистр.Р.ТекущийДокумент; //Это документ движения он тебе нужен ... Группировка ТекущийДокумент;
Если ВыбФирма.Выбран()=1 Тогда ТекстЗап=ТекстЗап+" |Условие (Фирма = ВыбФирма); |"//}}ЗАПРОС ; КонецЕсли; Если ВыбТовар.Выбран()=1 Тогда ТекстЗап=ТекстЗап+" |Условие (Товар.ПринадлежитГруппе(ВыбТовар)=1); |"//}}ЗАПРОС ; КонецЕсли;
// Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
Выдает все документы вне зависимости от выбранной фирмы и группы товаров...
З.Ы. Есть ли толковая книга по тонкостям запросов?
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 1 раз
Рейтинг: 0
Далее следовал второой вопрос по другому запросу, на который дали ответ. Или мне на каждую проблему с запросом создавать отдельную тему? (учитывая, что проблема может быть на 1 ответ...)
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0
Цитата(ReDll @ 15.10.09, 10:30)
Далее следовал второой вопрос по другому запросу, на который дали ответ. Или мне на каждую проблему с запросом создавать отдельную тему? (учитывая, что проблема может быть на 1 ответ...)
Ну 1 - 2 вопроса ещё можно совместить, но больше не желательно. Поймите, желания перечитывать то что уже решено нет, а представте что Вы напишите пять проблемных запросов, два решаться три нет, прийдется постоянно бегать между топиками что бы понять к какому запросу относится ответ? Такие топики я прохожу мимо. Так что создавайте на каждую проблему отдельныую ветку. В первом посте описываем её, а в последующих ищем решение и не будет возникать лишних вопросов.
Группа: Пользователи
Сообщений: 25
Спасибо сказали: 5 раз
Рейтинг: 0
Цитата(ReDll @ 14.10.09, 18:33)
Спасибо огромное, все заработало!!!
А вот другой запрос... Не отбирает ни по товару ни по фирме...
Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ПродВсегоСклад) |Период с ВыбНачПериода по ВыбКонПериода; ... |"//}}ЗАПРОС ;
Если ВыбФирма.Выбран()=1 Тогда ТекстЗап=ТекстЗап+" |Условие (Фирма = ВыбФирма); |"//}}ЗАПРОС ; КонецЕсли; ... // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли;
Выдает все документы вне зависимости от выбранной фирмы и группы товаров...
З.Ы. Есть ли толковая книга по тонкостям запросов?
А разве дело не в именах переменных? В условии на Фирму и Товар написана переменная "ТЕКСТЗАП" а в начале и параметр в Выполнить "ТЕКСТЗАПРОСА".
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!