![]() |
![]() |
![]() |
|
Определить количество комплектов | ☑ | ||
---|---|---|---|---|
0
lamme
20.12.16
✎
15:45
|
1С8
Есть справочник - комплекты. В него входят товары Товар1 = 10шт Товар2 = 8шт Товар3 = 8шт Есть документ с ТЧ - товары и количеством. Как из документа определить - сколько комплектов сформировано те если в документе Товар1 = 11шт Товар2 = 7шт Товар3 = 9шт то комплектов = 0 и если Товар1 = 21шт Товар2 = 16шт Товар3 = 18шт то комплектов 2 |
|||
1
lamme
20.12.16
✎
15:46
|
товар может входить только в 1 комплект.
|
|||
2
lamme
20.12.16
✎
15:47
|
как вариант вижу
находим все комплекты - куда входит товар. целое от деления кол-ва в документе на кол-во в комплекте - и есть кол-во сфомированных комплектов |
|||
3
lamme
20.12.16
✎
15:48
|
а не ... минимальное целое от кол-ва деления ...
|
|||
4
lamme
20.12.16
✎
16:12
|
продолжаем ... ))
|
|||
5
lamme
20.12.16
✎
16:12
|
вот запрос
"ВЫБРАТЬ | ВложенныйЗапрос.Ссылка, | ВложенныйЗапрос.КоличествоВЗаказе, | ВложенныйЗапрос.КоличествоКомплектов |ИЗ | (ВЫБРАТЬ | Коллекции.Номенклатура КАК Номенклатура, | Коллекции.Количество КАК Количество, | Коллекции.Ссылка КАК Ссылка, | ТЧЗаказа.Количество КАК КоличествоВЗаказе, | ВЫБОР | КОГДА Коллекции.Количество = 0 | ТОГДА 0 | ИНАЧЕ ВЫРАЗИТЬ(ТЧЗаказа.Количество / Коллекции.Количество КАК ЧИСЛО(10, 0)) | КОНЕЦ КАК КоличествоКомплектов | ИЗ | (ВЫБРАТЬ | рбхКоллекцииТовары.Номенклатура КАК Номенклатура, | рбхКоллекцииТовары.Количество КАК Количество, | рбхКоллекцииТовары.Ссылка КАК Ссылка | ИЗ | Справочник.рбхКоллекции.Товары КАК рбхКоллекцииТовары) КАК Коллекции | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, | ЗаказПокупателяТовары.Количество КАК Количество | ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары | ГДЕ | ЗаказПокупателяТовары.Ссылка = &Ссылка) КАК ТЧЗаказа | ПО Коллекции.Номенклатура = ТЧЗаказа.Номенклатура) КАК ВложенныйЗапрос"; |
|||
6
lamme
20.12.16
✎
16:13
|
в итоге такая таблица
Ссылка КоличествоВЗаказе КоличествоКомплектов Комплект2 Комплект1 Комплект1 10 2 Комплект2 1 0 Комплект3 1 1 Как в этом запросе выбрать минимальное значение по всем комплектам |
|||
7
Михаил Козлов
20.12.16
✎
16:17
|
Пусть i-номер комплекта, j-номер товара, Kij - количество товара j в комплекте i, Tj - общее количество товара j в накладной, Xi - количество полных комплектов, Ci - стоимость комплекта i.
Можно попробовать решить такую задачу (о ранце): СУММА(j) Xi*Kij<=Tj, Xi>=0 - целое. СУММА(i) Xi*Ci -> MAX |
|||
8
lamme
20.12.16
✎
16:29
|
прочитал ...
чую себя тупицйей |
|||
9
Михаил Козлов
20.12.16
✎
16:53
|
(8) Виноват, описался: в (7) первая сумма по i.
В Вашем случае (товар может входить только в 1 комплект) ситуация проще. Если не запросом, то число комплектов вида i = минимум целых частей от деления количества товара j на его количество в соответствующем комплекте. Минимум - по всем товарам, входящим в комплект. |
|||
10
lamme
20.12.16
✎
17:06
|
(9)
ну вот то что минимум - это я допер. как это программно в запросе седалть? |
|||
11
lamme
20.12.16
✎
17:09
|
Сделал так
ВЫБРАТЬ ВложенныйЗапрос.Ссылка, СУММА(ВложенныйЗапрос.КоличествоВЗаказе) КАК КоличествоВЗаказе, СУММА(ВложенныйЗапрос.Количество) КАК КоличествоВКоллекции, СУММА(ВложенныйЗапрос.КоличествоКомплектов) КАК КоличествоКомплектов, МИНИМУМ(ВложенныйЗапрос.СравнительноеПолеАнализа) КАК СравнительноеПолеАнализа ИЗ (ВЫБРАТЬ Коллекции.Номенклатура КАК Номенклатура, Коллекции.Количество КАК Количество, Коллекции.Ссылка КАК Ссылка, ЕСТЬNULL(ТЧЗаказа.Количество, 0) КАК КоличествоВЗаказе, ВЫРАЗИТЬ(ЕСТЬNULL(ТЧЗаказа.Количество, 0) / Коллекции.Количество КАК ЧИСЛО(10, 0)) КАК КоличествоКомплектов, ВЫБОР КОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ТЧЗаказа.Количество, 0) / Коллекции.Количество КАК ЧИСЛО(10, 0))) = 0 ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ КАК СравнительноеПолеАнализа ИЗ (ВЫБРАТЬ рбхКоллекцииТовары.Номенклатура КАК Номенклатура, рбхКоллекцииТовары.Количество КАК Количество, рбхКоллекцииТовары.Ссылка КАК Ссылка ИЗ Справочник.рбхКоллекции.Товары КАК рбхКоллекцииТовары) КАК Коллекции ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗаказПокупателяТовары.Номенклатура КАК Номенклатура, ЗаказПокупателяТовары.Количество КАК Количество ИЗ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары ГДЕ ЗаказПокупателяТовары.Ссылка = &Ссылка) КАК ТЧЗаказа ПО Коллекции.Номенклатура = ТЧЗаказа.Номенклатура) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Ссылка |
|||
12
aleks_default
20.12.16
✎
17:10
|
(0)Ты че задачник прорешиваешь? Так есть ведь уже решения. Иди на форум к Чистову.
|
|||
13
lamme
20.12.16
✎
17:10
|
те сделал новое поле - СравнительноеПолеАнализа
куда пишется Да-Нет в результате определения количества комплектов. И группируем по минимуму по этому полю. вроде работает |
|||
14
lamme
20.12.16
✎
17:10
|
(12)
нет .. сижу туплю... |
|||
15
aleks_default
20.12.16
✎
17:11
|
Там есть точно такая задача на комплекты.
|
|||
16
lamme
20.12.16
✎
17:12
|
мог б показать )
|
|||
17
lamme
20.12.16
✎
17:17
|
закрыли вопрос.
работает |
|||
18
aleks_default
20.12.16
✎
17:19
|
неуч
|
|||
19
lamme
20.12.16
✎
17:26
|
да... я такой
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |