Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:25

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

Автор Glikeria, 27 авг 2010, 09:48

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

Glikeria

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

Пока Выборка.Следующий() Цикл

   ДокументОбъект=Документы.ВозвратНаРаботуОрганизаций.СоздатьДокумент();
   ДокументОбъект.Заполнить(Выборка.Ссылка);
   ДокументОбъект.Дата=ТекущаяДата();
   ДокументОбъект.Записать();
   ДокументОбъект.ПолучитьФорму().Открыть();

   

Klyacksa

Так а что говорит?

P/s/ А зачем открывать все созданные документы? А если их 100 будет?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Glikeria

Ничего не говорит.Когда я нажимаю Выполнить ничего не происходит.
P.S. А как лучше сделать?Просто у меня до этого именно так и происходило.Открывались все документы.А когда я добавила в запрос след строки:
И ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания = ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, 1)
и
  |   И СостояниеРаботниковОрганизаций.Состояние <> &Работает"
вообще перестало выполняться.

Glikeria

Может дело в Выборке?

Klyacksa

Лучший способ отладить запрос - обработка КонсольЗапросов.

Если ошибок не выдает - значит не "не выполняется", а "не находит нужные данные".

Попробуй убрать условие на Работает и посмотри в отладке (или обработке КонсольЗапросов), что возвращается в эту колонку, какие там есть значения в поле Состояние.

P.s. Смотреть результат запроса лучше, поставив точку останова на Результат=Запрос.Выполнить() и посмотреть Запрос.Выполнить().Выгрузить()
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Glikeria

Можно я ещё спрошу?Я делаю так,как Вы посоветовали.Устнавливаю точку Останова,пишу Запрос.Выполнить().Выгрузить(),запускаю Отладчик,нажимаю Выполнить,возвращаюсь в Конфигуратор.Как посмотреть результаты выгрузки?

Glikeria

А ещё,когда я убрала ещё и  сточку с ДобавитьКДате,то обработка выполнилась,но документы непроведённые,хотя по идее должно быть наоборот

Glikeria

Я посмотрела в консоли запросов.Запрос выполняется только тогда,когда я оставляю условие на отбор только проведённых документов,а всё остальное убираю.

Klyacksa

Чтобы посмотреть результат выполнения запроса - shift+F9 (это в режиме конфигуратора, когда выполнение остановилось на точке останова)

Ну я же сказала - чтобы понять, почему не работает отбор - нужно вывести эти значения и посмотреть, какие там есть данные.
То есть, раз не срабатывают условия
"|   И ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания = ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, 1)
|   И СостояниеРаботниковОрганизаций.Состояние <> &Работает"

Нужно вывести значения
ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания
СостояниеРаботниковОрганизаций.Период
ДОБАВИТЬКДАТЕ(СостояниеРаботниковОрганизаций.Период, ДЕНЬ, 1)
СостояниеРаботниковОрганизаций.Состояние
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Теги:

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

Рейтинг@Mail.ru

Поиск