Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:40

Ошибка при вызове метода контекста (ВыполнитьПакет)

Автор golovina, 17 авг 2015, 10:19

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

golovina

Подскажите пожалуйста в какой хоть стороне искать проблему. УТ 11.0.9 В модуле менеджера документа Перемещение товаров в процедуре ИнициализироватьДанныеДокумента внесла некоторые изменения: добавила в выборку ТаблицаТовары.Склад КАК Склад и подставляю везде ТаблицаТовары.Склад вместо Склад-отправитель.
Сделано это для того, чтобы во время проводки склад-отправитель брался не из заголовка документа, а из табличной части (свой для каждой строки).
При попытке провести документ выдает ошибку. "Ошибка времени выполнения... Ошибка при вызове метода контекста (ВыполнитьПакет) .... срока 1208." Насколько я понимаю не может он выполнить мой запрос. В какой хоть стороне искать ошибку и в чем она может быть? Могу скинуть сам запрос, правда он километровый(

vitasw


golovina


cska-fanat-kz

ну тогда загнать текст запроса в консоль и попробовать выполнить...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

golovina

Запрос для получения параметров такой:   
Запрос.Текст =
"ВЫБРАТЬ
|    ДанныеДокумента.Ссылка                КАК Ссылка,
|    ДанныеДокумента.Дата                  КАК Период,
|    ДанныеДокумента.Организация           КАК Организация,
|    ДанныеДокумента.ОрганизацияПолучатель КАК КорОрганизация,
// Изменила GOL {
|    ДанныеДокумента.Товары.Склад           КАК Склад,
|    ДанныеДокумента.СкладОтправитель      КАК СкладОтправитель,
// Изменила GOL }
|    ДанныеДокумента.СкладПолучатель       КАК СкладПолучатель,
|    ДанныеДокумента.ЗаказНаПеремещение    КАК ЗаказНаПеремещение,
|    ДанныеДокумента.ПеремещениеПоЗаказам  КАК ПеремещениеПоЗаказам,
|    ДанныеДокумента.ДатаРаспоряжения      КАК ДатаРаспоряжения,
|    ДанныеДокумента.Статус                КАК Статус,
|    ДанныеДокумента.ХозяйственнаяОперация КАК ХозяйственнаяОперация,
|    ДанныеДокумента.СкладОтправитель.ИспользоватьОрдернуюСхемуПриОтгрузке   КАК ОрдернаяСхемаПриОтгрузке,
|    ДанныеДокумента.СкладПолучатель.ИспользоватьОрдернуюСхемуПриПоступлении КАК ОрдернаяСхемаПриПоступлении,
|
|    ВЫБОР КОГДА ДанныеДокумента.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВнутренняяПередачаТоваров) ТОГДА
|        ДанныеДокумента.ОрганизацияПолучатель
|    ИНАЧЕ
|        ДанныеДокумента.Организация
|    КОНЕЦ КАК ОрганизацияПолучатель
|ИЗ
|    Документ.ПеремещениеТоваров КАК ДанныеДокумента
|
|ГДЕ
|    ДанныеДокумента.Ссылка = &Ссылка
|";
Реквизиты = Запрос.Выполнить().Выбрать();

Далее я устанавливаю реквизит Склад
Запрос.УстановитьПараметр("Склад", Реквизиты.Склад);
И почему то у меня в запросе
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка",           Реквизиты.Ссылка);
Запрос.УстановитьПараметр("СкладПолучатель",  Реквизиты.СкладПолучатель);
// Изменила GOL {
Запрос.УстановитьПараметр("СкладОтправитель", Реквизиты.Склад);
//Запрос.УстановитьПараметр("СкладОтправитель", Реквизиты.СкладОтправитель);
// Изменила GOL }
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
|    ТаблицаТовары.Склад          КАК Склад,
|    ТаблицаТовары.Номенклатура   КАК Номенклатура,
|    ТаблицаТовары.Характеристика КАК Характеристика
|ИЗ
|    (ВЫБРАТЬ
|        &СкладОтправитель КАК Склад,
|        ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
|        ТаблицаВидыЗапасов.Характеристика КАК Характеристика
|    ИЗ
|        Документ.ПеремещениеТоваров.ВидыЗапасов КАК ТаблицаВидыЗапасов
|    ГДЕ
|        ТаблицаВидыЗапасов.Ссылка = &Ссылка
|
|    ОБЪЕДИНИТЬ ВСЕ
|
|    ВЫБРАТЬ
|        &СкладПолучатель КАК Склад,
|        ТаблицаВидыЗапасов.Номенклатура КАК Номенклатура,
|        ТаблицаВидыЗапасов.Характеристика КАК Характеристика
|    ИЗ
|        Документ.ПеремещениеТоваров.ВидыЗапасов КАК ТаблицаВидыЗапасов
|    ГДЕ
|        ТаблицаВидыЗапасов.Ссылка = &Ссылка
|    ) КАК ТаблицаТовары
|
|    ЛЕВОЕ СОЕДИНЕНИЕ
|        РегистрСведений.АналитикаУчетаНоменклатуры КАК Аналитика
|    ПО
|        ТаблицаТовары.Номенклатура     = Аналитика.Номенклатура
|        И ТаблицаТовары.Характеристика = Аналитика.Характеристика
|        И ТаблицаТовары.Склад          = Аналитика.Склад
|ГДЕ
|    Аналитика.Номенклатура ЕСТЬ NULL
|";
Выборка = Запрос.Выполнить().Выбрать();

пишет про несовместимые типы в строке
&СкладОтправитель КАК Склад,
Почему?

vitasw

Ой бяда бядовая. А отладчиком не пробовали посмотреть, что выдает первый запрос?
|    ДанныеДокумента.Товары.Склад           КАК Склад,
В таком акцепте - это вложенный результат запроса

golovina

Цитата: vitasw от 17 авг 2015, 14:38
В таком акцепте - это вложенный результат запроса
да я уже поняла что здесь тварю.... ладно, буду думать как правильно сделать...

vitasw

Правильно будет написать один запрос вместо двух.
Кстати, а где тут пакет запросов?

golovina

Это стандартный код модуля менеджера, чет я боюсь его сильно править... Мне бы со складами разобраться только.:xfbnsdfb:

vitasw

Цитата: golovina от 17 авг 2015, 15:06Мне бы со складами разобраться только

Чтобы разобраться правильно со складами, нужно менять запрос. Почему-то, когда вы добавляли реквизит в табличную часть не очень сильно боялись, а щас вдруг забоялись.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск