Статусы заказов в УТ 11.4 (Проблема с получением из запроса)
Здравствуйте уважаемые программисты. Такой вопрос, мне нужно взять в условие ("Если") статус заказа клиента. К примеру: если статус заказа клиента на согласовании тогда....
Поэтому написал такой запрос в подписках на событие, чтобы получить этот статус: но он мне почему-то выдаёт пустое значение. Прошу помочь. Кстати статусы берут данные из перечисления
А так выглядит сама процедура. Всё работает, кроме этой "радости"
А сам код для этого: (отмечено на картинке). *Конечно подобный код подключен к другим событиям тоже.
Поэтому написал такой запрос в подписках на событие, чтобы получить этот статус: но он мне почему-то выдаёт пустое значение. Прошу помочь. Кстати статусы берут данные из перечисления
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статусы
| ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ГДЕ
| ЗаказКлиента.Ссылка = &ТекущийДокумент";
Запрос2.УстановитьПараметр("ТекущийДокумент",Источник.Ссылка);
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Сообщить (Результат2);
ПоказатьА так выглядит сама процедура. Всё работает, кроме этой "радости"
Процедура ПродажаТовараОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статусы
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
|ГДЕ
| ЗаказКлиента.Ссылка = &ТекущийДокумент";
Запрос2.УстановитьПараметр("ТекущийДокумент",Источник.Ссылка);
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Сообщить (Результат2);
Запрос= Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПродажаТоваров.Номенклатура КАК Ном,
| ПродажаТоваров.Количество КАК Кол
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ПродажаТоваров
|ГДЕ
| ПродажаТоваров.Ссылка = &ТекущийДокумент";
Запрос.УстановитьПараметр("ТекущийДокумент",Источник.Ссылка);
Результат = Запрос.Выполнить();
Выборка=Результат.Выбрать();
Пока Выборка.Следующий() Цикл
ИмяТовара=Выборка.Ном;
Запрос1= Новый Запрос;
Запрос1.Текст ="
| ВЫБРАТЬ
| ЕСТЬNULL(СвободныеОстатки.ВНаличииОстаток, 0)- ЕСТЬNULL(СвободныеОстатки.ВРезервеСоСкладаОстаток, 0) КАК Колич,
| Ном.Ссылка КАК Имя
| ИЗ
| Справочник.Номенклатура КАК Ном
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(, Номенклатура = &ТекущийТовар) КАК СвободныеОстатки
| ПО Ном.Ссылка = СвободныеОстатки.Номенклатура
| ГДЕ
| Ном.Ссылка В(&ТекущийТовар)";
Запрос1.УстановитьПараметр("ТекущийТовар",ИмяТовара);
Результат1=Запрос1.Выполнить();
Отбор= Результат1.Выбрать();
Пока Отбор.Следующий() Цикл
//Сообщить( Отбор.Имя) ;
//Сообщить( Отбор.Колич) ;
/////////////////////////////////////////////////////
Товар=Справочники.Номенклатура.НайтиПоНаименованию(ИмяТовара).ПолучитьОбъект();///Нахожу тот товар в справочнике
ИмяСвойства=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("КоличествоТоваров"); ///Нахожу нужный доп реквизит в ПВХ
Товар.Заблокировать();
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Свойство",ИмяСвойства);
Массив = Товар.ДополнительныеРеквизиты.НайтиСтроки(ПараметрыОтбора);
Если Массив.Количество() = 0 Тогда
НовоеСвойство = Товар.ДополнительныеРеквизиты.Добавить();
НовоеСвойство.Свойство = ИмяСвойства;
НовоеСвойство.Значение = Отбор.Колич;
ИначеЕсли Отбор.Колич=0 тогда Массив[0].Значение = ("0");
иначе Массив[0].Значение = Отбор.Колич;
КонецЕсли;
Товар.Записать();
КонецЦикла;
КонецЦикла;
КонецПроцедуры
ПоказатьА сам код для этого: (отмечено на картинке). *Конечно подобный код подключен к другим событиям тоже.
Прикрепленные файлы:
По теме из базы знаний
- Выгрузка из БП 3.0 в УТ 11.4
- Интеграция для отправки остатков, цен, загрузки заказов по API в личный кабинет Озон Ozon.ru для УТ 11, КА 2, ERP в том числе базовых версий
- SynchroSber - полноценный модуль API интеграции с маркетплейсом Мегамаркет (СберМегаМаркет) для 1С УТ 11.X, КА 2.X, ERP 2.X, УНФ 1.6, 3.0 (возможность работы как с публикацией, так и без публикации базы)
- Групповая выгрузка и загрузка файлов XML для ЭДО в каталог по приказу №820 ФНС (для УТ 10.3/11, КА2, ERP2, БП3, УНФ, УПП1.3, Розница2.3). Поддержка маркировки. Прослеживание товаров.
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Найденные решения
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статусы
| ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ГДЕ
| ЗаказКлиента.Статус = &СтатусЗаказа
";
Запрос2.УстановитьПараметр("СтатусЗаказа","Нужный статус");
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Сообщить (Результат2);
Показать
А если нужно перебрать все статусы, но с условием, то можно так :
[/code]
Код |
---|
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статус
|ЗаказКлиента.Ссылка как ссылка
| ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
";
Запрос2.УстановитьПараметр("СтатусЗаказа","Нужный статус");
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Статус = "Нужны тебе статус" тогда
///выполняешь свое действие
Иначе
Если Выборка.Статус = "Нужный тебе статус2" тогда
///выполняешь свое действие
Иначе
Если Выборка.Статус = "Нужный тебе статус3" тогда
///выполняешь свое действие
конецЕсли;
конецЕсли;
конецЕсли;
Показать полностью |
[/code]
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статусы
| ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ГДЕ
| ЗаказКлиента.Статус = &СтатусЗаказа
";
Запрос2.УстановитьПараметр("СтатусЗаказа","Нужный статус");
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Сообщить (Результат2);
Показать
А если нужно перебрать все статусы, но с условием, то можно так :
[/code]
Код |
---|
Запрос2= Новый Запрос;
Запрос2.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Статус как Статус
|ЗаказКлиента.Ссылка как ссылка
| ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
";
Запрос2.УстановитьПараметр("СтатусЗаказа","Нужный статус");
Результат2 = Запрос2.Выполнить();
Выборка=Результат2.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Статус = "Нужны тебе статус" тогда
///выполняешь свое действие
Иначе
Если Выборка.Статус = "Нужный тебе статус2" тогда
///выполняешь свое действие
Иначе
Если Выборка.Статус = "Нужный тебе статус3" тогда
///выполняешь свое действие
конецЕсли;
конецЕсли;
конецЕсли;
Показать полностью |
[/code]
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот