|
Разбить строки в запросе. | ☑ | ||
---|---|---|---|---|
0
progaoff
21.04.21
✎
16:21
|
Есть артикул, в количестве 2шт на остатке. Его нужно вывести 2мя записями по 1 шт. Запросом.
Подскажите идею, уже голову сломал. Заранее спасибо |
|||
1
butterbean
21.04.21
✎
16:23
|
(0) если остаток 10 штук, то записей будет 10?
|
|||
2
RomanYS
21.04.21
✎
16:23
|
(0) Соединить с сгенеренной таблицей чисел
ПО Числа.Число <= Остатки.Количество |
|||
3
progaoff
21.04.21
✎
16:23
|
(1) да
|
|||
4
progaoff
21.04.21
✎
16:27
|
(2) а как таблицу сгенерить?
|
|||
5
Cthulhu
21.04.21
✎
16:28
|
(4): программно сгенерить да в параметр засунуть
|
|||
6
Kassern
21.04.21
✎
16:28
|
||||
7
RomanYS
21.04.21
✎
16:28
|
(4) примеров полно. Самое простое - создать таблицу цифр, потом соединить саму с собой сколько нужно раз
|
|||
8
VladZ
21.04.21
✎
16:36
|
(0) Зачем?
|
|||
9
progaoff
21.04.21
✎
16:37
|
(8) есть необходимость
|
|||
10
Fedor-1971
21.04.21
✎
16:37
|
(5) в общем случае непонятен остаток, может быть и 1000, и 100000 и больше
(8) Например БСО по номерам учитывать хотят (0) нужно решать обратную задачу: выбираем остатки и кодом генерим таблицу значений |
|||
11
progaoff
21.04.21
✎
16:38
|
(10) хотелось бы запросом
|
|||
12
Fedor-1971
21.04.21
✎
16:39
|
(11) у тебя изначально нет Остатка, ты куда потом результат запроса будешь отправлять?
|
|||
13
Fedor-1971
21.04.21
✎
16:41
|
(11) 3 шага:
1. выбираем остатки 2. генерим Таблицу значений 3. в Запрос параметром пердаём ТЗ из п.2 |
|||
14
progaoff
21.04.21
✎
16:41
|
(12) на остатке 10, нужно вывести по 1й строке
|
|||
15
Cthulhu
21.04.21
✎
16:43
|
(11): далеко не всегда нужна скд (других разумных причин кровь-из-носу-только-запросом я не знаю).
если нужен разовый "цельнопаяный" отчет - то запросно-программно-табмакетное формирование - оптимальнее. |
|||
16
RomanYS
21.04.21
✎
16:43
|
(13) Почему не просто
1. генерим таблицу с запасом 2. соединяем с остатками? |
|||
17
Fedor-1971
21.04.21
✎
16:48
|
(16) Запас неизвестен, это сейчас 10 шт, а потом? Кроме того, есть ещё и количества 0,01 вот с ними что делать непонятно
(14) а если на Остатке 1000 или 0,0008? |
|||
18
Fedor-1971
21.04.21
✎
16:49
|
(15) и в СКД можно запихнуть готовую ТаблицуЗначений, только придётся её руками описать
|
|||
19
RomanYS
21.04.21
✎
16:50
|
(17) И в чем проблема. Если мы их там ждём, то никакой проблемы в этом нет.
|
|||
20
progaoff
21.04.21
✎
16:51
|
Долбаная маркировка
|
|||
21
VladZ
21.04.21
✎
16:53
|
(10) В любом случае странный подход.
Компания 1с разработала агрегирующий механизм получения остатков. И тут выясняется, что агрегирующий механизм нужно как-то "разбить". В рамках действующего механизма - только вводить доп.аналитику. |
|||
22
Fedor-1971
21.04.21
✎
16:56
|
(19) так тогда какие цифры нужны 9999,9999 и сколько это строк? с каким шагом?
(20) ты что с маркировкой делаешь? хочешь достать имеющиеся номера или что? (21) это не мне нужно. |
|||
23
progaoff
21.04.21
✎
17:07
|
Имею 12000 тыщ кодов каждый из которых должен принадлежать артикулу (22)
|
|||
24
progaoff
21.04.21
✎
17:08
|
(23) Остатки в экселе но сумарно по арту а нужно, сколько на остатке столько и строк с количеством 1, коды тоже в экселе.
|
|||
25
RomanYS
21.04.21
✎
17:16
|
(22) так тогда какие цифры нужны 9999,9999 и сколько это строк? с каким шагом?
Так это постановки задачи зависит. "Если мы их там ждём" - значит мы знаем как их разбить. |
|||
26
RomanYS
21.04.21
✎
17:17
|
(24) Ничего не понятно. Если есть таблица с кодами, то генерить ничего не надо
|
|||
27
Fedor-1971
21.04.21
✎
17:27
|
(23) Погоди, ты получил в Экселе табличку с колонками Артикул + Кол-во штук + Номер С + Номер ПО
читаешь оную и хочешь запихнуть в структуры 1С для хранения БСО? |
|||
28
progaoff
21.04.21
✎
17:48
|
Кароче. Залил все коды в таблицу значений, далее из экселя получаю массив в котором 4 массива
Обхожу каждый но нужно обойти столько раз сколько кодов Для ИндМ = 0 По Данные[0].ВГраница() Цикл МассивМ = Данные[0]; АртикулНом = Строка(МассивМ[ИндМ]); Таблица.Область(ИндМ+2,2).Текст = СтрЗаменить(АртикулНом,Символ(160),""); КонецЦикла; Для ИндМ = 0 По Данные[1].ВГраница() Цикл МассивМ = Данные[1]; АртикулНом = Строка(МассивМ[ИндМ]); Таблица.Область(ИндМ+2,3).Текст = СтрЗаменить(АртикулНом,Символ(160),""); КонецЦикла; Для ИндН = 0 По МассивМ.ВГраница() Цикл МассивМ = Данные[2]; АртикулНом = Строка(МассивМ[ИндН]); Таблица.Область(ИндН+2,4).Текст = СтрЗаменить(АртикулНом,Символ(160),""); КонецЦикла; Для ИндН = 0 По МассивМ.ВГраница() Цикл МассивМ = Данные[3]; Таблица.Область(ИндН+2,5).Текст = МассивМ[ИндН]; КонецЦикла; |
|||
29
1Сергей
21.04.21
✎
17:59
|
нужен регистр артикул, код
|
|||
30
progaoff
21.04.21
✎
17:59
|
(29) я для этого и страдаю, что бы в этот регистр загрузить))))
|
|||
31
progaoff
21.04.21
✎
18:00
|
Блин, хотя бы в один массив это все загнать все 4.. чет уже совсем крыша едет
|
|||
32
1Сергей
21.04.21
✎
18:02
|
(30) и для этого хочешь обойтись только запросом?
|
|||
33
progaoff
21.04.21
✎
18:03
|
(32) Хотел, но судя по всему не получится. Нужен массив одномерный хотя бы...Кто нибудь соединял?
|
|||
34
azernot
21.04.21
✎
18:48
|
А почему не сделать так:
Для ИндМ = 0 По ВыборкаИзЗапроса.КоличествоНаОстатке Цикл ? А в массиве пусть лежат все коды, выберешь только то количество, которое на осатке |
|||
35
PR
21.04.21
✎
19:02
|
(20) Я ждал этого поста
Из него сразу понятно, что ТС вместо того, чтобы организовать нормальный учет, стыдливо прикрывается всякими (9), типа это не я рукожоп, это такой запрос от бизнеса, все нормально |
|||
36
progaoff
21.04.21
✎
20:59
|
Разгреб все таки)) всем спасибо за советы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |