![]() |
|
Синтаксическая ошибка "ИЗ" | ☑ | ||
---|---|---|---|---|
0
alexkayzer
21.02.13
✎
17:39
|
При проведении документа ругается 1Ска ругается на
{Документ.ОказаниеУслуги.МодульОбъекта(99)}: Ошибка при вызове метода контекста (Выполнить): {(8, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); {(8, 1)}: Синтаксическая ошибка "ИЗ" <<?>>ИЗ Код Процедура ОбработкаПроведения(Отказ, Режим) Запрос = Новый Запрос; Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос.Текст ="ВЫБРАТЬ | ОказаниеУслугПереченьНоменклатуры.Номенклатура, | ОказаниеУслугПереченьНоменклатуры.Количество, | ОказаниеУслугПереченьНоменклатуры.Сумма, | ОказаниеУслугПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | СтоимостьМатериаловОстатки.СтоимостьОстаток, | ОстаткиМатериаловОстатки.КоличествоОстаток, | ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе, |ИЗ | Документ.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки( | &МоментВремени, | Материал В (&СписокНоменклатурыДокумента) | И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе | ПО ОказаниеУслугПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал, |ГДЕ | ОказаниеУслугПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ОстаткиМатериалов.Остатки, | РегистрНакопления.СтоимостьМатериалов.Остатки"; Запрос.УстановитьПараметр("СкладВДокументе", Склад); Иначе Запрос.Текст ="ВЫБРАТЬ | ОказаниеУслугПереченьНоменклатуры.Номенклатура, | ОказаниеУслугПереченьНоменклатуры.Количество, | ОказаниеУслугПереченьНоменклатуры.Сумма, | ОказаниеУслугПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | СтоимостьМатериаловОстатки.СтоимостьОстаток, | ОстаткиМатериаловОстатки.КоличествоОстаток, |ИЗ | Документ.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал, |ГДЕ | ОказаниеУслугПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ОстаткиМатериалов.Остатки, | РегистрНакопления.СтоимостьМатериалов.Остатки"; КонецЕсли; Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура")); Запрос.УстановитьПараметр("Ссылка", Ссылка); ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); Пока ВыборкаРезультатаЗапроса.Следующий() Цикл // ПРоверить остаток при оперативном проведении Если Режим = РежимПроведенияДокумента.Оперативный Тогда Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0 ,ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе); Если Остаток < ВыборкаРезультатаЗапроса.Количество Тогда Сообщить("Материала" +СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура)+"Имеется только"+Остаток); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; КонецЕсли; //Сформировать движения Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидНоменклатуры.Материал Тогда //Регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Склад = Склад; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; //Региста СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура; //расчитагь стоимость материала СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null, 0, ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток); Движение.Стоимость = СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество; КонецЕсли; // регистр Продажи Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Мастер; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма; Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество; Иначе Движение.Стоимость = 0; КонецЕсли; КонецЦикла; КонецПроцедуры; Голову сломал понять не могу в чем дело( |
|||
1
salvator
21.02.13
✎
17:39
|
Запятая перед ИЗ
|
|||
2
shuhard
21.02.13
✎
17:40
|
(0) КАК КоличествоНаСкладе,
|
|||
3
vicof
21.02.13
✎
17:40
|
(1) только хотел протелепатировать
|
|||
4
salvator
21.02.13
✎
17:40
|
+(1) Не можешь нормально править запрос - используй конструкутор
|
|||
5
alexkayzer
21.02.13
✎
17:44
|
В том-то и дело что конструктором строил(
|
|||
6
vicof
21.02.13
✎
17:45
|
(5) врешь
|
|||
7
shamannk
21.02.13
✎
17:46
|
(5) А удалял руками?
|
|||
8
alexkayzer
21.02.13
✎
17:51
|
Угу, удалял добавлял потом опять удалял, сейчас вообще ругается
{Документ.ОказаниеУслуги.МодульОбъекта(99)}: Ошибка при вызове метода контекста (Выполнить): {(9, 2)}: Таблица не найдена "Документ.ОказаниеУслуг.ПереченьНоменклатуры" <<?>>Документы.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); {(9, 2)}: Таблица не найдена "Документ.ОказаниеУслуг.ПереченьНоменклатуры" <<?>>Документы.ОказаниеУслуг.ПереченьНоменклатуры КАК ОказаниеУслугПереченьНоменклатуры |
|||
9
mikecool
21.02.13
✎
17:52
|
(8) удаляй тоже в конструкторе, если вообще о структуре запроса не имеешь понятия
|
|||
10
alexkayzer
21.02.13
✎
17:52
|
НА Документы и Документ внимания тока не обращайте это я сам сейчас ковырял думал может прокатит(
|
|||
11
salvator
21.02.13
✎
17:54
|
(8) Ошибку пишет по-русски вроде, что непонятного?
|
|||
12
alexkayzer
21.02.13
✎
17:56
|
Вот и не понятно как таблица не найдена если я из нее конструктором запрос строил(
|
|||
13
salvator
21.02.13
✎
18:00
|
(12) Лазить меньше надо в незнакомых местах.
Тебе уже все ответили в (9) |
|||
14
alexkayzer
21.02.13
✎
18:17
|
ОК опять все конструктором исправил теперь такая ошибка
{Документ.ОказаниеУслуги.МодульОбъекта(134)}: Поле объекта не обнаружено (Номенклатура) Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура; Процедура ОбработкаПроведения(Отказ, Режим) Запрос = Новый Запрос; Если Режим = РежимПроведенияДокумента.Оперативный Тогда Запрос.Текст ="ВЫБРАТЬ | ОказаниеУслугиПереченьНоменклатуры.Номенклатура, | ОказаниеУслугиПереченьНоменклатуры.Количество, | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | ОказаниеУслугиПереченьНоменклатуры.Сумма, | ОстаткиМатериаловОстатки.КоличествоОстаток, | СтоимостьМатериаловОстатки.СтоимостьОстаток, | ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе |ИЗ | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки( | &МоментВремени, | Материал В (&СписокНоменклатурыДокумента) | И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал |ГДЕ | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.СтоимостьМатериалов.Остатки, | РегистрНакопления.ОстаткиМатериалов.Остатки"; Запрос.УстановитьПараметр("СкладВДокументе", Склад); Иначе Запрос.Текст ="ВЫБРАТЬ | ОказаниеУслугиПереченьНоменклатуры.Номенклатура, | ОказаниеУслугиПереченьНоменклатуры.Количество, | ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры, | ОказаниеУслугиПереченьНоменклатуры.Сумма, | ОстаткиМатериаловОстатки.КоличествоОстаток, | СтоимостьМатериаловОстатки.СтоимостьОстаток |ИЗ | Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки КАК ОстаткиМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки КАК СтоимостьМатериаловОстатки | ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал |ГДЕ | ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ОстаткиМатериалов.Остатки, | РегистрНакопления.СтоимостьМатериалов.Остатки"; КонецЕсли; Запрос.УстановитьПараметр("МоментВремени", МоментВремени()); Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура")); Запрос.УстановитьПараметр("Ссылка", Ссылка); ВыборкаРезультатаЗапроса = Запрос.Выполнить().Выбрать(); Пока ВыборкаРезультатаЗапроса.Следующий() Цикл // ПРоверить остаток при оперативном проведении Если Режим = РежимПроведенияДокумента.Оперативный Тогда Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе = Null, 0 ,ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе); Если Остаток < ВыборкаРезультатаЗапроса.Количество Тогда Сообщить("Материала" +СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура)+"Имеется только"+Остаток); Отказ = Истина; Возврат; КонецЕсли; КонецЕсли; КонецЕсли; //Сформировать движения Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда //Регистр ОстаткиМатериалов Расход Движение = Движения.ОстаткиМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Склад = Склад; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; //Региста СтоимостьМатериалов Расход Движение = Движения.СтоимостьМатериалов.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Материал = ВыборкаРезультатаЗапроса.Номенклатура; //расчитагь стоимость материала СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null, 0, ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток); Движение.Стоимость = СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество; КонецЕсли; // регистр Продажи Движение = Движения.Продажи.Добавить(); Движение.Период = Дата; Движение.Номенклатура = ВыборкаРезультатаЗапроса.Номенклатура; Движение.Клиент = Клиент; Движение.Мастер = Мастер; Движение.Количество = ВыборкаРезультатаЗапроса.Количество; Движение.Выручка = ВыборкаРезультатаЗапроса.Сумма; Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда Движение.Стоимость = СтоимостьМатериала * ВыборкаРезультатаЗапроса.Количество; Иначе Движение.Стоимость = 0; КонецЕсли; КонецЦикла; КонецПроцедуры; |
|||
15
ssh2006
21.02.13
✎
18:28
|
В рег-ре продажи есть "Номенклатура"?
|
|||
16
alexkayzer
21.02.13
✎
18:30
|
Да конечно есть в Измерениях
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |