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

Автор Тема: Ошибка Ошибка при вызове метода контекста (Выполнить) Ожидается выражение "ВЫБРАТЬ"  (Прочитано 1465 раз)

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

Оффлайн Maks54

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-17
  • Сайт: 
Всем привет. Помогите пожалуйста!!!!!!!!!!!!!!!

Выдает ошибку. Была пропущена точка. Исправила. Выдавал другую ошибку теперь опять эту.

{Документ.ОказаниеУслуги.МодульОбъекта(59)}: Ошибка при вызове метода контекста (Выполнить)
ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"

Процедура ОбработкаПроведения(Отказ, Режим)


Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   ЗапросТекст =
   "ВЫБРАТЬ
   |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
   |   ОказаниеУслугиПереченьНоменклатуры.Количество,
   |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
   |   ОказаниеУслугиПереченьНоменклатуры.Сумма,
   |   ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
   |   СтоимостьМатериаловОстатки.СтоимостьОстаток,
   |   ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
   |ИЗ
   |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
   |            &МоментВремени,
   |            Материал В (&СписокНоменклатурыДокумента)
   |               И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
   |ГДЕ
   |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
   |
   |ДЛЯ ИЗМЕНЕНИЯ
   |   РегистрНакопления.ОстаткиМатериалов.Остатки,
   |   РегистрНакопления.СтоимостьМатериалов.Остатки";
   Запрос.УстановитьПараметр("СкладВДокументе", Склад);
Иначе
   Запрос.Текст = "ВЫБРАТЬ
                  |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
                  |   ОказаниеУслугиПереченьНоменклатуры.Количество,
                  |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
                  |   ОказаниеУслугиПереченьНоменклатуры.Сумма,
                  |   ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
                  |   СтоимостьМатериаловОстатки.СтоимостьОстаток
                  |ИЗ
                  |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
                  |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
                  |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
                  |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
                  |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
                  |ГДЕ
                  |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
                  |
                  |ДЛЯ ИЗМЕНЕНИЯ
                  |   РегистрНакопления.ОстаткиМатериалов.Остатки,
                  |   РегистрНакопления.СтоимостьМатериалов.Остатки"
   ;
КонецЕсли;
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Ссылка", Ссылка);
ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
Пока ВыборкаРезультатаЗапроса.Следующий() Цикл
   //Проверить остаток при оперативном проведении.
   Если Режим = РежимПроведенияДокумента.Оперативный Тогда
      Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
         Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0, ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе);
         Если Остаток < ВыборкаРезультатаЗапроса.Количество Тогда
            Сообщить("Материал" + СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура) + "имеется только" + Остаток);
            Отказ = Истина;
            Возврат;
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
   //Сформировать движения
   Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
      
      //Регистр Остатки Материалов Расход
      Движение = Движения.ОстаткиМатериалов.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
      Движение.Период = Дата;
      Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура;
      Движение.Склад = Склад;
      Движение.Количество = ВыборкаРезультатаЗапроса.Количество;
      //Регистр стоимость материалов расход
      Движение = Движения.СтоимостьМатериалов.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
      Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура;
      //Рассчитать стоимость материалов
      СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,ВыборкаРезультатаЗапроса.СтоимостьОстаток / ВыборкаРезультатаЗапроса.КоличествоОстаток);
      Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
   КонецЕсли;
   
   //Регистр Продажи
   Движение = Движения.Продажи.Добавить();
   Движение.Период = Дата;
   Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура;
   Движение.Клиент = Клиент;
   Движение.Мастер = Мастер;
   Движение.Количество = ВыборкаРезультатаЗапроса.Количество;
   Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма;
   Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
   Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
    Иначе
   Движение.Стоимость = 0;
    КонецЕсли;
   КонецЦикла;
//Записать движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();
КонецПроцедуры

Надежда только на Вас!!


Оффлайн pavl_vs

  • *****
  • Сообщений: 1000
  • РЕПУТАЦИЯ: 159
  • КПД: 16%
  • Регистрация: 2011-05-09
  • Сайт: 
  • Профессия: Программист 7.7
Maks54, у Вас в секции "Иначе" неправильно завершен текст запроса;
должно быть, как и в секции "Если", т.е.
   |ДЛЯ ИЗМЕНЕНИЯ
   |   РегистрНакопления.ОстаткиМатериалов.Остатки,
   |   РегистрНакопления.СтоимостьМатериалов.Остатки";
Обратите на расположение символа ";".

Оффлайн Maks54

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-17
  • Сайт: 
Спасибо большое. Вы мне очень помогли!
Добавлено: 07 Ноя 2015, 14:45

Опять ошибка((( В том же месте, та же(

;  - исправил, и всё равно

Процедура ОбработкаПроведения(Отказ, Режим)


Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
   ЗапросТекст =
   "ВЫБРАТЬ
   |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
   |   ОказаниеУслугиПереченьНоменклатуры.Количество,
   |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
   |   ОказаниеУслугиПереченьНоменклатуры.Сумма,
   |   ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
   |   СтоимостьМатериаловОстатки.СтоимостьОстаток,
   |   ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
   |ИЗ
   |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
   |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
   |            &МоментВремени,
   |            Материал В (&СписокНоменклатурыДокумента)
   |               И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
   |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
   |ГДЕ
   |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
   |
   |ДЛЯ ИЗМЕНЕНИЯ
   |   РегистрНакопления.ОстаткиМатериалов.Остатки,
   |   РегистрНакопления.СтоимостьМатериалов.Остатки";
   Запрос.УстановитьПараметр("СкладВДокументе", Склад);
Иначе
   Запрос.Текст = "ВЫБРАТЬ
                  |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
                  |   ОказаниеУслугиПереченьНоменклатуры.Количество,
                  |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
                  |   ОказаниеУслугиПереченьНоменклатуры.Сумма,
                  |   ОстаткиМатериаловОстатки.КоличествоОстаток КАК КоличествоОстаток,
                  |   СтоимостьМатериаловОстатки.СтоимостьОстаток
                  |ИЗ
                  |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
                  |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
                  |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
                  |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
                  |      ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
                  |ГДЕ
                  |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
                  |
                  |ДЛЯ ИЗМЕНЕНИЯ
                  |   РегистрНакопления.ОстаткиМатериалов.Остатки,
                  |   РегистрНакопления.СтоимостьМатериалов.Остатки" ;
   
КонецЕсли;
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Ссылка", Ссылка);
ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать();
Пока ВыборкаРезультатаЗапроса.Следующий() Цикл
   //Проверить остаток при оперативном проведении.
   Если Режим = РежимПроведенияДокумента.Оперативный Тогда
      Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
         Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0, ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе);
         Если Остаток < ВыборкаРезультатаЗапроса.Количество Тогда
            Сообщить("Материал" + СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура) + "имеется только" + Остаток);
            Отказ = Истина;
            Возврат;
         КонецЕсли;
      КонецЕсли;
   КонецЕсли;
   //Сформировать движения
   Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
      
      //Регистр Остатки Материалов Расход
      Движение = Движения.ОстаткиМатериалов.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
      Движение.Период = Дата;
      Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура;
      Движение.Склад = Склад;
      Движение.Количество = ВыборкаРезультатаЗапроса.Количество;
      //Регистр стоимость материалов расход
      Движение = Движения.СтоимостьМатериалов.Добавить();
      Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
      Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура;
      //Рассчитать стоимость материалов
      СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,ВыборкаРезультатаЗапроса.СтоимостьОстаток / ВыборкаРезультатаЗапроса.КоличествоОстаток);
      Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
   КонецЕсли;
   
   //Регистр Продажи
   Движение = Движения.Продажи.Добавить();
   Движение.Период = Дата;
   Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура;
   Движение.Клиент = Клиент;
   Движение.Мастер = Мастер;
   Движение.Количество = ВыборкаРезультатаЗапроса.Количество;
   Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма;
   Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
   Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество;
    Иначе
   Движение.Стоимость = 0;
    КонецЕсли;
   
КонецЦикла;
//Записать движения регистров
Движения.ОстаткиМатериалов.Записать();
Движения.СтоимостьМатериалов.Записать();
Движения.Продажи.Записать();
КонецПроцедуры

Подскажите(

Оффлайн pavl_vs

  • *****
  • Сообщений: 1000
  • РЕПУТАЦИЯ: 159
  • КПД: 16%
  • Регистрация: 2011-05-09
  • Сайт: 
  • Профессия: Программист 7.7
Maks54, у Вас "ЗапросТекст = ", а должно быть "Запрос.Текст = " - опять забыли про точку?


Теги:
 

Как В Запрос=Новый Запрос Из Регистр Накопление Остати Выбрать СуммаПриход По Нужный Реквизитам

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

Ответов: 7
Просмотров: 1151
Последний ответ 17 Ноя 2016, 08:34
от cska-fanat-kz
Режим диалога выбора файлов - выбрать из нескольких типов файлов.

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

Ответов: 9
Просмотров: 3121
Последний ответ 19 Апр 2016, 15:28
от Yuliya_Den
Крупнейшие налогоплательщики могут сами выбрать налоговую инспекцию для предоставления формы 2-НДФЛ

Автор newsРаздел Новости

Ответов: 0
Просмотров: 772
Последний ответ 02 Апр 2014, 14:05
от news
Нужно на форму добавить объект, чтобы можно было выбрать из списка документ

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

Ответов: 10
Просмотров: 1278
Последний ответ 05 Июл 2016, 14:04
от RoDi
Выбрать из регистра сведений (срез последних) те записи, у который период МАКС

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

Ответов: 12
Просмотров: 8885
Последний ответ 24 Апр 2012, 07:31
от cska-fanat-kz

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
93 Сообщений
alex0402
93 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
64 Сообщений
Golickoff Golickoff
49 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
40 Сообщений
wise wise
31 Сообщений
Амал
30 Сообщений
ab30ru
24 Сообщений
lansy
22 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal