Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Янв 2018, 10:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Отбор в запросе  (Прочитано 4297 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexKag

  • **
  • Сообщений: 90
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-09-05
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте! Подскажите пожалуйста с таким вопросом. есть регистр, где в ресурсах количество и статус. Есть документ ВАкадемическийОтпуск. При его проведении в регистре записывается студент, количество 1, и статус "ВАкадемическомОтпуске". Так вот как сделать запрос, в документе, который бы не позволил два раза отправить одного и того же студента в отпуск. Я делал проверку что если количество больше или равно 1 и такой - то статус, то отменить проведение.. но это не работает..может есть ошибка в запросе. Вот запрос.. Скажите есть ошибки?
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   РегистрПереводаСрезПоследних.Количество,
      |   РегистрПереводаСрезПоследних.Статус,
      |   РегистрПереводаСрезПоследних.Группа
      |ИЗ
      |   РегистрСведений.РегистрПеревода.СрезПоследних КАК РегистрПереводаСрезПоследних
      |ГДЕ
      |   РегистрПереводаСрезПоследних.Статус = &ВАкадемическомОтпуске
      |   И РегистрПереводаСрезПоследних.Группа = &Группа
      |   И РегистрПереводаСрезПоследних.Количество = &Количество";

   Запрос.УстановитьПараметр("ВАкадемическомОтпуске", Статус);
   Запрос.УстановитьПараметр("Группа", Группа);
   Запрос.УстановитьПараметр("Количество", 1);

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

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

   Если ВыборкаДетальныеЗаписи.Количество()>=1 Тогда
         Сообщить("Данная группа уже зачислена!");
         Отказ=Истина;
      Иначе
         отказ=Ложь;
      КонецЕсли;   


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Re: Отбор в запросе
« Ответ #1: 28 Сен 2012, 18:11 »
есть регистр, где в ресурсах количество и статус. Есть документ ВАкадемическийОтпуск. При его проведении в регистре записывается студент, количество 1, и статус "ВАкадемическомОтпуске"
не дочитал пока вопрос до конца, т.к. много текста  :D но уже по этим фразам вопрос: что ж вы все упорно не хотите сделать как положено? уже была же тема, где писали, что количество вам не нужно. ответьте на такой вопрос: при каких условиях в это поле у вас пишется значение, отличное от 1 ? подозреваю, что нет таких. вопрос: зачем это поле?

Оффлайн Slin

  • Глобальный модератор
  • *****
  • Сообщений: 780
  • РЕПУТАЦИЯ: 247
  • КПД: 32%
  • Game over...
  • Регистрация: 2010-10-13
  • Сайт: 
  • Профессия: Программист 1С
Re: Отбор в запросе
« Ответ #2: 28 Сен 2012, 19:14 »
Для проверки возможности проведения достаточно знать статус
при каких условиях в это поле у вас пишется значение, отличное от 1 ?
Поддерживаю вопрос :)
skype: slin-dev

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Re: Отбор в запросе
« Ответ #3: 29 Сен 2012, 01:25 »
По теме: в коде ошибок не нашел. Отмена проведения должна срабатывать. Хотя ресурс "Количество" у вас все таки лишний :)
Добавлено: 29 Сен 2012, 01:27

единственно по коду: сообщение выводится странное )) наверно вы его откуда-то скопировали из другого места ) ну и
 Иначе
         отказ=Ложь;
не обязательно добавлять. остальное должно работать.

Оффлайн ГК

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 4
  • КПД: 18%
  • Регистрация: 2011-11-21
  • Сайт: 
  • Профессия: Консультант 1С
Re: Отбор в запросе
« Ответ #4: 29 Сен 2012, 09:15 »
Этот запрос будет работать в оперативном режиме. Для того, чтобы ваш документ можно было проводить и в неоперативном режиме, надо добавить Период в параметры временной таблицы. Ну и условие можно тоже вынести в параметры временной таблицы. Так оптимальнее. Тогда запрос может выглядеть так:

ВЫБРАТЬ
   СУММА(1) КАК ВсегоВГруппе
ИЗ
   РегистрСведений.СтатусыСтудентов.СрезПоследних(
         &Период,
         Статус = &Статус
            И Группа = &Группа) КАК РегистрПереводаСрезПоследних
Добавлено: 29 Сен 2012, 09:17

Запрос.УстановитьПараметр("Период", Ссылка.Дата);
Добавлено: 29 Сен 2012, 09:19

Название регистра сведений, конечно, то, которое у вас - РегистрСведений.РегистрПеревода. Я неправильно написала.

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Re: Отбор в запросе
« Ответ #5: 29 Сен 2012, 11:28 »
надо добавить Период в параметры временной таблицы.
это да, вчера я просмотрел. период обязательно.


Теги:
 

Получить номер недели в месяце в запросе [номер недели]

Автор MuI_I_IkaРаздел Алгоритмы

Ответов: 0
Просмотров: 4281
Последний ответ 15 Июл 2015, 18:24
от MuI_I_Ika
РС "СостояниеОСОрганизаций" в запросе

Автор ILLUMIРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1156
Последний ответ 07 Янв 2015, 05:33
от ILLUMI
Объединить и Объединить все в одном запросе

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 122
Последний ответ 13 Янв 2018, 11:10
от Андрей Федотов
Как исправить при обновлении ИБ: Ошибка в запросе набора данных по причине: {(58, 2)}: Несовместимые типы "ВЫБОР" <<?>>ВЫБОР

Автор dollРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2217
Последний ответ 01 Янв 2017, 20:27
от Геннадий ОбьГЭС
"Поле не найдено" в запросе, но оно есть.

Автор ferrari314Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2813
Последний ответ 27 Окт 2015, 10:29
от vitasw

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
106 Сообщений
AIFrame
105 Сообщений
alex0402
28 Сообщений
alexandr_ll
17 Сообщений
kiksi
17 Сообщений
andron81_81
16 Сообщений
BuhRust
13 Сообщений
pavl_vs
13 Сообщений
LexaK
13 Сообщений
Artibon
12 Сообщений

* Кто онлайн

  • Точка Гостей: 968
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal