Поиск Расходного ордера на товары по Распоряжению
Привет всем.
у меня КА2.4 Включил ордерный склад что бы сделать сборку товаров.
Немного не понимаю почему у меня Запрос не видит Ордер
Запрос формирую так:
Он в Выборку не заходит, ордер имеется с распоряжением который передается в СсылкаНаДокумент
СсылкаНаДокумент содержит Заказ клиента в виде ссылки, как положено
Распоряжение имеет тип - Определяемый тип - может в этом проблема, я не правильно запрос составил?
у меня КА2.4 Включил ордерный склад что бы сделать сборку товаров.
Немного не понимаю почему у меня Запрос не видит Ордер
Запрос формирую так:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение КАК Распоряжение,
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка КАК Ссылка
|ИЗ
| Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям
|ГДЕ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение = &Распоряжение";
Запрос.УстановитьПараметр("Распоряжение", СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
Док.Статус = Перечисления.СтатусыРасходныхОрдеров.Отгружен;
Док.Записать();
ПоказатьОн в Выборку не заходит, ордер имеется с распоряжением который передается в СсылкаНаДокумент
СсылкаНаДокумент содержит Заказ клиента в виде ссылки, как положено
Распоряжение имеет тип - Определяемый тип - может в этом проблема, я не правильно запрос составил?
По теме из базы знаний
- Расходный ордер на товары из документа Реализация товаров и услуг, из Заказа клиента, из Заказа на перемещение или из Перемещения товаров
- Сравнение товаров на складах и товаров организаций для УТ 11.5, КА 2.5, ЕРП 2.5 - отчет для поиска ошибок в учете
- Задание на отбор товаров из основной ячейки с сортировкой по ячейкам, комментарием склада, зоной отгрузки и адресом доставки из первого распоряжения в УТ 11, КА, ЕРП
- Задания на перевозку по ордерам и распоряжениям – УТ 11, КА 2, ЕРП 2
- Сравнение единиц товаров в документах "Приходный ордер" и "Расходный ордер" с документами, на основании которых они сделаны, и документами "Реализации товаров" для ордерных складов
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Так тоже не помогает:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение КАК Распоряжение,
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка КАК Ссылка
|ИЗ
| Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям
|ГДЕ
| ТИПЗНАЧЕНИЯ(РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение) = ТИП(Документ.ЗаказКлиента)
| И РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение.Ссылка = &Распоряжение";
Запрос.УстановитьПараметр("Распоряжение", СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
Показать
Сделал запрос без условий, почему то он не видит этих расходных ордеоров:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка КАК Ссылка
|ИЗ
| Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям";
//Запрос.УстановитьПараметр("Распоряжение", СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
Показать
понял такую вещь, у меня в Заказе Клиента программно проставляется Отгрузка по позициям, и ордер не успевает создаваться и уже я лезу в этот ордер.
Нужно какую то задержку делать что ли.
Посоветуйте плз что нибудь.
Код:
Нужно какую то задержку делать что ли.
Посоветуйте плз что нибудь.
Код:
Процедура ОбработатьДокументИзТЗ(Докс)
х=1;
Док = СсылкаНаДокумент.ПолучитьОбъект();
Если Докс = Неопределено Тогда
ДокПродажи = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокПродажи.Дата = Док.ДатаОтгрузки;
ДокПродажи.Склад = Док.Склад;
ДокПродажи.ХозяйственнаяОперация = Док.ХозяйственнаяОперация;
ДокПродажи.РеализацияПоЗаказам = Истина;
ДокПродажи.ЗаказКлиента = СсылкаНаДокумент;
ДокПродажи.Организация = Док.Организация;
ДокПродажи.Партнер = Док.Партнер;
ДокПродажи.Контрагент = Док.Контрагент;
ДокПродажи.Соглашение = Док.Соглашение;
ДокПродажи.Договор = Док.Договор;
ДокПродажи.Валюта = Док.Валюта;
ДокПродажи.ВалютаВзаиморасчетов = Док.Соглашение.ВалютаВзаиморасчетов;
ДокПродажи.ФормаОплаты = Док.ФормаОплаты;
ДокПродажи.НалогообложениеНДС = Док.НалогообложениеНДС;
ДокПродажи.ПорядокОплаты = Док.ПорядокОплаты;
ДокПродажи.Комментарий = "Создан обработкой Сбор заказов";
ДокПродажи.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.Отгружено;
ДокПродажи.СпособДоставки = Перечисления.СпособыДоставки.ДоКлиента;
Иначе
ДокПродажи = Докс.ПолучитьОбъект();
Если ДокПродажи.ПометкаУдаления Тогда
ДокПродажи.ПометкаУдаления = Ложь;
КонецЕсли;
ДокПродажи.Товары.Очистить();
КонецЕсли;
Для каждого Товар Из Док.Товары Цикл
Попытка
Если ТЗ[Товар.НомерСтроки - 1].План = ТЗ[Товар.НомерСтроки - 1].Количество Тогда
ТоварРеал = ДокПродажи.Товары.Добавить();
ТоварРеал.Номенклатура = Товар.Номенклатура;
ТоварРеал.КоличествоУпаковок = Товар.КоличествоУпаковок;
ТоварРеал.Количество = Товар.Количество;
ТоварРеал.Цена = Товар.Цена;
ТоварРеал.Сумма = Товар.Сумма;
ТоварРеал.СтавкаНДС = Товар.СтавкаНДС;
ТоварРеал.СуммаНДС = Товар.СуммаНДС;
ТоварРеал.ВидЦены = Товар.ВидЦены;
ТоварРеал.Упаковка = Товар.Упаковка;
ТоварРеал.Склад = Товар.Склад;
ТоварРеал.КодСтроки = Товар.КодСтроки;
ТоварРеал.КлючСвязи = Товар.КлючСвязи;
ТоварРеал.ЗаказКлиента = СсылкаНаДокумент;
Товар.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.Отгрузить;
ИначеЕсли ТЗ[Товар.НомерСтроки - 1].План > ТЗ[Товар.НомерСтроки - 1].Количество И ТЗ[Товар.НомерСтроки - 1].Количество > 0 Тогда
ТоварРеал = ДокПродажи.Товары.Добавить();
ТоварРеал.Номенклатура = Товар.Номенклатура;
ТоварРеал.КоличествоУпаковок = ТЗ[Товар.НомерСтроки - 1].Количество;
ТоварРеал.Количество = ТЗ[Товар.НомерСтроки - 1].Количество;
ТоварРеал.Цена = Товар.Цена;
ТоварРеал.Сумма = Товар.Цена * ТЗ[Товар.НомерСтроки - 1].Количество;
ТоварРеал.СтавкаНДС = Товар.СтавкаНДС;
ТоварРеал.СуммаНДС = Товар.СуммаНДС;
ТоварРеал.ВидЦены = Товар.ВидЦены;
ТоварРеал.Упаковка = Товар.Упаковка;
ТоварРеал.Склад = Товар.Склад;
ТоварРеал.КодСтроки = Товар.КодСтроки;
ТоварРеал.КлючСвязи = Товар.КлючСвязи;
ТоварРеал.ЗаказКлиента = СсылкаНаДокумент;
Товар.Количество = ТЗ[Товар.НомерСтроки - 1].Количество;
Товар.КоличествоУпаковок = ТЗ[Товар.НомерСтроки - 1].Количество;
Товар.Сумма = Товар.Количество * Товар.Цена;
НоваяСтрока = Док.Товары.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока,Товар);
НоваяСтрока.Количество = ТЗ[Товар.НомерСтроки - 1].План - ТЗ[Товар.НомерСтроки - 1].Количество;
НоваяСтрока.КоличествоУпаковок = ТЗ[Товар.НомерСтроки - 1].План - ТЗ[Товар.НомерСтроки - 1].Количество;
Товар.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.Отгрузить;
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
ДокПродажи.СуммаДокумента = ДокПродажи.Товары.Итог("СуммаСНДС");
ДокПродажи.СуммаВзаиморасчетов = ДокПродажи.Товары.Итог("СуммаВзаиморасчетов");
Док.Записать(РежимЗаписиДокумента.Проведение);
// После проведения Док так как там позиции со статусом "Отгрузить" создается автоматически Расходный ордер на товары
//Тут бы вставить таймер.
ДокПродажи.Записать();
НайтиИОбработатьРасходныйОрдерНаТовары(СсылкаНаДокумент);
КонецПроцедуры
Процедура НайтиИОбработатьРасходныйОрдерНаТовары(СсылкаНаДокумент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Ссылка КАК Ссылка
|ИЗ
| Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК РасходныйОрдерНаТоварыТоварыПоРаспоряжениям
|ГДЕ
| РасходныйОрдерНаТоварыТоварыПоРаспоряжениям.Распоряжение = &Распоряжение";
Запрос.УстановитьПараметр("Распоряжение", СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Док = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
КонецЦикла;
Док.Статус = Перечисления.СтатусыРасходныхОрдеров.Отгружен;
Док.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
Показать
(6) https://infostart.ru/public/706204/
Нужно какую то задержку делать что ли.
Посоветуйте плз что нибудь.
Выбрать наиболее подходящий из вариантов: Посоветуйте плз что нибудь.
а почему нельзя подождать полного исполнения кода? Чтобы все везде записалось? А потом выполнять ваш запрос? Задержки делать - это некрасиво. И не факт что вам поможет. Надо просто создавать ордер прежде, чем читать его. Как это сделать - вам надо копать свой код, т.к. логику того , что вы делаете знаете только Вы. Ваши слова: "Этот запрос я в Консоль пихал, выбирал этот заказ, он мне ордер показывает" - так вот после чего вы пихали это в консоль? После каких действий в базе? Вот те же самые действия надо завершить и программно и только после этого читать записи.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот