Собственно вопрос в следующем, был рабочий запрос, но не хватало цен номенклатуры, немного по гуглив внес изменения, теперь выдает ошибку
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(28, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
(пробовал несколько вариантов конструкций ИЗ и ГДЕ, ошибка остается прежней, С запросами пока на "Вы" :)
Текст запроса ниже, все изменения выделены жирным
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте
| ),
| РегистрСведений.ЦеныНоменклатуры.Номенклатура КАК Товар,
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура =Товар
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(28, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
(пробовал несколько вариантов конструкций ИЗ и ГДЕ, ошибка остается прежней, С запросами пока на "Вы" :)
Текст запроса ниже, все изменения выделены жирным
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте
| ),
| РегистрСведений.ЦеныНоменклатуры.Номенклатура КАК Товар,
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура =Товар
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
По теме из базы знаний
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Экспертный взгляд на оптимизацию производительности на примере исправления и декомпозиции запроса
- Модель запроса SQL
- Внутренняя жизнь ваших запросов PostgreSQL. Как и зачем «подглядывать» в подробности
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
конфу перезапускал, текущий текс запроса
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте
| ),
| Цена.Номенклатура КАК Товар,
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура =Товар
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Дата = ТекущаяДата();
ТипЦен = ТекущийДокумент.ТипЦены ;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте
| ),
| Цена.Номенклатура КАК Товар,
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура =Товар
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
после удаления запятой, новая ошибка
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 44)}: Поле не найдено "Товар"
ПО СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар
{Документ.СборкаЗапасов.МодульМенеджера(7332)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 44)}: Поле не найдено "Товар"
ПО СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар
(10) гыук320, блин, что-то меня колбасит к вечеру :)
Связка
ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура
только, кажется поле "Цена.Номенклатура КАК Товар" нужно в скобки загнать.
И еще, а ты уверен что тебе из регистра (все то же поле "Как товар") нужно имено "Товар"? Он и так есть как Номенклатура. Из регистра тебе наверно нужен ресурс "Цена" или как он там.
Тогда должно быть
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| Цена.Цена КАК ЦенаТовара)
| ИЗ
Если я опять ничего не напутал :)
ЗЫ. А про параметры правильн тебе сказали - ты их не установил - но там другая ошибка полезет - мы до нее еше не дошли :)
Связка
ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура
только, кажется поле "Цена.Номенклатура КАК Товар" нужно в скобки загнать.
И еще, а ты уверен что тебе из регистра (все то же поле "Как товар") нужно имено "Товар"? Он и так есть как Номенклатура. Из регистра тебе наверно нужен ресурс "Цена" или как он там.
Тогда должно быть
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| Цена.Цена КАК ЦенаТовара)
| ИЗ
Если я опять ничего не напутал :)
ЗЫ. А про параметры правильн тебе сказали - ты их не установил - но там другая ошибка полезет - мы до нее еше не дошли :)
Так конечно лучше, но ошибка остается прежней видимо как-то криво товар присваиваю
{Документ.СборкаЗапасов.МодульМенеджера(7333)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 45)}: Поле не найдено "Товар"
ПО (СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар)
{Документ.СборкаЗапасов.МодульМенеджера(7333)}: Ошибка при вызове метода контекста (Выполнить)
Шапка = Запрос.Выполнить().Выбрать();
по причине:
{(31, 45)}: Поле не найдено "Товар"
ПО (СборкаЗапасов.Продукция.Номенклатура =<<?>>Товар)
После всех рекомендаций запрос стал следующем
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| Цена.Цена КАК ЦенаТовара)
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
ОШИБКА
: Неоднозначное поле "Цена.Номенклатура"
ПО СборкаЗапасов.Продукция.Номенклатура = <<?>>Цена.Номенклатура
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| Цена.Цена КАК ЦенаТовара)
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК Цена
| ПО СборкаЗапасов.Продукция.Номенклатура = Цена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
ОШИБКА
: Неоднозначное поле "Цена.Номенклатура"
ПО СборкаЗапасов.Продукция.Номенклатура = <<?>>Цена.Номенклатура
(19) гыук320, я же не знаю как называется ресурс в регистре где хранится цена. Я как пример написал :)
МОжет он называется например ЗначениеЦены (посмотри структуру в регистре).
Ладно, в любом случае избавляемся от неоднозначности - меням псведаним регстра на тЦена.
| тЦена.Цена КАК ЦенаТовара) // вот тут может быть и тЦена.ЗначениеЦены - смотря что в регистре
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
МОжет он называется например ЗначениеЦены (посмотри структуру в регистре).
Ладно, в любом случае избавляемся от неоднозначности - меням псведаним регстра на тЦена.
| тЦена.Цена КАК ЦенаТовара) // вот тут может быть и тЦена.ЗначениеЦены - смотря что в регистре
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
(22) гыук320, стыдно признаться, но я не могу придумать в чем может быть ошибка :(
Выложи еще раз текст полученого запроса.
Я проверил на своих базах (на аналогичной ситуации) - у меня работает (ошибки нет).
Мой запрос (структура примерно такая же):
Выложи еще раз текст полученого запроса.
Я проверил на своих базах (на аналогичной ситуации) - у меня работает (ошибки нет).
Мой запрос (структура примерно такая же):
ВЫБРАТЬ
АктТранспортированияГруза.Вагоны.(
Вагон,
РейсыВагоновСрезПоследних.Операция
),
АктТранспортированияГруза.Номер,
АктТранспортированияГруза.Дата
ИЗ
Документ.АктТранспортированияГруза КАК АктТранспортированияГруза
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РейсыВагонов.СрезПоследних КАК РейсыВагоновСрезПоследних
ПО АктТранспортированияГруза.Вагоны.Вагон = РейсыВагоновСрезПоследних.Вагон
ГДЕ
АктТранспортированияГруза.Ссылка = &Ссылка
Показать
(26) Ягг,
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| тЦена.Цена КАК ЦенаТовара )
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.Дата КАК ДатаДокумента,
| СборкаЗапасов.Организация КАК Организация,
| СборкаЗапасов.Номер КАК Номер,
| СборкаЗапасов.Организация.Префикс КАК Префикс,
| СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
| СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
| СборкаЗапасов.Продукция.(
| НомерСтроки,
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
| Резерв КАК Резерв,
| Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| Характеристика,
| ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| Номенклатура.Код КАК ТоварКод,
| Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| тЦена.Цена КАК ЦенаТовара )
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
(27) гыук320, сожалею, я не знаю в чем может быть ошибка (не сумел ее повторить у себя). :(
1. Проверь в отладчике чему при формировании запроса у тебя равно ТекущаяДата()
2. Попробуй сделсть просто запрос к регистру ЦеныНоменклатуры и посмотри будет ли он работать с теми же параметрами. т.е. просто так:
не важно какой будет результат запроса, важно что бы он выполнился (не было ошибки "невозможно выполнить запрос".)
Не совсем представляю с чем может быть связана такая ошибка (если только не с порушением итогов). Когда разберешся - напиши в чем причина
1. Проверь в отладчике чему при формировании запроса у тебя равно ТекущаяДата()
2. Попробуй сделсть просто запрос к регистру ЦеныНоменклатуры и посмотри будет ли он работать с теми же параметрами. т.е. просто так:
Выбрать тЦена.Цена как ЦенаТовара из РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
не важно какой будет результат запроса, важно что бы он выполнился (не было ошибки "невозможно выполнить запрос".)
Не совсем представляю с чем может быть связана такая ошибка (если только не с порушением итогов). Когда разберешся - напиши в чем причина
(27)
...
| СборкаЗапасов.Продукция.(
...
| тЦена.Цена КАК ЦенаТовара )
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
...
так нельзя, т.к. ЛЕВОЕ СОЕДИНЕНИЕ снаружи содержит номенклатуру, которая меняется внутри скобок
Пробуйте просто (даже отдельным запросом):
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасовПродукция.НомерСтроки, // тут у меня почему-то на неоднозначность обругалось
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
...
| тЦена.Цена КАК ЦенаТовара
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ТипЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасовПродукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасовПродукция.Ссылка.Ссылка = &ТекущийДокумент";
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
...
| СборкаЗапасов.Продукция.(
...
| тЦена.Цена КАК ЦенаТовара )
|
|ИЗ
| Документ.СборкаЗапасов КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Продукция.Номенклатура = тЦена.Номенклатура
...
так нельзя, т.к. ЛЕВОЕ СОЕДИНЕНИЕ снаружи содержит номенклатуру, которая меняется внутри скобок
Пробуйте просто (даже отдельным запросом):
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасовПродукция.НомерСтроки, // тут у меня почему-то на неоднозначность обругалось
| Номенклатура.НаименованиеПолное КАК Запас,
| Номенклатура.Артикул КАК Артикул,
| Количество КАК КоличествоМест,
...
| тЦена.Цена КАК ЦенаТовара
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,ТипЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасовПродукция.Номенклатура = тЦена.Номенклатура
|ГДЕ
| СборкаЗапасовПродукция.Ссылка.Ссылка = &ТекущийДокумент";
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
1. Войдите в консоль запросов.
2. Введите туда исходный запрос (когда ещё не было изменений).
3. Войдите в меню приложения Текст->Констуктор запросов и там делайте все исправления.
4. В консоле запросов на закладке параметры укажите - параметры получить из запроса.
5. Выполните запрос.
Этот правильный путь быстро приведёт к результату.
2. Введите туда исходный запрос (когда ещё не было изменений).
3. Войдите в меню приложения Текст->Констуктор запросов и там делайте все исправления.
4. В консоле запросов на закладке параметры укажите - параметры получить из запроса.
5. Выполните запрос.
Этот правильный путь быстро приведёт к результату.
Консоль запросов есть во многих приложениях. Посмотрите Операции->Обработки->Консоль запросов.
Если её нет, скачайте с диска ИТС \1CIts\EXE\EXTREPS\UNIREPS82\RequestConsole\КонсольЗапросов.epf.
Если и ИТС нет, укажите адрес, я скину эту полезную обработку!
Если её нет, скачайте с диска ИТС \1CIts\EXE\EXTREPS\UNIREPS82\RequestConsole\КонсольЗапросов.epf.
Если и ИТС нет, укажите адрес, я скину эту полезную обработку!
Дело было не в бабине...
Как понимает моя логика проблема в том что в запросе построен не через табличную часть а через виртуальную таблицу шапки.. исходный запрос делает выборку реквизитов шапки документа и возвращает табличную часть Продукция как результат запроса а потом это дело выгружается
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Получается пакет не выполняется так как не может в запросе сделать связь по номенклатуре...
Переписал запрос:
Но тогда соответственно не отрабатывает:
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Заменяем данную строку на :
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
И будет вам счастье
Как понимает моя логика проблема в том что в запросе построен не через табличную часть а через виртуальную таблицу шапки.. исходный запрос делает выборку реквизитов шапки документа и возвращает табличную часть Продукция как результат запроса а потом это дело выгружается
Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Получается пакет не выполняется так как не может в запросе сделать связь по номенклатуре...
Переписал запрос:
ВЫБРАТЬ
СборкаЗапасовПродукция.Ссылка.Дата КАК ДатаДокумента,
СборкаЗапасовПродукция.Ссылка.Организация КАК Организация,
СборкаЗапасовПродукция.Ссылка.Номер КАК Номер,
СборкаЗапасовПродукция.Ссылка.Организация.Префикс КАК Префикс,
СборкаЗапасовПродукция.Ссылка.СтруктурнаяЕдиница КАК Отправитель,
СборкаЗапасовПродукция.Ссылка.СтруктурнаяЕдиницаПродукции КАК Получатель,
СборкаЗапасовПродукция.НомерСтроки,
СборкаЗапасовПродукция.Номенклатура.НаименованиеПолное КАК Запас,
СборкаЗапасовПродукция.Номенклатура.Артикул КАК Артикул,
СборкаЗапасовПродукция.Количество КАК КоличествоМест,
СборкаЗапасовПродукция.Цена,
СборкаЗапасовПродукция.Сумма,
СборкаЗапасовПродукция.Резерв,
СборкаЗапасовПродукция.Ссылка.ЗаказПокупателя,
СборкаЗапасовПродукция.Характеристика,
СборкаЗапасовПродукция.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
СборкаЗапасовПродукция.Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
СборкаЗапасовПродукция.Номенклатура.Код КАК ТоварКод,
СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
СборкаЗапасовПродукция.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
ВЫБОР
КОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
ТОГДА СборкаЗапасовПродукция.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоличествоВОдномМесте,
тЦена.Цена КАК ЦенаИзРегистра
ИЗ
Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
ПО СборкаЗапасовПродукция.Номенклатура = тЦена.Номенклатура
ГДЕ
СборкаЗапасовПродукция.Ссылка.Ссылка = &ТекущийДокумент
ПоказатьНо тогда соответственно не отрабатывает:
ВыборкаСтрокЗапасы = Шапка.Продукция.Выгрузить();
Заменяем данную строку на :
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
И будет вам счастье
(33) anterehin, не совсем понял, но
1. ошибка "Запрос не может ыбть выполнен" свзазана имено с командой "Запрос.Выполнить()", а то что там потом идет выгрузка это уже не так важно. Хотя, надо конечно уточнить на какой строчке вываливается ошибка.
2. я проверял запрос на консоле запросов, а там, в конце, имено что все выгружается в таблицу значений. Проблем никаких нет (счас еще раз проверил с другим аналогичным случаем).
Или я чего-то не догоняю
1. ошибка "Запрос не может ыбть выполнен" свзазана имено с командой "Запрос.Выполнить()", а то что там потом идет выгрузка это уже не так важно. Хотя, надо конечно уточнить на какой строчке вываливается ошибка.
2. я проверял запрос на консоле запросов, а там, в конце, имено что все выгружается в таблицу значений. Проблем никаких нет (счас еще раз проверил с другим аналогичным случаем).
Или я чего-то не догоняю
(34) Ягг, Ну опять же я не гуру... в типовом запросе используется таблица документа а не табличной части..
Соответственно если его выполнить то у нас в консоли не выходят поля из табличной части , а выводится сама табличная часть в виде таблицы с указанными полями.. Соответственно при добавление регистра ЦеныНоменклатуры мы делаем связь.. и вот здесь мне кажется проблема и была.. поэтому запрос не выполнялся
Соответственно если его выполнить то у нас в консоли не выходят поля из табличной части , а выводится сама табличная часть в виде таблицы с указанными полями.. Соответственно при добавление регистра ЦеныНоменклатуры мы делаем связь.. и вот здесь мне кажется проблема и была.. поэтому запрос не выполнялся
(35) anterehin, повторюсь (может чего-то не замечаю).
Вот аналогичный запрос
тут тоже используется таблица документа. У меня в консоле запрос выполняется без проблем и данные возвращает правильные.
Правда платформа у меня 8.1 (в данонм случае)
Вот аналогичный запрос
ВЫБРАТЬ
ОтправкаВагонов.Вагоны.(
Вагон,
тРейсы.Состояние
)
ИЗ
Документ.ОтправкаВагонов КАК ОтправкаВагонов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РейсыВагонов.СрезПоследних(&Дата2, Состояние = &Состояние) КАК тРейсы
ПО ОтправкаВагонов.Вагоны.Вагон = тРейсы.Вагон
ГДЕ
ОтправкаВагонов.Ссылка = &Ссылка
Показатьтут тоже используется таблица документа. У меня в консоле запрос выполняется без проблем и данные возвращает правильные.
Правда платформа у меня 8.1 (в данонм случае)
(37) Ягг, Вижу единственное пока различие...попробуй вытащить в поля какой нибудь реквизит шапки..
Слав я не знаю что у тебя за конфа, а запрос который обсуждается из УНФ .. но хотя какая разница... Но вижу пока одно отличие попробуй.. плюс выше привел пример, выдает туже ошибку
Слав я не знаю что у тебя за конфа, а запрос который обсуждается из УНФ .. но хотя какая разница... Но вижу пока одно отличие попробуй.. плюс выше привел пример, выдает туже ошибку
(39) anterehin, тоже без проблем :
ВЫБРАТЬ
ОтправкаВагонов.МестоОтгрузки,
ОтправкаВагонов.Вагоны.(
Вагон,
тРейсы.Состояние
),
ОтправкаВагонов.Дата
ИЗ
Документ.ОтправкаВагонов КАК ОтправкаВагонов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РейсыВагонов.СрезПоследних(&Дата2, Состояние = &Состояние) КАК тРейсы
ПО ОтправкаВагонов.Вагоны.Вагон = тРейсы.Вагон
ГДЕ
ОтправкаВагонов.Ссылка = &Ссылка
Показать
Проверил.. накидал в консоли запрос... та же ошибка
ВЫБРАТЬ
РасходнаяНакладная.Ссылка,
РасходнаяНакладная.Запасы.(
Номенклатура
),
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
ПО РасходнаяНакладная.Запасы.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
РасходнаяНакладная.Ссылка = &Ссылка
Показать
(40) anterehin, проверил на 8.2. (на другой конфе, тоже моей)
без проблем.
Единственоне что в голову лезет, возможно нюанс в организации регистра (раз у обоих одна и та же ошибка). Попробуйте убрать параметры виртуальной таблицы - осанется ошибка или нет?
ВЫБРАТЬ
ПриходнаяНакладная.Склад,
ПриходнаяНакладная.Материалы.(
Материал,
тЦена.Номенклатура
)
ИЗ
Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних КАК тЦена
ПО ПриходнаяНакладная.Материалы.Материал = тЦена.Номенклатура
ГДЕ
ПриходнаяНакладная.Ссылка = &Ссылка
Показатьбез проблем.
Единственоне что в голову лезет, возможно нюанс в организации регистра (раз у обоих одна и та же ошибка). Попробуйте убрать параметры виртуальной таблицы - осанется ошибка или нет?
(51) гыук320, нашел у себя версию (1.3.1.4). Выполняю запрос из (36) в консоле. вот теперь инетерсная картина:
1. когда запуск когда запуск идет управляемая форма и тонкий клиент вываливается ошибка "Отсутсвует отображение для типа" (видимо сервер не можетпередать на клиент вложенную таблицу)
2. когда запускаю на "толстом управлемом" - ошибки нету, результат качественный
во как
1. когда запуск когда запуск идет управляемая форма и тонкий клиент вываливается ошибка "Отсутсвует отображение для типа" (видимо сервер не можетпередать на клиент вложенную таблицу)
2. когда запускаю на "толстом управлемом" - ошибки нету, результат качественный
во как
Вообщем итог такой: после двух часового онлайн мучения Славы, он же Ягг (за что ему огромное спасибо), предварительный вывод: данный запрос должен работать, но есть какой-то конфликт видимо в релези конфы и версии платформы, для данного конкретного примера. При этом он написал вариант запроса, который сейчас отлично работает (за что ему еще раз ОГРОМНОЕ СПАСИБО).
Для всех форумчан выкладываю его здесь думаю может пригодится в других подобных ситуациях:
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
шапка =новый Структура;
шапка.Вставить("ДатаДокумента",ТекущийДокумент.Дата);
шапка.Вставить("Организация",ТекущийДокумент.Организация);
шапка.Вставить("Номер",ТекущийДокумент.Номер);
шапка.Вставить("Префикс",ТекущийДокумент.Организация.Префикс);
шапка.Вставить("Отправитель",ТекущийДокумент.СтруктурнаяЕдиница);
шапка.Вставить("Получатель",ТекущийДокумент.СтруктурнаяЕдиницаПродукции);
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.НомерСтроки,
| СборкаЗапасов.Номенклатура.НаименованиеПолное КАК Запас,
| СборкаЗапасов.Номенклатура.Артикул КАК Артикул,
| СборкаЗапасов.Количество КАК КоличествоМест,
| СборкаЗапасов.Количество * ЕСТЬNULL(тЦена.Цена, 0) КАК Сумма,
| СборкаЗапасов.Резерв КАК Резерв,
| СборкаЗапасов.Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| СборкаЗапасов.Характеристика,
| СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| СборкаЗапасов.Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| СборкаЗапасов.Номенклатура.Код КАК ТоварКод,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| тЦена.Цена КАК Цена
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Номенклатура = тЦена.Номенклатура
| И СборкаЗапасов.Характеристика = тЦена.Характеристика
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
Так те хочу поблагодорить и других участников форума, которые приняли участие в этой ветке, особенно Александра Терехина, он же anterehin.
На этом считаю данную тему можно закрывать.
Ёще раз всем спасибо!!!
Для всех форумчан выкладываю его здесь думаю может пригодится в других подобных ситуациях:
Запрос = Новый Запрос();
Запрос.УстановитьПараметр("ТекущийДокумент", ТекущийДокумент);
Если ТекущийДокумент.ВидОперации = Перечисления.ВидыОперацийСборкаЗапасов.Сборка Тогда
Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("ТипЦен", ТекущийДокумент.ТипЦены);
шапка =новый Структура;
шапка.Вставить("ДатаДокумента",ТекущийДокумент.Дата);
шапка.Вставить("Организация",ТекущийДокумент.Организация);
шапка.Вставить("Номер",ТекущийДокумент.Номер);
шапка.Вставить("Префикс",ТекущийДокумент.Организация.Префикс);
шапка.Вставить("Отправитель",ТекущийДокумент.СтруктурнаяЕдиница);
шапка.Вставить("Получатель",ТекущийДокумент.СтруктурнаяЕдиницаПродукции);
Запрос.Текст =
"ВЫБРАТЬ
| СборкаЗапасов.НомерСтроки,
| СборкаЗапасов.Номенклатура.НаименованиеПолное КАК Запас,
| СборкаЗапасов.Номенклатура.Артикул КАК Артикул,
| СборкаЗапасов.Количество КАК КоличествоМест,
| СборкаЗапасов.Количество * ЕСТЬNULL(тЦена.Цена, 0) КАК Сумма,
| СборкаЗапасов.Резерв КАК Резерв,
| СборкаЗапасов.Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
| СборкаЗапасов.Характеристика,
| СборкаЗапасов.ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
| СборкаЗапасов.Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
| СборкаЗапасов.Номенклатура.Код КАК ТоварКод,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
| СборкаЗапасов.Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
| ВЫБОР
| КОГДА СборкаЗапасов.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
| ТОГДА СборкаЗапасов.ЕдиницаИзмерения.Коэффициент
| ИНАЧЕ 1
| КОНЕЦ КАК КоличествоВОдномМесте,
| тЦена.Цена КАК Цена
|ИЗ
| Документ.СборкаЗапасов.Продукция КАК СборкаЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ТипЦен) КАК тЦена
| ПО СборкаЗапасов.Номенклатура = тЦена.Номенклатура
| И СборкаЗапасов.Характеристика = тЦена.Характеристика
|ГДЕ
| СборкаЗапасов.Ссылка = &ТекущийДокумент";
ВыборкаСтрокЗапасы = Запрос.Выполнить().Выгрузить();
Так те хочу поблагодорить и других участников форума, которые приняли участие в этой ветке, особенно Александра Терехина, он же anterehin.
На этом считаю данную тему можно закрывать.
Ёще раз всем спасибо!!!
(56) anterehin,
платформа 1С:Предприятие 8.2 (8.2.16.363)
Релиз конфы УНФ 1.3 (1.3.1.4) - другой у меня нет
В консоле в "управляемом толстом клиенте" мучили запрос
У меня ошибки не вываливает.
Надоб было бы сделать отдельную (новую) конфигурацию у Андрея; там организовать регистры и посмотреть как она себя поведет. Тут или какая-то настройка в конфе вредит или что-то не так с платформой (хотя пробовали под другим релизом 8.2.15 - ошибка оставалась). Тестирование и исправляние, чекДБФ делали.
Все таки видимо какая-то "галочка" в конфигурации
платформа 1С:Предприятие 8.2 (8.2.16.363)
Релиз конфы УНФ 1.3 (1.3.1.4) - другой у меня нет
В консоле в "управляемом толстом клиенте" мучили запрос
ВЫБРАТЬ
РасходнаяНакладная.Ссылка,
РасходнаяНакладная.Запасы.(
Номенклатура
),
ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
Документ.РасходнаяНакладная КАК РасходнаяНакладная
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен = &ВидЦен) КАК ЦеныНоменклатурыСрезПоследних
ПО РасходнаяНакладная.Запасы.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
РасходнаяНакладная.Ссылка = &Ссылка
ПоказатьУ меня ошибки не вываливает.
Надоб было бы сделать отдельную (новую) конфигурацию у Андрея; там организовать регистры и посмотреть как она себя поведет. Тут или какая-то настройка в конфе вредит или что-то не так с платформой (хотя пробовали под другим релизом 8.2.15 - ошибка оставалась). Тестирование и исправляние, чекДБФ делали.
Все таки видимо какая-то "галочка" в конфигурации
Всё-таки, пользуйтесь консолью запросов. Вот текст, полученный с помощью консоли,
а в прикреплённом файле скриншот связей:
ВЫБРАТЬ
СборкаЗапасов.Дата КАК ДатаДокумента,
СборкаЗапасов.Организация КАК Организация,
СборкаЗапасов.Номер КАК Номер,
СборкаЗапасов.Организация.Префикс КАК Префикс,
СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
СборкаЗапасов.Продукция.(
НомерСтроки,
Номенклатура.НаименованиеПолное КАК Запас,
Номенклатура.Артикул КАК Артикул,
Количество КАК КоличествоМест,
Резерв КАК Резерв,
Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
Характеристика,
ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
Номенклатура.Код КАК ТоварКод,
Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
ВЫБОР
КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоличествоВОдномМесте
),
ЦеныНоменклатуры.Цена
ИЗ
Документ.СборкаЗапасов КАК СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО СборкаЗапасовПродукция.Номенклатура.Ссылка = ЦеныНоменклатуры.Номенклатура.Ссылка
ПО СборкаЗапасов.Ссылка = СборкаЗапасовПродукция.Ссылка
ГДЕ
СборкаЗапасов.Ссылка = &ТекущийДокумент
а в прикреплённом файле скриншот связей:
ВЫБРАТЬ
СборкаЗапасов.Дата КАК ДатаДокумента,
СборкаЗапасов.Организация КАК Организация,
СборкаЗапасов.Номер КАК Номер,
СборкаЗапасов.Организация.Префикс КАК Префикс,
СборкаЗапасов.СтруктурнаяЕдиница КАК Отправитель,
СборкаЗапасов.СтруктурнаяЕдиницаПродукции КАК Получатель,
СборкаЗапасов.Продукция.(
НомерСтроки,
Номенклатура.НаименованиеПолное КАК Запас,
Номенклатура.Артикул КАК Артикул,
Количество КАК КоличествоМест,
Резерв КАК Резерв,
Ссылка.ЗаказПокупателя КАК ЗаказПокупателя,
Характеристика,
ЕдиницаИзмерения.Наименование КАК ВидУпаковки,
Номенклатура.СчетУчетаЗапасов.Код КАК Счет,
Номенклатура.Код КАК ТоварКод,
Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНаименование,
Номенклатура.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
ВЫБОР
КОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения ССЫЛКА Справочник.ЕдиницыИзмерения
ТОГДА СборкаЗапасов.Продукция.ЕдиницаИзмерения.Коэффициент
ИНАЧЕ 1
КОНЕЦ КАК КоличествоВОдномМесте
),
ЦеныНоменклатуры.Цена
ИЗ
Документ.СборкаЗапасов КАК СборкаЗапасов
ЛЕВОЕ СОЕДИНЕНИЕ Документ.СборкаЗапасов.Продукция КАК СборкаЗапасовПродукция
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО СборкаЗапасовПродукция.Номенклатура.Ссылка = ЦеныНоменклатуры.Номенклатура.Ссылка
ПО СборкаЗапасов.Ссылка = СборкаЗапасовПродукция.Ссылка
ГДЕ
СборкаЗапасов.Ссылка = &ТекущийДокумент
Прикрепленные файлы:

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот