![]() |
|
Разделение таблицы значений 1с 8 | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
12.09.16
✎
10:07
|
Добрый день как оптимально разделить такую таблицу значений на несколько таблиц:
Таблица вида: Склад, товар, Цена На выходе получить несколько таблиц значений, где если по одному товару в разных складах, разная цена, то они разносятся на разные таблицы значений. К примеру вид такой Товар1, Склад1, Цена1 Товар1, Склад2, Цена1 Товар1, Склад3, Цена2 Товар2, склад1, Цена3 Товар2, Склад3, Цена4 Надо разделить на Товар1, Склад1, Цена1 Товар2, склад1, Цена3 Товар1, Склад2, Цена1 Товар1, Склад3, Цена2 Товар2, Склад3, Цена4 т.е. чтобы склады не пересекались, |
|||
1
Cyberhawk
12.09.16
✎
10:14
|
"если по одному товару в разных складах, разная цена, то они разносятся" // Кажется, кусок "на разных складах" тут лишний в условии. У тебя ж не может быть товара на одном и том же складе с разной ценой?
|
|||
2
Cyberhawk
12.09.16
✎
10:15
|
Так что условие проще.
Бежишь по таблице, как только встретил повторяющийся товар с новой ценой - суешь его во вторую ТЗ. |
|||
3
DmitriyDI
12.09.16
✎
10:23
|
(2) сейчас попробую, просто смысл какой.
Если документ с ТЧ склады, так вот если в таблице допустим в ТЗ 10 складов товара с 1 ценой, и 1 с другой надо разделять на разные документы, причем, таблица большая приходит много складов и товаров, а документов надо создать минимум. |
|||
4
DmitriyDI
12.09.16
✎
10:27
|
Если разбить на подзадачи:
1 разделить склады на несколько массивов, в которой не пересекаются товары по ценам. а потом обойти каждый массив и добавить товары с ценой |
|||
5
Ёпрст
гуру
12.09.16
✎
10:53
|
(0)Что есть "склады не пересекались" ?
вот туТ, у тебя склады "пересекаются" ? Товар1, Склад1, Цена1 Товар1, Склад2, Цена1 |
|||
6
DmitriyDI
12.09.16
✎
10:59
|
тут нет, так как у склада 1 и 2, цена одинаковая, если бы цена была разная, то надо разделить
|
|||
7
DmitriyDI
12.09.16
✎
12:24
|
Сделал вот так вроде работает)
Запрос_Ц = Новый Запрос("ВЫБРАТЬ | Т.Товар, | Т.Склад, | Т.Цена, | 1 КАК Свертка |ПОМЕСТИТЬ ВТ |ИЗ | &Т КАК Т |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ.Товар, | ВТ.Цена, | СУММА(ВТ.Свертка) КАК Свертка |ПОМЕСТИТЬ ВТ_Свернутая |ИЗ | ВТ КАК ВТ | |СГРУППИРОВАТЬ ПО | ВТ.Товар, | ВТ.Цена |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Свернутая.Товар, | ВТ_Свернутая.Цена, | ВТ.Склад КАК Склад, | ВТ_Свернутая.Свертка КАК Свертка |ИЗ | ВТ_Свернутая КАК ВТ_Свернутая | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ КАК ВТ | ПО ВТ_Свернутая.Товар = ВТ.Товар | И ВТ_Свернутая.Цена = ВТ.Цена |ИТОГИ ПО | Свертка, | Склад"); Запрос.УстановитьПараметр("Т", ТаблицаЦен); ВыборкаСвертка = Запрос_Ц.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСвертка.Следующий() Цикл //тут создаем новый документ ВыборкаСклад = ВыборкаСвертка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаСклад.Следующий() Цикл //тут заполняем тч склады ВыборкаДеталь = ВыборкаСклад.Выбрать(); Пока ВыборкаДеталь.Следующий() Цикл /тут заполняем тч товары КонецЦикла; КонецЦикла; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |