Ошибка в подзапросе (Ожидается выражение "ВЫБРАТЬ" <<?>>Номенклатура В ( ))
Всем привет, подскажите, пожалуйста, пытаюсь сделать запрос, но не выходит результат, стал проверять через консоль запросов и вводить подзапрос, в итоге выдал ошибку -
Пробовал через отладчик посмотреть, останавливается на
пишет ошибка при чтении, соответственно, дальше не проходит и все мои значения в запросе неопределенны
Ошибка при вызове метода контекста (УстановитьТекстЗапроса)
{ВнешняяОбработка.QueryWizard.Форма.QueryWizard.Форма(118)}:QuerySchema.SetQueryText(Query);
{ВнешняяОбработка.QueryWizard.Форма.ArbitraryExpression.Форма(325)}:OpenForm("ExternalDataProcessor.QueryWizard.Form.QueryWizard", Params,, True,,,
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>Номенклатура В ( )
{ВнешняяОбработка.QueryWizard.Форма.QueryWizard.Форма(118)}:QuerySchema.SetQueryText(Query);
{ВнешняяОбработка.QueryWizard.Форма.ArbitraryExpression.Форма(325)}:OpenForm("ExternalDataProcessor.QueryWizard.Form.QueryWizard", Params,, True,,,
по причине:
{(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
<<?>>Номенклатура В ( )
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СебестоимостьТоваровОстатки.Номенклатура КАК Номенклатура,
| СебестоимостьТоваровОстатки.СуммаОстаток КАК Сумма,
| СебестоимостьТоваровОстатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.СебестоимостьТоваров.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| РеализацияТоваровИУслугТовары.Товар КАК Товар
| ИЗ
| Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары
| ГДЕ
| РеализацияТоваровИУслугТовары.Ссылка = &Ссылка)) КАК СебестоимостьТоваровОстатки";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество <> 0 Тогда
СебеСтоимостьЕдиницы = ВыборкаДетальныеЗаписи.Сумма/ВыборкаДетальныеЗаписи.Количество;
Иначе
СебеСтоимостьЕдиницы = 0;
КонецЕсли;
ПоказатьПробовал через отладчик посмотреть, останавливается на
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
пишет ошибка при чтении, соответственно, дальше не проходит и все мои значения в запросе неопределенны
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) это старая болезнь консолей.
(1)
Нет возвращаемых записей. Результат запроса - пустой.
Судя по коду, если в регистре еще не было записей по списку номенклатуры из ТЧ документа, то так и будет.
Виртуальная таблица Остатки получает значения, не включая указываемый период. В данном случае до момента времени документа.
(1)
пишет ошибка при чтении, соответственно, дальше не проходит и все мои значения в запросе неопределенны
Нет возвращаемых записей. Результат запроса - пустой.
Судя по коду, если в регистре еще не было записей по списку номенклатуры из ТЧ документа, то так и будет.
Виртуальная таблица Остатки получает значения, не включая указываемый период. В данном случае до момента времени документа.
Тут бы надо определиться...
Текст ошибки - это из обработки консоль запросов. Что-то туда не то записали, текста запроса нет, скорее всего. Мы это исправляем?
Или мы хотим понять, почему наш запрос ничего не возвращает? Тогда неплохо бы посмотреть, какие параметры мы запросу передаем. Если даже отладчик у нас работает, то это вроде бы не так уж сложно.
Или какую проблему хотим решить? Их много перечислено и все разные...
Текст ошибки - это из обработки консоль запросов. Что-то туда не то записали, текста запроса нет, скорее всего. Мы это исправляем?
Или мы хотим понять, почему наш запрос ничего не возвращает? Тогда неплохо бы посмотреть, какие параметры мы запросу передаем. Если даже отладчик у нас работает, то это вроде бы не так уж сложно.
Или какую проблему хотим решить? Их много перечислено и все разные...
(2) Кто мы??? ученики 1с
Чего мы хотим??? не знаем
когда??? сейчас
А если серьезно, то для меня запрос в консоли и конфигураторе одно и тоже. Я же на учебной тренируюсь. Учу по Гилеву и там в документе РеализацияТоваровИУслуг должны проходить движения в регистры Себестоимость и Продажи, но почему то после
отладчик уходит в конецЕсли
Чего мы хотим??? не знаем
когда??? сейчас
А если серьезно, то для меня запрос в консоли и конфигураторе одно и тоже. Я же на учебной тренируюсь. Учу по Гилеву и там в документе РеализацияТоваровИУслуг должны проходить движения в регистры Себестоимость и Продажи, но почему то после
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
отладчик уходит в конецЕсли
Если НЕ Отказ Тогда
Движения.СебестоимостьТоваров.Записывать = Истина;
// регистр Продажи
Движения.Продажи.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СебестоимостьТоваровОстатки.Номенклатура КАК Номенклатура,
| СебестоимостьТоваровОстатки.СуммаОстаток КАК Сумма,
| СебестоимостьТоваровОстатки.КоличествоОстаток КАК Количество
|ИЗ
| РегистрНакопления.СебестоимостьТоваров.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| РеализацияТоваровИУслугТовары.Товар КАК Товар
| ИЗ
| Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары
| ГДЕ
| РеализацияТоваровИУслугТовары.Ссылка = &Ссылка)) КАК СебестоимостьТоваровОстатки";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество <> 0 Тогда
СебеСтоимостьЕдиницы = ВыборкаДетальныеЗаписи.Сумма/ВыборкаДетальныеЗаписи.Количество;
Иначе
СебеСтоимостьЕдиницы = 0;
КонецЕсли;
// Движения по регистру СебестоимостьТоваров
Движение = Движения.СебестоимостьТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
СтрокаТЧ = Товары.Найти(ВыборкаДетальныеЗаписи.Номенклатура, "Товар");
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Количество = СтрокаТЧ.Количество;
СебестоимостьСписания = СебеСтоимостьЕдиницы * СтрокаТЧ.Количество;
Движение.Сумма = СебестоимостьСписания;
// Движения по регистру Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Клиент = Клиент;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Количество = СтрокаТЧ.Количество;
Движение.Сумма = СтрокаТЧ.Сумма;
Движение.Себестоимость = СебестоимостьСписания;
КонецЦикла;
КонецЕсли;
Показать
(3)
ну тут же не ты запросы выполняешь, а 1с. Поэтому важно, что для нее запросы, а не что для тебя, так?
(2)
а если еще и отвечать на вопросы...
(3)
так у препода спроси, это его работа, он за нее получает деньги. Он лучше объяснит. Здесь все-таки не учат
для меня запрос в консоли и конфигураторе одно и тоже
ну тут же не ты запросы выполняешь, а 1с. Поэтому важно, что для нее запросы, а не что для тебя, так?
(2)
неплохо бы посмотреть, какие параметры мы запросу передаем
а если еще и отвечать на вопросы...
(3)
Я же на учебной тренируюсь
так у препода спроси, это его работа, он за нее получает деньги. Он лучше объяснит. Здесь все-таки не учат
(6)
Я так написал, потому что не знал, что для нее это разные вещи
ну тут же не ты запросы выполняешь, а 1с. Поэтому важно, что для нее запросы, а не что для тебя, так?
Я так написал, потому что не знал, что для нее это разные вещи
Текст ошибки - это из обработки консоль запросов. Что-то туда не то записали, текста запроса нет, скорее всего. Мы это исправляем?
Или мы хотим понять, почему наш запрос ничего не возвращает?
Или мы хотим понять, почему наш запрос ничего не возвращает?
Прикрепленные файлы:
(6)
Во-первых, я смотрю на ютюбе курс без прямой обратной связи, во-вторых, я думал, что форум для этого и существует, чтобы можно было задать вопрос, а те кому не лень могли бы подсказать. Я же не насильно сюда тащу людей
так у препода спроси, это его работа, он за нее получает деньги. Он лучше объяснит. Здесь все-таки не учат
Во-первых, я смотрю на ютюбе курс без прямой обратной связи, во-вторых, я думал, что форум для этого и существует, чтобы можно было задать вопрос, а те кому не лень могли бы подсказать. Я же не насильно сюда тащу людей
В общем, в моем случае решением было проверка на оперативность документа. У меня запрос стоял в условии, что документ оперативный, а я проводил на доках предыдущих дней. Создал новый док и вуаля - я программист. Может кому поможет.
(13) Возможно как раз вопрос в галочках Проведение и ОперативноеПроведение.
Обработка проведения имеет два параметра(Отказ, режим)
Режим.. проводите документ сегодня? ВЫ его проводите здесь и сейчас, это оперативное проведение.
если вы проводите фиг пойми какой датой, но не сегодня - это неоперативное проведение.
Итого, если в свойствах документа на вкладке Движения - неоперативное проведение запрещено, то и результат понятен.
"Вуаля, я программист" - улыбнуло. Сказала бы, но помолчу)))
Обработка проведения имеет два параметра(Отказ, режим)
Режим.. проводите документ сегодня? ВЫ его проводите здесь и сейчас, это оперативное проведение.
если вы проводите фиг пойми какой датой, но не сегодня - это неоперативное проведение.
Итого, если в свойствах документа на вкладке Движения - неоперативное проведение запрещено, то и результат понятен.
"Вуаля, я программист" - улыбнуло. Сказала бы, но помолчу)))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот