|
Как получить минимальный остаток по товару за период? | ☑ | ||
---|---|---|---|---|
0
antotti
11.09.14
✎
17:51
|
Уважаемые знатоки, подскажите пожалуйста, как получить минимальный остаток товара за период в БП 2.0 ?? Пробовал функцию мин , не проходит(
|
|||
1
Волшебник
модератор
11.09.14
✎
17:52
|
функция МИНИМУМ в запросе
|
|||
2
antotti
11.09.14
✎
18:02
|
Вот текст запроса:
Не отрабатывает( Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.Субконто2 КАК Партия, | ХозрасчетныйОстатки.Субконто3 КАК Склад, | ХозрасчетныйОстатки.Организация КАК Организация, | МИНИМУМ(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ХозрасчетныйОстатки | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Счет"; |
|||
3
antotti
11.09.14
✎
18:03
|
Функцию МИНИМУМ использовал - но результата нет, может что- то еще не так?
|
|||
4
Maniac
11.09.14
✎
18:09
|
ЛОЛ
На лансере висит задание по получению минимальных остатков для заполнения счета в БП За суп с тарелкой. ВИдимо супом накормили, пришел сюда спрашивать как написать))) |
|||
5
Maniac
11.09.14
✎
18:09
|
(3) Все на так - так как ты запрос написал - вообще не понимая что написал.
|
|||
6
antotti
11.09.14
✎
18:14
|
Мне запрос не для счета нужен, а для выгрузки всех позиций в эксель.
|
|||
7
Maniac
11.09.14
✎
18:16
|
Надо по впервых остальзовать
Остатки без параметра даты. Но с параметром периодичности День |
|||
8
Maniac
11.09.14
✎
18:17
|
и еще проверку на 0.
Тк сто пудово за период будет такое когда был 0 |
|||
9
antotti
11.09.14
✎
18:17
|
Вот весь код:
СчетаРасчетов = Новый Массив(); СчетаРасчетов.Добавить(ПланыСчетов.Хозрасчетный.Товары); // мСубконто=Новый Массив(); мСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура); мСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Партии); мСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады); // Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.Субконто2 КАК Партия, | ХозрасчетныйОстатки.Субконто3 КАК Склад, | ХозрасчетныйОстатки.Организация КАК Организация, | МИНИМУМ(ХозрасчетныйОстатки.КоличествоОстаток) КАК КоличествоОстаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (&Счет), , Организация = &Организация) КАК ХозрасчетныйОстатки | |СГРУППИРОВАТЬ ПО | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Счет"; Запрос.УстановитьПараметр("Период", КонецДня(ЭтотОбъект.ДатаКонца2)+1); Запрос.УстановитьПараметр("Организация",ЭтотОбъект.Организация2); Запрос.УстановитьПараметр("Субконто",мСубконто); Запрос.УстановитьПараметр("Счет",СчетаРасчетов); // Результат=Запрос.Выполнить(); Выборка=Результат.Выбрать(); // // Выгрузка данных в excel // Проверка на заполненность пути // Создали новый xls (com объект) Попытка Состояние("Загрузка Microsoft Excel..."); // ExcelПриложение=Новый СОМОбъект("Excel.Application"); Эксель=Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при запуске!"+ ОписаниеОшибки()); КонецПопытки; // Доступ к книге Попытка // WorkBook=Excel.WorkBooks.Open("ПутьКФайлу"); Книга=Эксель.WorkBooks.Add(); Состояние("Открытие файла..."); Исключение Сообщить("Ошибка при открытии книги!" + ОписаниеОшибки()); КонецПопытки; // Доступ к листу номер 1 Попытка // WorkSheet (РабочийЛист) Лист=Книга.WorkSheets(1); Лист=Книга.Sheets.Add(); Состояние("Получение доступа к листу..."); Исключение Сообщить("Ошибка в открытии листа"); КонецПопытки; // Лист.Cells.Clear(); Лист.Cells(1,1).Value="Организация"; Лист.Cells(1,2).Value="Номенклатура"; Лист.Cells(1,3).Value="Партия"; Лист.Cells(1,4).Value="Склад"; Лист.Cells(1,5).Value="СуммаОстаток"; Лист.Cells(1,6).Value="КоличествоОстаток"; // СчетчикСтрок=2; Пока Выборка.Следующий() Цикл Лист.Cells(СчетчикСтрок,1).Value=Строка(Выборка.Организация); Лист.Cells(СчетчикСтрок,2).Value=Строка(Выборка.Номенклатура); Лист.Cells(СчетчикСтрок,3).Value=Строка(Выборка.Партия); Лист.Cells(СчетчикСтрок,4).Value=Строка(Выборка.Склад); Лист.Cells(СчетчикСтрок,5).Value=Число(Выборка.СуммаОстаток); Лист.Cells(СчетчикСтрок,6).Value=Число(Выборка.КоличествоОстаток); СчетчикСтрок=СчетчикСтрок+1; КонецЦикла; // Попытка Книга.SaveAs(ЭтотОбъект.ПутьКФайлу2); Исключение Сообщить("Документ не сохранен"); КонецПопытки; Эксель.Quit(); ЭтаФорма.ТолькоПросмотр=Истина; Maniac, А как сделать периодичность день? |
|||
10
Maniac
11.09.14
✎
18:17
|
и вообще конечно какая то дурная задача - по минимальному остатку.
Я еще понимаю когда средний считают. Но минимальный... |
|||
11
Maniac
11.09.14
✎
18:18
|
Третий параметр.
|
|||
12
Эмбеддер
11.09.14
✎
18:21
|
(10) самое странное, что остаток считается отдельно для каждой партии
|
|||
13
SUA
11.09.14
✎
18:22
|
"минимальный остаток за период"<>"минимальный остаток на момент времени", не?
|
|||
14
antotti
11.09.14
✎
18:27
|
а как периодичность день сделать или месяц?
|
|||
15
Эмбеддер
11.09.14
✎
18:29
|
(14) третий параметр "День"
подозреваю, что надо делать вложенный запрос во внутреннем запросе группировка по складу и организации (без партий), СУММА(Количество) а во внешнем запросе - МИНИМУМ |
|||
16
Фокусник
11.09.14
✎
21:50
|
(8) значит 0 и будет минимумом, зачем его исключать? ;)
|
|||
17
Hans
11.09.14
✎
21:58
|
Маня у тебя работы что ли нет на лансере лазиешь?
|
|||
18
mistеr
11.09.14
✎
22:32
|
А что, если минимальный остаток был достигнут посреди дня?
|
|||
19
Maniac
11.09.14
✎
22:39
|
(17) работы всегда валом. там часто кидают ТЗ на то что у меня готовое.
|
|||
20
Maniac
11.09.14
✎
22:40
|
(18) минимальный остаток это всегда ноль ))))
|
|||
21
Maniac
11.09.14
✎
22:40
|
а ну иногда бывают минусы)))
|
|||
22
mistеr
11.09.14
✎
22:46
|
(20) Ты не понял. Допустим на начало дня остаток 50, потом расход - остаток 10, потом приход - остаток 110. Так вот эти 10 предлагаемым методом не получишь.
Минимальные остаток ищем *за период*, ноль там может быть, а может не быть. |
|||
23
Ник второй
11.09.14
✎
22:51
|
Первый пакет:
Берем движения регистра за период и вытаскивам даты этих движений Второй пакет: Соединяем движение регистра соединяем с пакетом где "Пакет1.Дата" >= Регистра.Дата. И "сумма" на ресурс. Третий пакет: берем минимум. |
|||
24
Maniac
11.09.14
✎
22:57
|
(22) фирма считает остаток на конец дня. тоесть когда окончились продажи.
Если в течении дня были остатки и приходы, продажи - и тп то это не в счет. Я не знаю конечно чем они торгуют, если бы автор назвал отрасль было бы хотя бы понято что за фигня. |
|||
25
mistеr
11.09.14
✎
23:13
|
(23) Как насчет "за период"? Полагаю, в расчете должны участвовать остатки на начало и на конец...
|
|||
26
Ник второй
11.09.14
✎
23:16
|
(25) На конец можно не брать, достаточно добавить на начало.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |