|
Как составить контроль остатков в разрезе номенклатуры и качества? 1с83 | ☑ | ||
---|---|---|---|---|
0
pro3ri
08.05.15
✎
08:25
|
Добрый день!
обраб. пров-ия: провел по регистру, далее делаю запрос на наличие отрицат остатков, "ВЫБРАТЬ | ОстаткиТоваровЭталонОстатки.Номенклатура, | ОстаткиТоваровЭталонОстатки.КоличествоОстаток, | ОстаткиТоваровЭталонОстатки.Качество |ИЗ | РегистрНакопления.ОстаткиТоваровЭталон.Остатки( | &Момент, | Номенклатура В | (ВЫБРАТЬ | РеализацияТоваровТовары.Номенклатура | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка) | И Качество В | (ВЫБРАТЬ | РеализацияТоваровТовары.Качество | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка)) КАК ОстаткиТоваровЭталонОстатки |ГДЕ | ОстаткиТоваровЭталонОстатки.КоличествоОстаток < 0"; списываю большое колво, а результат запроса пустой. Где поправить? |
|||
1
saaken
08.05.15
✎
08:28
|
отделил качество от товара, напиши (Номенклатура, качество) в
|
|||
2
jsmith82
08.05.15
✎
08:29
|
ипануцо
|
|||
3
saaken
08.05.15
✎
08:29
|
и убери "момент"
|
|||
4
jsmith82
08.05.15
✎
08:29
|
ты даже вычет не сделал, а уже условие ставишь на меньше нуля
|
|||
5
pro3ri
08.05.15
✎
08:32
|
(4) вычет не нужен, у нас до этого
// регистр ОстаткиТоваровЭталон Расход Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ОстаткиТоваровЭталон.ДобавитьРасход(); Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Качество = ТекСтрокаТовары.Качество; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; Движения.Записать(); |
|||
6
jsmith82
08.05.15
✎
08:38
|
как вариант
ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура, Товары.Качество КАК Качество СУММА(Товары.Количество) КАК Количество ПОМЕСТИТЬ Товары ИЗ Документ.РеализацияТоваров.Товары КАК Товары ГДЕ Товары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО Товары.Номенклатура, Товары.Качество; ВЫБРАТЬ Товары.Номенклатура КАК Номенклатура, Товары.Качество КАК Качество, ЕСТЬNULL(Остатки.КоличествоОстаток, 0) - Товары.Количество КАК Нехватка ИЗ Товары КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваровЭталон.Остатки(&Момент) КАК Остатки ПО Товары.Номенклатура = Остатки.Номенклатура И Товары.Качество = Остатки.Качество ГДЕ ЕСТЬNULL(Остатки.КоличествоОстаток, 0) - Товары.Количество > 0 |
|||
7
jsmith82
08.05.15
✎
08:40
|
(4) а вот оно чо
|
|||
8
EarthsSoul
08.05.15
✎
08:49
|
ВЫБРАТЬ
РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Качество ПОМЕСТИТЬ ТЧ ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЧ.Номенклатура, ТЧ.Качество, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток ИЗ ТЧ КАК ТЧ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( &МоментВремени, (Качество, Номенклатура) В (ВЫБРАТЬ ТЧ.Качество, ТЧ.Номенклатура ИЗ ТЧ КАК ТЧ) И Склад = &Склад) КАК ТоварыНаСкладахОстатки ПО ТЧ.Номенклатура = ТоварыНаСкладахОстатки.Качество И ТЧ.Качество = ТоварыНаСкладахОстатки.Качество |
|||
9
EarthsSoul
08.05.15
✎
08:54
|
Нужно левое соединение с табличной частью документа, что бы не терялись совсем данные ... Ну и момент времени должна быть граница, включающая именно момент времени
ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Качество ПОМЕСТИТЬ ТЧ ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЧ.Номенклатура, ТЧ.Качество, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток ПОМЕСТИТЬ Остатки ИЗ ТЧ КАК ТЧ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( &МоментВремени, (Качество, Номенклатура) В (ВЫБРАТЬ ТЧ.Качество, ТЧ.Номенклатура ИЗ ТЧ КАК ТЧ) И Склад = &Склад) КАК ТоварыНаСкладахОстатки ПО ТЧ.Номенклатура = ТоварыНаСкладахОстатки.Качество И ТЧ.Качество = ТоварыНаСкладахОстатки.Качество ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Остатки.Номенклатура, Остатки.Качество, Остатки.КоличествоОстаток ИЗ Остатки КАК Остатки ГДЕ Остатки.КоличествоОстаток < 0 |
|||
10
pro3ri
08.05.15
✎
08:59
|
так заработало, ошибку нашел вместо Движения.Записать(); написал Движения.ОстаткиТоваровЭталон.Записать();
// регистр ОстаткиТоваровЭталон Расход Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ОстаткиТоваровЭталон.ДобавитьРасход(); Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовары.Номенклатура; Движение.Качество = ТекСтрокаТовары.Качество; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; Движения.ОстаткиТоваровЭталон.Записать(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиТоваровЭталонОстатки.Номенклатура, | ОстаткиТоваровЭталонОстатки.КоличествоОстаток, | ОстаткиТоваровЭталонОстатки.Качество |ИЗ | РегистрНакопления.ОстаткиТоваровЭталон.Остатки( | &Момент, | (Номенклатура, Качество) В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | РеализацияТоваровТовары.Номенклатура, | РеализацияТоваровТовары.Качество | ИЗ | Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары | ГДЕ | РеализацияТоваровТовары.Ссылка = &Ссылка)) КАК ОстаткиТоваровЭталонОстатки |ГДЕ | ОстаткиТоваровЭталонОстатки.КоличествоОстаток < 0 | |СГРУППИРОВАТЬ ПО | ОстаткиТоваровЭталонОстатки.Номенклатура, | ОстаткиТоваровЭталонОстатки.КоличествоОстаток, | ОстаткиТоваровЭталонОстатки.Качество"; Граница = Новый Граница(МоментВремени(),ВидГраницы.Включая); Запрос.УстановитьПараметр("Момент", Граница); Запрос.УстановитьПараметр("Ссылка", Ссылка); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |