Имя: Пароль:
1C
1С v8
Вывести результат запроса
,
0 LeonRa
 
26.10.12
11:24
Помогите начинающему...
Мне нужно присвоить результат запроса переменной либо хотя бы вывести его на экран.
Как это сделать?)
Вот запрос. Мне нужно проверить, сколько уже продано билетов.
Т.е. сумму по полю Количество.

Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ПродажаБилетов.Дата_проката,
       |    ПродажаБилетов.Сеанс,
       |    ПродажаБилетов.Вместимость,
       |    СУММА(ПродажаБилетов.Количество) КАК Количество
       |ИЗ
       |    Документ.ПродажаБилетов КАК ПродажаБилетов
       |ГДЕ
       |    ПродажаБилетов.Дата_проката = &Дата_проката
       |    И ПродажаБилетов.Сеанс = &Сеанс
       |
       |СГРУППИРОВАТЬ ПО
       |    ПродажаБилетов.Дата_проката,
       |    ПродажаБилетов.Сеанс,
       |    ПродажаБилетов.Вместимость";

   Запрос.УстановитьПараметр("Дата_проката", Дата_проката);
   Запрос.УстановитьПараметр("Сеанс", Сеанс);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       // Вставить обработку выборки ВыборкаДетальныеЗаписи
   КонецЦикла;

Помогите, кто может.
Заранее sorry  за глупый вопрос.
1 LeonRa
 
26.10.12
11:24
Результат - это и есть сумма?
2 aleks-id
 
26.10.12
11:25
Результат = Запрос.Выполнить().Выгрузить();
теперь в Результат - таблица значений
3 bestuzhev
 
26.10.12
11:26
(0) ВыборкаДетальныеЗаписи.Количество смотри или в отладчике посмотри что лежит в ВыборкаДетальныеЗаписи на каждом этапе цикла, все поймешь.
4 1Страх
 
26.10.12
11:26
1. архитектура конфигурации оставляет желать лучшего
2. студентка? это курсовая?
3. фото где?
5 bestuzhev
 
26.10.12
11:27
(0) А вообще используй консоль запросов, все наглядно будет видно.
6 lighto1
 
26.10.12
11:33
Запрос.Текст =
       "ВЫБРАТЬ
       |    ЕСТЬNULL(СУММА(ПродажаБилетов.Количество),0) КАК Количество
       |ИЗ
       |    Документ.ПродажаБилетов КАК ПродажаБилетов
       |ГДЕ
       |    ПродажаБилетов.Дата_проката = &Дата_проката
       |    И ПродажаБилетов.Сеанс = &Сеанс";
Выборка = Запрос.Выполнить().Выбрать();
Ответ = Выборка.Количество;
7 LeonRa
 
26.10.12
11:35
Мда))
студентка
курсовая
Спасибо)
8 lighto1
 
26.10.12
11:37
Курсовая по 1С? В РФ? На бюджетном месте? Курсовая по теме направления/специализации? ВУЗ государственный?
Я всегда считал, что вышеописанного быть не может никогда...
9 LeonRa
 
26.10.12
11:40
Так много вопросов...
Я не понимаю, в чем проблема)
По-вашему, по 1С не может быть курсовой?)
10 lighto1
 
26.10.12
11:44
Не, я считал, что в России не найдется государственного ВУЗа, где есть направление/специализация чисто по 1С, обучение студентов которого финансировалось бы только за счет бюджета страны/региона...
11 Godofsin
 
26.10.12
11:47
(10) Почти в каждом. Другой вопросЮ что тру преподы не приветствуют работы на 1с, но, скрипя сердцем, оценивают их
12 LeonRa
 
26.10.12
11:47
Нет, ВУЗ нашелся. Дисциплина полностью посвящена 1с и называется она Информационные системы бух.учета.
13 Godofsin
 
26.10.12
11:49
(12) нуНиХренаСебе
14 GANR
 
26.10.12
11:57
(0) Запрос.Выполнить().Выгрузить().Итог("Количество")
15 Maxus43
 
26.10.12
11:58
(8) я диплом делал на 1с. всё у нас есть уже
16 GANR
 
26.10.12
12:00
(0) А вообще следует активнее использовать отладчик и синтаксис-помощник. Они прекрасно ответят на такие вопросы.
17 LeonRa
 
26.10.12
12:01
Так, хорошо)
Скажите, пожалуйста, как мне прервать проведение документа, если сумма достигнет определенного значения?

Возврат;
не срабатыват
18 Maxus43
 
26.10.12
12:02
(17) зачем прервать? Отказ там есть, но тогда он не проведётся вобще
19 Godofsin
 
26.10.12
12:02
(17)СтатусВозврата(0)
Код покажи
20 LeonRa
 
26.10.12
12:03
Процедура ОбработкаПроведения(Отказ, Режим)
       Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ПродажаБилетов.Дата_проката,
       |    ПродажаБилетов.Сеанс,
       |    ПродажаБилетов.Вместимость,
       |    СУММА(ПродажаБилетов.Количество) КАК Количество
       |ИЗ
       |    Документ.ПродажаБилетов КАК ПродажаБилетов
       |ГДЕ
       |    ПродажаБилетов.Дата_проката = &Дата_проката
       |    И ПродажаБилетов.Сеанс = &Сеанс
       |
       |СГРУППИРОВАТЬ ПО
       |    ПродажаБилетов.Дата_проката,
       |    ПродажаБилетов.Сеанс,
       |    ПродажаБилетов.Вместимость";

   Запрос.УстановитьПараметр("Дата_проката", Дата_проката);
   Запрос.УстановитьПараметр("Сеанс", Сеанс);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       // Вставить обработку выборки ВыборкаДетальныеЗаписи  
   КонецЦикла;

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
     Сообщить(ВыборкаДетальныеЗаписи.Количество);
     Возврат;
/////////////////////////////////////////////////////////////////////////////////////////////////////////    
   Движения.СеансыПрокат.Записывать = Истина;
   // регистр СеансыПрокат Приход
   Движение = Движения.СеансыПрокат.Добавить();
   Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
   Движение.Период = Дата;
   Движение.Дата = Дата;
   Движение.Сеанс = Сеанс;
   Движение.КоличествоПроданныйБилетов = Количество;
   Движение.Выручка = Сумма;
КонецПроцедуры
21 Godofsin
 
26.10.12
12:04
(20) Отказ = Истина;
22 LeonRa
 
26.10.12
12:04
Возврат не работает
Суть в том, что я добавлю условие сравнения, и если оно выполнится, то проведение не должно произойти
23 GANR
 
26.10.12
12:05
(17)(20) Может, заменить Возврат на
Отказ = Истина;
?
24 LeonRa
 
26.10.12
12:06
Спасибо)
25 qw12er
 
26.10.12
12:25
(10) У меня 13 лет назад в государственном ВУЗе на бюджетном месте по специальности "Информационные системы в экономике" тоже были и курсовые (расчет взносов с ФОТ) и диплом на 1С (внедрение ЗиК).
Закон Брукера: Даже маленькая практика стоит большой теории.