|
Вывод остатков номенклатуры | ☑ | ||
---|---|---|---|---|
0
Сухраб
13.07.18
✎
07:26
|
Доброго дня! есть такой код, остаток выводит, но списания не учитывает, помогите пожалуйста в чем ошибка:
&НаСервере Функция ВсеОстатки(Материал) Запрос = Новый Запрос; Остаток = 0; Запрос.Текст = "ВЫБРАТЬ | ОстаткиМатериалов.МестаХранения, | ОстаткиМатериалов.Материал, | ОстаткиМатериалов.КоличествоОстаток, | ОстаткиМатериалов.СуммаОстаток |ИЗ | РегистрНакопления.ОстаткиМатериалов.Остатки( | &Дата, | МестаХранения = &МестаХранения И | Материал = &Материал | ) КАК ОстаткиМатериалов"; //Если Объект.Ссылка.Пустая() Тогда // Д = КонецДня(Объект.Дата); //Иначе // Д = Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Исключая); //КонецЕсли; // Запрос.УстановитьПараметр("Дата", Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("МестаХранения", Справочники.МестаХранения.НайтиПоНаименованию(Объект.МестаХранения.Наименование)); Запрос.УстановитьПараметр("Материал", Справочники.Материалы.НайтиПоНаименованию(Материал)); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Остаток = Записи.КоличествоОстаток; Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0); КонецЦикла; Возврат Остаток; КонецФункции |
|||
1
NickEge
13.07.18
✎
07:48
|
Мда...
|
|||
2
Сухраб
13.07.18
✎
08:01
|
(1) это значит что все плохо? Я новичок прошу не судите строго)
|
|||
3
K1RSAN
13.07.18
✎
08:02
|
(0) А списания формируют проводки по этому регистру?
|
|||
4
VladZ
13.07.18
✎
08:03
|
Вот тут бред:
Запрос.УстановитьПараметр("МестаХранения", Справочники.МестаХранения.НайтиПоНаименованию(Объект.МестаХранения.Наименование)); |
|||
5
VladZ
13.07.18
✎
08:05
|
(0) "но списания не учитывает" - смотри, какие движения делает списание. Код, который ты здесь привел к этому отношения не имеет.
|
|||
6
Сухраб
13.07.18
✎
08:11
|
тогда как будет правильно? есть регистр ОстаткиМатериалов, измерения - МестаХранения, Материал, ресурсы - Количество, Сумма, нужно вывести остаток выбранного материала в колонку Остаток на дату этого документа?
|
|||
7
Сухраб
13.07.18
✎
08:12
|
(4) что здесь не так?
|
|||
8
WhiteDragon93
13.07.18
✎
08:18
|
(7) бред в том, что ты имея ссылку на места хранения, ищешь его по справочнику, чтобы получить ту же самую ссылку.
И что будет, если будет два места хранения с одинаковым наименованием? |
|||
9
Кац
13.07.18
✎
08:20
|
Получай себестоимость прямо в запросе!
|
|||
10
Сухраб
13.07.18
✎
08:23
|
(8) согласен, исправил спасибо!
|
|||
11
Сухраб
13.07.18
✎
08:24
|
(9) хооршо, но как получить правильный остаток?
|
|||
12
WhiteDragon93
13.07.18
✎
08:24
|
(0) по теме - смотри регистраторы для регистра ОстаткиМатериалов, есть ли там эти списания.
Или под списаниями имеется в виду весь расход по регистру? |
|||
13
Кац
13.07.18
✎
08:25
|
(11) что такое "правильный остаток" ? КоличествоОстаток > 0 ?
|
|||
14
Сухраб
13.07.18
✎
08:26
|
(12) "Или под списаниями имеется в виду весь расход по регистру?"
да, после всех расходов, нужен актуальный остаток на дату дока |
|||
15
catena
13.07.18
✎
08:29
|
(9)Зачем, если он ее никуда не отдает потом?
(14)Ты проверил, в регистре списания есть? С чего ты взял, что остаток не правильный? |
|||
16
Сухраб
13.07.18
✎
08:31
|
(15) движения по регистру "расход" формирует, проверял
|
|||
17
WhiteDragon93
13.07.18
✎
08:31
|
(16) аналитики совпадают?
|
|||
18
Сухраб
13.07.18
✎
08:31
|
вроде работает!
&НаСервере Функция ВсеОстатки(Материал) Запрос = Новый Запрос; Остаток = 0; Запрос.Текст = "ВЫБРАТЬ | ОстаткиМатериалов.МестаХранения, | ОстаткиМатериалов.Материал, | ОстаткиМатериалов.КоличествоОстаток, | ОстаткиМатериалов.СуммаОстаток |ИЗ | РегистрНакопления.ОстаткиМатериалов.Остатки( | &Дата, | МестаХранения = &МестаХранения И | Материал = &Материал | ) КАК ОстаткиМатериалов"; Если Объект.Ссылка.Пустая() Тогда Д = КонецДня(Объект.Дата); Иначе Д = Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Исключая); КонецЕсли; Запрос.УстановитьПараметр("Дата", Д); //Запрос.УстановитьПараметр("Дата", // Новый Граница(Объект.Ссылка.МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("МестаХранения", Объект.МестаХранения); Запрос.УстановитьПараметр("Материал", Материал); РезультатЗапроса = Запрос.Выполнить(); Записи = РезультатЗапроса.Выбрать(); Пока Записи.Следующий() Цикл Остаток = Записи.КоличествоОстаток; Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0); КонецЦикла; Возврат Остаток; КонецФункции |
|||
19
WhiteDragon93
13.07.18
✎
08:33
|
(18) а теперь сравни параметры запроса из (0) и из (18), одни и те же передавались?
|
|||
20
Сухраб
13.07.18
✎
08:34
|
(19) мда, тупонул
|
|||
21
Пес Барбос
13.07.18
✎
08:36
|
зачем выборка. сразу в запросе и подели СуммаОстаток на Записи.КоличествоОстаток
|
|||
22
Сухраб
13.07.18
✎
08:36
|
в 7-ке была функция СводныйОстаток(), такого в 8-ке нет?
или это и есть? Пока Записи.Следующий() Цикл Остаток = Записи.КоличествоОстаток; Себестоимость = ?(Записи.КоличествоОстаток>0,Записи.СуммаОстаток/Записи.КоличествоОстаток,0); КонецЦикла; |
|||
23
Сухраб
13.07.18
✎
08:37
|
(21) попробую, спасибо!
|
|||
24
Пес Барбос
13.07.18
✎
08:42
|
(22)
ВЫБОР КОГДА КоличествоОстаток>0 ТОГДА СуммаОстаток/КоличествоОстаток ИНАЧЕ 0 КОНЕЦ КАК Себестоимость |
|||
25
Кац
13.07.18
✎
08:52
|
(21) я еще говорил в (9)
Доктор меня все игнорируют. Следующий! © |
|||
26
Пес Барбос
13.07.18
✎
09:03
|
(25) Так я ему контрольный в голову )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |