Синтаксическая ошибка и настройкагруппировкиобщейнастройки этодействующийпараметр

Перейти к контенту

На ночь глядя впал в ступор — в регистр ЦеныНоменклатуры добавлен реквизит ПроцентМенеджеров. Необходимо вывести его в стандартный отчет ПрайсЛист. Казалось бы — добавил поле, ан нет.

В общем закинул реквизит в пакет запросов Цены:

сюда http://clip2net.com/s/3OejAde

и в запрос пакета 5:

сюда http://clip2net.com/s/3OejHYI

на вкладку Компоновка данных в «Поля» и «Условия» (по аналогии с полем Цена)

В СКД добавил поле в Ресурсы.

При попытки формировать отчет (не важно какой вариант отчета — с этим полем или без) выдает ошибку:

(107,63) Синтаксическая ошибка «)» И НастройкаГруппировкиОбщейНастройки.ЭтоДействующийПараметр <<?>>)

Подскажите в какую сторону копать?

Вот текст запроса

ВЫБРАТЬ
	              |	ЦеныНоменклатурыСрезПоследних.Цена,
	              |	ЦеныНоменклатурыСрезПоследних.Валюта,
	              |	ЦеныНоменклатурыСрезПоследних.ВидЦены,
	              |	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	              |	ЦеныНоменклатурыСрезПоследних.Характеристика
	              |ИЗ
	              |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
	              |ГДЕ
	              |	ЦеныНоменклатурыСрезПоследних.ВидЦены В(&ТипЦен)
	              |	И ЦеныНоменклатурыСрезПоследних.Номенклатура В(&Номенлатуры)"

Запрос построено на конструкторе запросов.

Текст ошибки

{Форма.ГлавнаяФорма.Форма(206)}: Ошибка при вызове метода контекста (Выполнить)
	ТабЗначРезультат = Запрос.Выполнить().Выгрузить();
по причине:
{(4, 2)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ

  • Вопрос задан

    более трёх лет назад

  • 2220 просмотров

Ошибка синтаксиса языка запроса.
Вам нужно определится с тем, что вы используете. Если работаете с физической таблицей, то источник = РегистрСведений.ЦеныНоменклатуры. Если хотите виртуальную таблицу срезу последних, то даже не обязательно задавать время среза и условие (которое вы запихнули в секцию ГДЕ), но обязательно указать круглые кавычки!

ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.ВидЦены,
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Характеристика
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены В(&ТипЦен) и Номенклатура В(&Номенлатуры)) КАК ЦеныНоменклатурыСрезПоследних»

Пригласить эксперта


  • Показать ещё
    Загружается…

11 июн. 2023, в 15:03

3500 руб./за проект

11 июн. 2023, в 14:29

8000 руб./за проект

11 июн. 2023, в 14:28

500 руб./за проект

Минуточку внимания

Всё работало хорошо, но вдруг перестало, после того, как я внес изменения в макет СКД:

При формировании отчета появлялась надпись «Синтаксическая ошибка» и всё.

Когда убрал некоторые секции, методом деструктивного исключения обнаружил, что глючит зеленая секция.

Благо, CTRL+Z сработал и вернул изменения назад (каюсь, рабочей версии отчета не было).

Вздохнул было, но потом опять ошибка возникла. И тут до меня дошло — проблема в пустых ячейках, где указан тип ячейки «Параметр», но не указано, значение какого параметра брать. Поменял тип на Текст — и все заработало.

Экие тонкости в 1С, однако!

0 / 0 / 0

Регистрация: 24.03.2018

Сообщений: 2

1

24.03.2018, 18:19. Показов 10547. Ответов 3


Студворк — интернет-сервис помощи студентам

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{Документ.ОказаниеУслуги.МодульОбъекта(42)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(19, 4)}: Синтаксическая ошибка «ОказаниеУслугиПереченьНоменклатуры.НаборСвойств»
<<?>>ОказаниеУслугиПереченьНоменклатуры.НаборСвойств

P.S Я по книги делаю, Радченко, 100 раз все проверил, все сделал как там.
Изначально запрос строился в конструкторе, но после добавление Плана видов характеристик, в документ Оказание услуг добавили поле НаборСвойств и запрос дополнил в ручную этой строкой!

Объясните поподробнее пожалуйста, а то я в 1С пару дней!

код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Процедура ОбработкаПроведения(Отказ, Режим)
    
    
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать = Истина;
    Движения.Продажи.Записывать = Истина;
    
    // Создать менеджер временных таблиц
    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    
    #Область НоменклатураДокумента
 
    Запрос = Новый Запрос;
    
     // Укажем, какой менеджер временных таблиц использует этот запрос
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
 
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры 
        |                                                     КАК ВидНоменклатуры,
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) 
        |                                       КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) 
        |                                    КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств ";
 
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
 
    РезультатЗапроса = Запрос.Выполнить();
    #КонецОбласти
    
    
     #Область ДвиженияДокумента
    
    Запрос2 = Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
    Запрос2.Текст = "ВЫБРАТЬ
                    |    НоменклатураДокумента.Номенклатура,
                    |    НоменклатураДокумента.ВидНоменклатуры,
                    |    НоменклатураДокумента.НаборСвойств,
                    |    НоменклатураДокумента.КоличествоВДокументе,
                    |    НоменклатураДокумента.СуммаВДокументе,
                    |   ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                    |   ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
                    |ИЗ
                    |    НоменклатураДокумента КАК  НоменклатураДокумента
                    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                    |               ,
                    |               Материал В
                    |                   (ВЫБРАТЬ
                    |                       НоменклатураДокумента.Номенклатура
                    |                   ИЗ
                    |                       НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                    |       ПО  НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал
                    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                    |               ,
                    |               Материал В
                    |                   (ВЫБРАТЬ
                    |                       НоменклатураДокумента.Номенклатура
                    |                   ИЗ
                    |                       НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                    |       ПО  НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал  ";
                    
                    
        // Установим необходимость блокировки данных в регистрах СтоимостьМатериалов
         // и ОстаткиМатериалов
      Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина;
      Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;
                    
    // Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе
    Движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
                    
    РезультатЗапроса = Запрос2.Выполнить();
    
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
              СтоимостьМатериала = 0;
         Иначе
              СтоимостьМатериала =
              ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
        КонецЕсли;
        
        
        
        Если ВыборкаДетальныеЗаписи.ВидНоменклатуры =
            Перечисления.ВидыНоменклатуры.Материал Тогда 
            // регистр ОстаткиМатериалов Расход
        Движение = Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.НаборСвойств = ВыборкаДетальныеЗаписи.НаборСвойств;
        Движение.Склад = Склад;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        // регистр СтоимостьМатериалов Расход
        Движение = Движения.СтоимостьМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;
                                                                  
                                                                   
    КонецЕсли;
    
    // Регистр Продажи
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Клиент = Клиент;
        Движение.Мастер = Мастер;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
        Движение.Стоимость = СтоимостьМатериала * ВыборкаДетальныеЗаписи.КоличествоВДокументе;
 
    
 
    КонецЦикла;
    Движения.Записать();
    #КонецОбласти
    
    
    #Область КонтрольОстатков
           Если Режим = РежимПроведенияДокумента.Оперативный Тогда
           // Проверить отрицательные остатки
           Запрос3 = Новый Запрос;
           Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
           Запрос3.Текст = "ВЫБРАТЬ
                           |    ОстаткиМатериаловОстатки.Материал,
                           |    ОстаткиМатериаловОстатки.НаборСвойств,
                           |    ОстаткиМатериаловОстатки.КоличествоОстаток
                           |ИЗ
                           |    РегистрНакопления.ОстаткиМатериалов.Остатки(,(Материал, НаборСвойств)В
                           |                    (ВЫБРАТЬ
                           |                        НоменклатураДокумента.Номенклатура
                           |                        НоменклатураДокумента.НаборСвойств
                           |                    ИЗ
                           |                        НоменклатураДокумента)
                           |                И Склад = &Склад) КАК ОстаткиМатериаловОстатки
                           |ГДЕ
                           |    ОстаткиМатериаловОстатки.КоличествоОстаток < 0 ";
                           
           Запрос3.УстановитьПараметр("Склад", Склад);
           РезультатЗапроса = Запрос3.Выполнить();
           ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
           
              Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
              Сообщение = Новый СообщениеПользователю();
              Сообщение.Текст = "Не хватает " + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) +
                       " единиц материала """ + ВыборкаДетальныеЗаписи.Материал + """" + 
                       " из набора свойств """ + ВыборкаДетальныеЗаписи.НаборСвойств + """";
               Сообщение.Сообщить();
                    Отказ = Истина;
КонецЦикла;
 
            КонецЕсли;
 
#КонецОбласти   
КонецПроцедуры

Миниатюры

Синтаксическая ошибка в запросе 1С
 

0

  1. Доброго времени суток.

    1С Розница 2.1.9.20. Платформа 8.3.7.1917. При выборе товара в РМК выдает ошибку:

    {(4.1}): Синтаксическая ошибка «ИЗ» <<?>> ИЗ

    Причем не всегда, то со сканера, то при добавлении вручную.. Никакой логики проследить не могу. Бывает, если на товар не назначена цена. Установлю цену, перезапущу 1С — все в норме.

    Сейчас обновился до 2.2.2.9 — вообще работать не могу. Постоянно ошибка.

    Помогите люди добрые..

    Вложения:

    • 2016-02-03 13-54-20 House          (Ctrl+F12 - настройки) [Просмотр].png

  2. {ОбщийМодуль.ОбработкаТабличнойЧастиТоварыСервер.Модуль(1217)}: Ошибка при установке значения атрибута контекста (Текст)
    ПостроительЗапроса.Текст = ТекстЗапроса;
    по причине:
    {(4, 1)}: Синтаксическая ошибка «ИЗ»
    <<?>>ИЗ


  3. bajiepka

    Offline

    bajiepka
    Профессионал в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54

    обычно такая фигня получается, если в запросе, который находится по вышеуказанному адресу, перед «ИЗ» стоит запятая в предыдущей строке, т.е. типа того:

    Справочник.Номенклатура КАК Номенклатура,
    ИЗ
  4. А почему ошибка то есть, то нет?

  5. Offline

    bajiepka
    Профессионал в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54

    надо смотреть отладку конкретно этого запроса. позовите специалиста или программиста — он посмотрит и подправит

  6. Нашел ошибку. В настройке РМК.
    ВЫБРАТЬ
    Номенклатура.Код КАК Поле01,
    Номенклатура.Наименование КАК Поле02,
    ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ГДЕ
    Номенклатура.Ссылка = &Ссылка

    Только так и не понял закономерность, почему ошибка то есть, то нет.
    Вопрос закрыт. Всем спасибо.

  7. Специалистами не рождаются.

  8. Offline

    bajiepka
    Профессионал в 1С

    Регистрация:
    26 сен 2014
    Сообщения:
    460
    Симпатии:
    31
    Баллы:
    54

    состав строк запроса может формироваться по-разному в зависимости от условий продажи, наличия цены на товар и т.д…
    обращайте внимание на место возникновения ошибки

    {ОбщийМодуль.ОбработкаТабличнойЧастиТоварыСервер.Модуль(1217)}:

    если оно одно и тоже, то надо посмотреть в запросе условия выбора, это конструкция типа:

    ВЫБРАТЬ КОГДА ххх ТОГДА ууу КОНЕЦ КАК Имя

    там может либо быть какая-то ошибка, либо в конце перед ИЗ всё равно получается запятая

    — Объединение сообщений, 14 фев 2016

    если хотите найти ошибку самостоятельно, то переходите в конфигуратор, ставьте курсор на запросе, ПКМ, переходите в конструктор запроса. При переходе осуществляется проверка и если что-то не так, то прямо сразу же конструктор напишет что и где не так

  9. Спасибо, я уже нашел. Верно, перед ИЗ стоит запятая.
    Через отладчик и вышел к ошибке, впервые и воспользовавшись ))
    Ориентируюсь на местности я быстро, есть опыт программирования промышленных контроллеров.
    Но в языке 1С еще даже не пытался разбираться, поэтому читаю запрос, а правил написания не знаю.

Вот текст запроса

ВЫБРАТЬ
	              |	ЦеныНоменклатурыСрезПоследних.Цена,
	              |	ЦеныНоменклатурыСрезПоследних.Валюта,
	              |	ЦеныНоменклатурыСрезПоследних.ВидЦены,
	              |	ЦеныНоменклатурыСрезПоследних.Номенклатура,
	              |	ЦеныНоменклатурыСрезПоследних.Характеристика
	              |ИЗ
	              |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
	              |ГДЕ
	              |	ЦеныНоменклатурыСрезПоследних.ВидЦены В(&ТипЦен)
	              |	И ЦеныНоменклатурыСрезПоследних.Номенклатура В(&Номенлатуры)"

Запрос построено на конструкторе запросов.

Текст ошибки

{Форма.ГлавнаяФорма.Форма(206)}: Ошибка при вызове метода контекста (Выполнить)
	ТабЗначРезультат = Запрос.Выполнить().Выгрузить();
по причине:
{(4, 2)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ


  • Вопрос задан

  • 2351 просмотр

Ошибка синтаксиса языка запроса.
Вам нужно определится с тем, что вы используете. Если работаете с физической таблицей, то источник = РегистрСведений.ЦеныНоменклатуры. Если хотите виртуальную таблицу срезу последних, то даже не обязательно задавать время среза и условие (которое вы запихнули в секцию ГДЕ), но обязательно указать круглые кавычки!

ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.Валюта,
| ЦеныНоменклатурыСрезПоследних.ВидЦены,
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Характеристика
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены В(&ТипЦен) и Номенклатура В(&Номенлатуры)) КАК ЦеныНоменклатурыСрезПоследних»

Пригласить эксперта


  • Показать ещё
    Загружается…

23 сент. 2023, в 01:31

6000 руб./за проект

23 сент. 2023, в 01:13

3000 руб./за проект

22 сент. 2023, в 23:30

6500 руб./за проект

Минуточку внимания

Всё работало хорошо, но вдруг перестало, после того, как я внес изменения в макет СКД:

При формировании отчета появлялась надпись «Синтаксическая ошибка» и всё.

Когда убрал некоторые секции, методом деструктивного исключения обнаружил, что глючит зеленая секция.

Благо, CTRL+Z сработал и вернул изменения назад (каюсь, рабочей версии отчета не было).

Вздохнул было, но потом опять ошибка возникла. И тут до меня дошло — проблема в пустых ячейках, где указан тип ячейки «Параметр», но не указано, значение какого параметра брать. Поменял тип на Текст — и все заработало.

Экие тонкости в 1С, однако!

0 / 0 / 0

Регистрация: 24.03.2018

Сообщений: 2

1

24.03.2018, 18:19. Показов 10802. Ответов 3


Студворк — интернет-сервис помощи студентам

Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
{Документ.ОказаниеУслуги.МодульОбъекта(42)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(19, 4)}: Синтаксическая ошибка «ОказаниеУслугиПереченьНоменклатуры.НаборСвойств»
<<?>>ОказаниеУслугиПереченьНоменклатуры.НаборСвойств

P.S Я по книги делаю, Радченко, 100 раз все проверил, все сделал как там.
Изначально запрос строился в конструкторе, но после добавление Плана видов характеристик, в документ Оказание услуг добавили поле НаборСвойств и запрос дополнил в ручную этой строкой!

Объясните поподробнее пожалуйста, а то я в 1С пару дней!

код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
Процедура ОбработкаПроведения(Отказ, Режим)
    
    
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать = Истина;
    Движения.Продажи.Записывать = Истина;
    
    // Создать менеджер временных таблиц
    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    
    #Область НоменклатураДокумента
 
    Запрос = Новый Запрос;
    
     // Укажем, какой менеджер временных таблиц использует этот запрос
    Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
 
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры 
        |                                                     КАК ВидНоменклатуры,
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество) 
        |                                       КАК КоличествоВДокументе,
        |   СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма) 
        |                                    КАК СуммаВДокументе
        |ПОМЕСТИТЬ НоменклатураДокумента
        |ИЗ
        |   Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
        |ГДЕ
        |   ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
        |
        |СГРУППИРОВАТЬ ПО
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
        |   ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры
        |   ОказаниеУслугиПереченьНоменклатуры.НаборСвойств ";
 
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
 
    РезультатЗапроса = Запрос.Выполнить();
    #КонецОбласти
    
    
     #Область ДвиженияДокумента
    
    Запрос2 = Новый Запрос;
    Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
    Запрос2.Текст = "ВЫБРАТЬ
                    |    НоменклатураДокумента.Номенклатура,
                    |    НоменклатураДокумента.ВидНоменклатуры,
                    |    НоменклатураДокумента.НаборСвойств,
                    |    НоменклатураДокумента.КоличествоВДокументе,
                    |    НоменклатураДокумента.СуммаВДокументе,
                    |   ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
                    |   ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
                    |ИЗ
                    |    НоменклатураДокумента КАК  НоменклатураДокумента
                    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
                    |               ,
                    |               Материал В
                    |                   (ВЫБРАТЬ
                    |                       НоменклатураДокумента.Номенклатура
                    |                   ИЗ
                    |                       НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
                    |       ПО  НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал
                    |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
                    |               ,
                    |               Материал В
                    |                   (ВЫБРАТЬ
                    |                       НоменклатураДокумента.Номенклатура
                    |                   ИЗ
                    |                       НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
                    |       ПО  НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал  ";
                    
                    
        // Установим необходимость блокировки данных в регистрах СтоимостьМатериалов
         // и ОстаткиМатериалов
      Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина;
      Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;
                    
    // Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе
    Движения.СтоимостьМатериалов.Записать();
    Движения.ОстаткиМатериалов.Записать();
                    
    РезультатЗапроса = Запрос2.Выполнить();
    
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
 
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
              СтоимостьМатериала = 0;
         Иначе
              СтоимостьМатериала =
              ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
        КонецЕсли;
        
        
        
        Если ВыборкаДетальныеЗаписи.ВидНоменклатуры =
            Перечисления.ВидыНоменклатуры.Материал Тогда 
            // регистр ОстаткиМатериалов Расход
        Движение = Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.НаборСвойств = ВыборкаДетальныеЗаписи.НаборСвойств;
        Движение.Склад = Склад;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        // регистр СтоимостьМатериалов Расход
        Движение = Движения.СтоимостьМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;
                                                                  
                                                                   
    КонецЕсли;
    
    // Регистр Продажи
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
        Движение.Клиент = Клиент;
        Движение.Мастер = Мастер;
        Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
        Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
        Движение.Стоимость = СтоимостьМатериала * ВыборкаДетальныеЗаписи.КоличествоВДокументе;
 
    
 
    КонецЦикла;
    Движения.Записать();
    #КонецОбласти
    
    
    #Область КонтрольОстатков
           Если Режим = РежимПроведенияДокумента.Оперативный Тогда
           // Проверить отрицательные остатки
           Запрос3 = Новый Запрос;
           Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
           Запрос3.Текст = "ВЫБРАТЬ
                           |    ОстаткиМатериаловОстатки.Материал,
                           |    ОстаткиМатериаловОстатки.НаборСвойств,
                           |    ОстаткиМатериаловОстатки.КоличествоОстаток
                           |ИЗ
                           |    РегистрНакопления.ОстаткиМатериалов.Остатки(,(Материал, НаборСвойств)В
                           |                    (ВЫБРАТЬ
                           |                        НоменклатураДокумента.Номенклатура
                           |                        НоменклатураДокумента.НаборСвойств
                           |                    ИЗ
                           |                        НоменклатураДокумента)
                           |                И Склад = &Склад) КАК ОстаткиМатериаловОстатки
                           |ГДЕ
                           |    ОстаткиМатериаловОстатки.КоличествоОстаток < 0 ";
                           
           Запрос3.УстановитьПараметр("Склад", Склад);
           РезультатЗапроса = Запрос3.Выполнить();
           ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
           
              Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
              Сообщение = Новый СообщениеПользователю();
              Сообщение.Текст = "Не хватает " + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) +
                       " единиц материала """ + ВыборкаДетальныеЗаписи.Материал + """" + 
                       " из набора свойств """ + ВыборкаДетальныеЗаписи.НаборСвойств + """";
               Сообщение.Сообщить();
                    Отказ = Истина;
КонецЦикла;
 
            КонецЕсли;
 
#КонецОбласти   
КонецПроцедуры

Миниатюры

Синтаксическая ошибка в запросе 1С
 



0



1

2

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Наталья.К

Дата регистрации: 13.04.2009
Сообщений: 6

«При попытке провести платежное поручение исходящее выдает сообщение: Ошибка при вызове метода контекста [Выполнить]:{(1,6)}: Синтаксическая ошибка «;» «?»; <br>Подскажите, пожайлуста, что делать?»

Денис (САМАРА)

Дата регистрации: 09.04.2008
Сообщений: 8351

В случае «базовой» ждать исправления.

Наталья.К

Дата регистрации: 13.04.2009
Сообщений: 6

> В случае «базовой» ждать исправления.<br><br>От «кого» ждать исправления? Я уже неделю не могу провести платежки.

ВРедная

Дата регистрации: 03.02.2007
Сообщений: 954

Напишите свой релиз, напишите как вы это пп проводите. Ошибка как то странно выглядит. В идеале, нажмите «Подробнее» и процитируйте, все что там написано.

Wee

Дата регистрации: 24.11.2007
Сообщений: 464

Обновить платформу.<br><br>~~~ Красноярск, http://x-frame.ru ~~~

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20928

Не дождется она исправления, как правильно подсказали ниже, надо обновить платформу!

Наталья.К

Дата регистрации: 13.04.2009
Сообщений: 6

«> Напишите свой релиз, напишите как вы это пп проводите. Ошибка как то странно выглядит. В идеале, нажмите «Подробнее» и процитируйте, все что там написано.<br><br>1С:Предприятие 8.1 (8.1.10.50)<br>Подробнее:<br>Ошибка при выполнении обработчика — ‘{ОбщийМодуль.УчетНДСФормированиеДвижений(4079)}: Ошибка при вызове метода контекста (Выполнить): {(6, 1)}: Синтаксическая ошибка «;»<br><<?>>;'<br>по причине:<br>{ОбщийМодуль.УчетНДСФормированиеДвижений(4079)}: Ошибка при вызове метода контекста (Выполнить): {(6, 1)}: Синтаксическая ошибка «;»<br><<?>>;<br>по причине:<br>{(6, 1)}: Синтаксическая ошибка «;»<br><<?>>;<br><br>При получении выписки из банка ставлю флажок в поле Оплачено. Но появляется сообщение операция не выполнена. Платежка не проводится.<br>Пробую через выписки банка-подобрать неоплаченные.Выдает синтаксическую ошибку.<br><br>»

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20928

Девушка Вы хоть читаете, что вам пишут? Платформу обновите и все у Вас наладится!

zak555 (398843952)

Дата регистрации: 27.03.2008
Сообщений: 4656

> Девушка Вы хоть читаете, что вам пишут? Платформу обновите и все у Вас наладится!<br><br>не надо нервничать )))

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20928

«а кто нервничает? да спокоен как удав! ;) Просто уже 2 человека написал, обновите платформу, только в этой теме, а сколько было написано прежде? Эх, надо было послать в поиск ( http://lrn.ru/image.php/lrnbig1202.jpg?imageid=1202&size=1 )!»

Читают тему:

Понравилась статья? Поделить с друзьями:
  • Синтаксическая ошибка выбрать во вложенном запросе
  • Синтаксическая и пунктуационная ошибка
  • Синтаксическая ошибка на телевизоре андроид
  • Синтаксическая ошибка всегда ошибка
  • Синтаксис типичные ошибки