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

Запрос в консоли отрабатывает как должен но в 1с значение не подставляет

Автор Yanawerg, 11 дек 2024, 08:33

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

Yanawerg

Запрос в консоли получает именно те данные которые необходимо и через отладку всё хорошо но в итоге в документе значение остаётся пустым.
Пробовал менять запрос и параметры но в итоге все равно значение остаётся пустовать, что не хвает или не так написано ?
Если Изделие.Использовать Тогда
нПрод = Продукция.Добавить();
нПрод.Номенклатура = Изделие.Изделие;
нПрод.ХарактеристикаНоменклатуры = Изделие.ХарактеристикаНоменклатуры; //Синицын Иван 16.07.2017
нПрод.ЕдиницаИзмерения = нПрод.Номенклатура.ЕдиницаХраненияОстатков;
нПрод.Заказ = Изделие.Заказ;
нПрод.Количество = Изделие.Количество;

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

Максим75

Yanawerg, а какой тип у Спецификации? может он не ЗаказПокупателя

Yanawerg

Максим75, Тип у спецификаций - "Сборочная".
Беру из заказа покупателя так как нужно определенная спецификация загруженная с этим заказов (У некоторых изделий может быть разная/несколько).

П.С.
Поле остаётся пустым так-как передаётся ссылка на сам ЗП.
А как сделать так что бы передавалось только поле спецификации все никак не разберу.

Максим75

Yanawerg, ну Вы же в запросе выбираете какую-то спецификацию из заказа, вот
 |    ЗаказПокупателяТовары.Спецификация

ее и выбирайте в выборке и передавайте.

antoneus

Вообще, зачем в запросе выбирать лишние поля - Ссылка и Номенклатура, если они потом не используются? Всегда для меня загадкой было) То, они присутствуют в секции ГДЕ, совсем не значит, что их нужно теперь выбирать обязательно.

Максим75

antoneus, ну это Вам уже понятно после нескольких тысяч или десятков тысяч запросов, а когда только начинаешь, руки-ноги трусятся, добавляешь все, что видишь и даже больше :D

antoneus

Ну у меня месяца через три руки трястись перестали)
А потом вот получается такая ситуация. Не выбрал бы он ссылку в запросе - 1С ругнулась бы, что не обнаружено такое поле, а не пихала бы молча в реквизит не пойми что. И вот тут бы и призадуматься :)

Yanawerg


antoneus


Yanawerg

antoneus, Если Изделие.Использовать Тогда
нПрод = Продукция.Добавить();
нПрод.Номенклатура = Изделие.Изделие;
нПрод.ХарактеристикаНоменклатуры = Изделие.ХарактеристикаНоменклатуры; //Синицын Иван 16.07.2017
нПрод.ЕдиницаИзмерения = нПрод.Номенклатура.ЕдиницаХраненияОстатков;
нПрод.Заказ = Изделие.Заказ;
нПрод.Количество = Изделие.Количество;

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

Теги:

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

Рейтинг@Mail.ru

Поиск