Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
05 июл 2022, 12:15

Ошибка в запросе

Автор Space_minus, 13 сен 2017, 12:41

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

Space_minus

Здраствуйте, не получается разобраться почему запрос не открывается в конструкторе запроса

Запрос=Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ
              | ДвижениеКонтингентаСрезПоследних.Студент.ФизЛицо КАК ФизЛицо,
              | ДвижениеКонтингентаСрезПоследних.Студент,
              | ДвижениеКонтингентаСрезПоследних.Статус,
              | ДвижениеКонтингентаСрезПоследних.Группа
              |ИЗ
              | РегистрСведений.ДвижениеКонтингента.СрезПоследних(
              |       ,
  |      %Группа%
              | И %Организация%
              | И %ГодПоступления%
              | И %Пол%
  | И %ФормаОбучения%
                  | И %ДатаРождения%) КАК ДвижениеКонтингентаСрезПоследних
              |ГДЕ
              | ДвижениеКонтингентаСрезПоследних.Статус = &Статус И ДвижениеКонтингентаСрезПоследних.Студент.ФизЛицо <> &ПустоеФизЛицо";



Ошибка:

https://prnt.sc/gkkw48

alex0402

не
Цитата: Space_minus от 13 сен 2017, 12:41%Группа%
а &Группа.
Это скорее всего запрос для динамического формирования текста запроса, т.е. текст обрабатывается дополнительно кодом, а потом передается в запрос для выполнения.
Спасибо за Сказать спасибо

oleg-x

Ему не нравятся как прописаны параметры, сотрите условие ИЗ.
Видимо написано руками или при сохранение запроса проигнорировали предупреждение
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Space_minus

Цитата: alex0402 от 13 сен 2017, 12:59
не
Цитата: Space_minus от 13 сен 2017, 12:41%Группа%
а &Группа.
Это скорее всего запрос для динамического формирования текста запроса, т.е. текст обрабатывается дополнительно кодом, а потом передается в запрос для выполнения.
Да, вы  правы
Весь код:
//Получим список физлиц
Запрос=Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ
              | ДвижениеКонтингентаСрезПоследних.Студент.ФизЛицо КАК ФизЛицо,
              | ДвижениеКонтингентаСрезПоследних.Студент,
              | ДвижениеКонтингентаСрезПоследних.Статус,
              | ДвижениеКонтингентаСрезПоследних.Группа
              |ИЗ
              | РегистрСведений.ДвижениеКонтингента.СрезПоследних(
              | ,
              | %Группа%
              | И %Организация%
              | И %ГодПоступления%
              | И %Пол%
  | И %ФормаОбучения%
                  | И %ДатаРождения%) КАК ДвижениеКонтингентаСрезПоследних
              |ГДЕ
              | ДвижениеКонтингентаСрезПоследних.Статус = &Статус И ДвижениеКонтингентаСрезПоследних.Студент.ФизЛицо <> &ПустоеФизЛицо";
  Если не Объект.УчебнаяГруппа.Пустая() Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Группа%","Группа = &Группа");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Группа%","1=1");
  Конецесли;
 
  Если не Объект.ФормаОбучения.Пустая() Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ФормаОбучения%","Группа.ФормаОбучения = &ФормаОбучения");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ФормаОбучения%","1=1");
  Конецесли;


  Если не Объект.Организация.Пустая() Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Организация%","Группа.Организация = &Организация");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Организация%","1=1");
  Конецесли;

  Если ЗначениеЗаполнено(Объект.ГодПоступления) Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ГодПоступления%","Группа.ГодПоступления = &ГодПоступления");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ГодПоступления%","1=1");
  Конецесли;

  Если ЗначениеЗаполнено(Объект.Пол) Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Пол%","Студент.ФизЛицо.Пол = &Пол");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%Пол%","1=1");
  Конецесли;

  Если ЗначениеЗаполнено(Объект.ГодРождения) Тогда
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ДатаРождения%","Студент.ФизЛицо.ДатаРождения МЕЖДУ &ДатаНачала И &ДатаКонца");
  Иначе
  Запрос.Текст=СтрЗаменить(Запрос.Текст,"%ДатаРождения%","1=1");
  Конецесли;

Но дело в том, что данные хоть и берутся из регистра сведений срез последних, в список попадают ученики которых уже в группе нету. (старые данные). Посоветуйте, как исправить?

Golickoff

Ученики, которых нет в группе, чем-нибудь отличаются от тех которые есть? Если есть реквизит, явно указывающий на то что этого ученика в группе нет, делайте отбор по этому реквизиту.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск