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

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

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

Оффлайн Maks54

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

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

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

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


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

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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн pavl_vs

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

Оффлайн Maks54

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

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

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

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


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

Подскажите(

Оффлайн pavl_vs

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
156 Сообщений
alex0402
61 Сообщений
MuI_I_Ika MuI_I_Ika
45 Сообщений
crow1983
35 Сообщений
alexandr_ll
32 Сообщений
LexaK
32 Сообщений
sertak sertak
27 Сообщений
Vzonder
22 Сообщений
BuhRust
19 Сообщений
дфтын дфтын
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal