|
Не проводится отчет комитенту по продажам. Типовой запрос возвращает нулевые остатки | ☑ | ||
---|---|---|---|---|
0
Niang
19.07.19
✎
12:19
|
УТ 10.3 последний релиз. Не проводится документ, выводит ошибку: Остатка товара полученного по договору недостаточно. Остатки товара есть, проверено по всем параметрам (склад, характеристика, серия, договор и т.д.). Ннулевые остатки по всем товарам возвращает текущий типовой запрос:
Запрос = Новый Запрос; // Установим параметры запроса Запрос.УстановитьПараметр("ДокументСсылка", СтруктураШапкиДокумента.Ссылка); Запрос.УстановитьПараметр("ДоговорКонтрагента", СтруктураШапкиДокумента.ДоговорКонтрагента); Если ЗначениеЗаполнено(СтруктураШапкиДокумента.Сделка) Тогда Запрос.УстановитьПараметр("Сделка", СтруктураШапкиДокумента.Сделка); Иначе Запрос.УстановитьПараметр("Сделка", Неопределено); КонецЕсли; Запрос.УстановитьПараметр("СтатусПолучения", СтатусПолучения); ТекстЗапроса = " |ВЫБРАТЬ // Запрос, контролирующий остатки на складах | Док.Номенклатура.Представление КАК НоменклатураПредставление, | Док.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаХраненияОстатковПредставление, | %ПОЛЕ_Док_Характеристика% КАК ХарактеристикаНоменклатуры, | ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Характеристика%) КАК ХарактеристикаНоменклатурыПредставление, | %ПОЛЕ_Док_Серия% КАК СерияНоменклатуры, | ПРЕДСТАВЛЕНИЕ(%ПОЛЕ_Док_Серия%) КАК СерияНоменклатурыПредставление, | %ПОЛЕ_Док_Количество% КАК ДокументКоличество, | ЕСТЬNULL(МАКСИМУМ(Остатки.КоличествоОстаток), 0) КАК ОстатокКоличество |ИЗ | Документ." + ИмяТаблицы + " КАК Док | |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрНакопления.ТоварыПолученные.Остатки(, | Номенклатура В (%ВыборкаПоНоменклатуре%) | И ДоговорКонтрагента = &ДоговорКонтрагента | И Сделка = &Сделка | И СтатусПолучения = &СтатусПолучения | ) КАК Остатки |ПО | Док.Номенклатура = Остатки.Номенклатура | // СОЕДИНЕНИЕ_Характеристика_Остатки | // СОЕДИНЕНИЕ_Серия_Остатки | |ГДЕ | Док.Ссылка = &ДокументСсылка | |СГРУППИРОВАТЬ ПО | Док.Номенклатура, | %ПОЛЕ_Док_Характеристика%, | %ПОЛЕ_Док_Серия% | |ИМЕЮЩИЕ | ЕСТЬNULL(МАКСИМУМ(Остатки.КоличествоОстаток), 0) < %ПОЛЕ_Док_Количество% | |ДЛЯ ИЗМЕНЕНИЯ | РегистрНакопления.ТоварыПолученные.Остатки // Блокирующие чтение таблицы остатков регистра для разрешения коллизий многопользовательской работы |"; Если ЕстьХарактеристика Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПОЛЕ_Док_Характеристика%", "Док.ХарактеристикаНоменклатуры"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// СОЕДИНЕНИЕ_Характеристика_Остатки", " И Док.ХарактеристикаНоменклатуры = Остатки.ХарактеристикаНоменклатуры"); Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПОЛЕ_Док_Характеристика%", "Неопределено"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// СОЕДИНЕНИЕ_Характеристика_Остатки", ""); КонецЕсли; Если ЕстьСерия Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПОЛЕ_Док_Серия%", "Док.СерияНоменклатуры"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// СОЕДИНЕНИЕ_Серия_Остатки", " И Док.СерияНоменклатуры = Остатки.СерияНоменклатуры"); Иначе ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПОЛЕ_Док_Серия%", "Неопределено"); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "// СОЕДИНЕНИЕ_Серия_Остатки", ""); КонецЕсли; ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ПОЛЕ_Док_Количество%", ?(ЕстьКоэффициент, "СУММА(Док.Количество * Док.Коэффициент / Док.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент)", "СУММА(Док.Количество)")); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ВыборкаПоНоменклатуре%", ТекстЗапросаСписокНоменклатуры); Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); в консоли запросов мой запрос возвращает правильные остатки: ВЫБРАТЬ ОтчетКомитентуОПродажахТовары.Номенклатура, ОтчетКомитентуОПродажахТовары.Количество, ТоварыПолученныеОстатки.КоличествоОстаток ИЗ Документ.ОтчетКомитентуОПродажах.Товары КАК ОтчетКомитентуОПродажахТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыПолученные.Остатки КАК ТоварыПолученныеОстатки ПО ОтчетКомитентуОПродажахТовары.Номенклатура = ТоварыПолученныеОстатки.Номенклатура И ОтчетКомитентуОПродажахТовары.ХарактеристикаНоменклатуры = ТоварыПолученныеОстатки.ХарактеристикаНоменклатуры И ОтчетКомитентуОПродажахТовары.СерияНоменклатуры = ТоварыПолученныеОстатки.СерияНоменклатуры ГДЕ ОтчетКомитентуОПродажахТовары.Ссылка = &Ссылка Почему типовой запрос возвращает нулевые остатки? |
|||
1
Случайный прохожий
19.07.19
✎
12:26
|
Точку останова поставь на строку "Запрос.Текст = ТекстЗапроса;", погляди значение переменной "ТекстЗапроса". Его в консольку и суй
|
|||
2
catena
19.07.19
✎
12:29
|
И какие значения в твоем запросе у ДоговорКонтрагента, Сделка, СтатусПолучения?
|
|||
3
torgm
19.07.19
✎
12:30
|
(0) какой склад ты собираешься проверять у комитента в отчете комитента?
|
|||
4
Niang
19.07.19
✎
12:36
|
(1) Так и сделал, типовой запрос возвращает нулевые остатки. Мой запрос (написан в конце 1 сообщения) возвращает нормальные остатки
|
|||
5
Niang
19.07.19
✎
12:37
|
(2) такие же как в проводимом документе
|
|||
6
Niang
19.07.19
✎
13:08
|
(3) никакой. Просто на всякий случай проверил остатки в регистре Товары на складах, ибо где еще искать концы варианты закончились...
|
|||
7
catena
19.07.19
✎
13:10
|
(4)Не верю.
|
|||
8
catena
19.07.19
✎
13:10
|
Вернее: (5) не верю
|
|||
9
Niang
19.07.19
✎
13:21
|
(8) ДоговорКонтрагента проставлен правильно, Сделка непоределено, т.к. в документе так же не заполнена, СтатусПолучения = на комиссию. С параметрами все нормально.
|
|||
10
hhhh
19.07.19
✎
15:30
|
(9) в обработке проведения должен быть совершенно другой результат. Это нормально.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |