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

Ожидается выражение "ВЫБРАТЬ"

Автор chesnauskis, 03 июл 2018, 07:36

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

chesnauskis

Цитата: alex0402 от 03 июл 2018, 09:33
Цитата: alexandr_ll от 03 июл 2018, 08:07
Неправильно
Запрос = Новый запрос();
Правильно
Запрос = Новый запрос;
оба варианта - правильно.
параметр просто присваивается реквизиту Текст. А проверка запроса происходит при вызове метода Выполнить(). ТС что-то недоговаривает!!!
Добавлено: 03 июл 2018, 09:38


Цитата: chesnauskis от 03 июл 2018, 09:29Использовал помощь конструктора. Счастья нет все равно.

полный тест ошибки - в студию. и кусок кода и стрелкой или еще как-то обозначьте строку, на которую указывает ошибка.


Если все правильно понял. http://rgho.st/7yPJdZMdR
Если информацию дал не ту - тыкните, пожалуйста.

alex0402

и что в строке 55 в модуле? Запрос.ВыполнитьПакет()? и Запрос.Текст в этом месте содержит "Запрос = Новый Запрос"?
Спасибо за Сказать спасибо

chesnauskis

Цитата: alex0402 от 03 июл 2018, 12:01
и что в строке 55 в модуле? Запрос.ВыполнитьПакет()? и Запрос.Текст в этом месте содержит "Запрос = Новый Запрос"?

но строки 55 нет.....

Vlad-93

Попробуйте так

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

  ТекДок.Записать(C:\1.txt);   
                         
КонецПроцедуры


chesnauskis

Цитата: Vlad-93 от 03 июл 2018, 14:01
Попробуйте так

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

  ТекДок.Записать(C:\1.txt);   
                         
КонецПроцедуры


Не помогло, к сожалению.
Я предполагал, что проблема в кавычках, но тоже был не прав, видимо.

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

{(1,1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>"ВЫБРАТЬ

Vlad-93

Цитата: chesnauskis от 03 июл 2018, 14:16
Цитата: Vlad-93 от 03 июл 2018, 14:01
Попробуйте так

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

  ТекДок.Записать(C:\1.txt);   
                         
КонецПроцедуры


Не помогло, к сожалению.
Я предполагал, что проблема в кавычках, но тоже был не прав, видимо.

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

{(1,1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>"ВЫБРАТЬ


А попробуйте поставить перед каждой строкой знак |.
Вот так

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

Результат = Запрос.Выполнить();
   ТекДок = Новый ТекстовыйДокумент;
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   
   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      ТекДок.ДобавитьСтроку(Строка(Сотрудники.Код)+"    "+Строка(Сотрудники.Наименование)+"    "+Строка(ПриемНаРаботу.Дата)+"    "+Строка(ПодразделенияОрганизаций.Наименование)+"    "+Строка(Организации.Наименование)+"    "+Строка(ШтатноеРасписание.Должность.Наименование));
   КонецЦикла;

  ТекДок.Записать(C:\1.txt);   
                         
КонецПроцедуры






chesnauskis

А попробуйте поставить перед каждой строкой знак |.
Вот так


Немного не понимаю для чего это, но тоже - тщетно.

buketov.av

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

chesnauskis

С помощью чего я должен выполнять запрос? В целом, с помощью какой программы\сервиса? Я уже не знаю, что думать. :fdbsdfbsd:
Может быть я вообще с ума схожу :wacko:

buketov.av

Скажите, а где, собственно, это все происходит? где происходит этот Ваш код?

Теги:

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

Рейтинг@Mail.ru

Поиск