|
Разбить ТаблицуЗначений на две: одна с положительными числами, а другая с отриц. | ☑ | ||
---|---|---|---|---|
0
SeiOkami
04.02.13
✎
22:42
|
Задача такая. Есть ТЗ Номенклатура и остаток. Из нее нужно получить две ТЗ. В одной все строчки с положительными остатками, а в другой с отрицательными. Не перебором! (так бы уже давно сделал)
Код на данный момент такой: ТаблицаОстатков = ПолучитьОстаткиТовараНаСкладе(Объект.Склад); Отбор = Новый Структура("ОстатокНоменклатуры"); Отбор.Вставить("ОстатокНоменклатуры", ?); ТаблицаНедостач = ТаблицаОстатков.Скопировать(Отбор); Отбор = Новый Структура("ОстатокНоменклатуры"); Отбор.Вставить("ОстатокНоменклатуры", ?); ТаблицаИзлишков = ТаблицаОстатков.Скопировать(Отбор); Как мне установить, чтобы отбор отобрал мне только положительные и только отрицательные числа? Понимаю, вопрос, возможно, тупой, но никак не найду решения =( |
|||
1
Vladal
04.02.13
✎
22:44
|
Не перебором - запросом. Поместить ТЗ во временную таблицу и по ней слепить два условия.
|
|||
2
ДенисЧ
04.02.13
✎
22:44
|
запрос напиши.
|
|||
3
Нуф-Нуф
04.02.13
✎
22:45
|
Запрос. Остатки во временную. Потом соединить саму с собой
|
|||
4
SeiOkami
04.02.13
✎
22:46
|
Неужели нельзя сделать копированием?
|
|||
5
DrShad
04.02.13
✎
22:47
|
(4) можно, но не кошерно, старшие увидят - уволят
|
|||
6
SeiOkami
04.02.13
✎
22:48
|
(5), почему? мне показалось, что так лучше. Значит я не прав. Вот только почему?
|
|||
7
Нуф-Нуф
04.02.13
✎
22:49
|
(6) по жизни
|
|||
8
DrShad
04.02.13
✎
22:50
|
(6) читать СП умеем?
Вариант синтаксиса: Скопировать по отбору Синтаксис: Скопировать(<ПараметрыОтбора>, <Колонки>) Параметры: <ПараметрыОтбора> (необязательный) Тип: Структура. Ключ структуры - идентификатор колонки, а значение структуры - значение отбора. значение проверяется только на равенство! |
|||
9
DrShad
04.02.13
✎
22:52
|
+(8) был бы вариант сравнения тогда другое дело, но и все равно такой метод строил бы запрос :)))
|
|||
10
SeiOkami
04.02.13
✎
22:54
|
ТаблицаЗначений (ValueTable)
Скопировать (Copy) Вариант синтаксиса: Скопировать строки Синтаксис: Скопировать(<Строки>, <Колонки>) Параметры: <Строки> (необязательный) Тип: Массив. Массив строк для копирования. Если не указан, копируются все строки таблицы значений. <Колонки> (необязательный) Тип: Строка. Список колонок для копирования в формате: "Колонка1, Колонка2...". Описание варианта метода: Если указаны строки и колонки, то только они будут скопированы. Если не указаны - то будет создана полная копия таблицы значений. Вариант синтаксиса: Скопировать по отбору Синтаксис: Скопировать(<ПараметрыОтбора>, <Колонки>) Параметры: <ПараметрыОтбора> (необязательный) Тип: Структура. Ключ структуры - идентификатор колонки, а значение структуры - значение отбора. <Колонки> (необязательный) Тип: Строка. Список колонок для копирования в формате: "Колонка1, Колонка2...". Описание варианта метода: Если указан отбор, то только строки из отбора будут скопированы. Если отбор не указан, то будут скопированы все строки таблицы значений. Если указаны колонки, то только эти колонки будут скопированы. Иначе, будут скопированы все колонки таблицы значений. Прочитал сразу. Но строк про то, что "значение проверяется только на равенство!" не нашел, поэтому то... Т.е. другого вара как запросом нет? |
|||
11
SeiOkami
04.02.13
✎
22:55
|
Тупняк, а так удобно было бы скопировать =(
|
|||
12
DrShad
04.02.13
✎
22:57
|
(10) баян
|
|||
13
mistеr
04.02.13
✎
22:58
|
Если не миллионы строк там, я бы перебором делал. Запрос в данном случае это overkill.
Можно добавить колонку булеву, заполнить ее (тот же перебор), и копировать по отбору. |
|||
14
DrShad
04.02.13
✎
22:58
|
(10) [Но строк про то, что "значение проверяется только на равенство!" не нашел] а другие строки видел? на будущее по умолчанию проверяется на равенство!
|
|||
15
DrShad
04.02.13
✎
22:59
|
(13) ну конечно - ты Д'Артаньян, а все остальные дураки
|
|||
16
SeiOkami
04.02.13
✎
23:01
|
(13), хм... Спасибо, навел на мысль!
Ведь можно в изначальном запросе добавить поле которое будет формироваться так: ВЫБОР КОГДА ТоварыНаСкладахОстатки.ВНаличииОстаток > 0 ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ А затем отбором уже скопировать. Спасибо! |
|||
17
DrShad
04.02.13
✎
23:04
|
(16) а почему же ты изначально в запросе не делишь на две таблицы!? че вы за всякий копрокод хватаетесь?
|
|||
18
SeiOkami
04.02.13
✎
23:06
|
(17), этот запрос менять нельзя. Добавить поле - еще норм.
А так, для будущего: как можно в одном запросе на выходе получить две таблицы? |
|||
19
DrShad
04.02.13
✎
23:09
|
то что у тебя уже есть поместить в ВТ, а следующие два запроса в пакете выгружать в ТЗ
|
|||
20
SeiOkami
04.02.13
✎
23:13
|
(19), спасибо, запомню на будущее =)
|
|||
21
МихаилМ
04.02.13
✎
23:17
|
какие запросы....
отсортировать , методом вилки найти границу выгрузить в 2 тз. |
|||
22
mistеr
04.02.13
✎
23:21
|
(21) Больше кода, больше!
|
|||
23
mistеr
04.02.13
✎
23:22
|
(21) Вилка не нужна, кстати. Один цикл. Так что принимается.
|
|||
24
DrShad
04.02.13
✎
23:22
|
(22) ну этот девиз твой еще в (13) был озвучен
|
|||
25
mistеr
04.02.13
✎
23:25
|
(24) Запрос за код не считается?
|
|||
26
DrShad
04.02.13
✎
23:28
|
(25) он выполняется быстрей любого цикла, внезапно!?
|
|||
27
mih_io
04.02.13
✎
23:38
|
(0) делай как в (19) будет и красиво и само быстро. Заодно узнаешь что такое МенеджерВременныхТаблиц ) полезный скилл )
|
|||
28
mistеr
04.02.13
✎
23:45
|
(26) Не факт, внезапно! Особенно если база далеко.
|
|||
29
DrShad
04.02.13
✎
23:48
|
(26) сынок, расслабься! на форуме уже 148 000 раз обсуждалось и столько же тестировалось :)))) запрос быстрее
|
|||
30
H A D G E H O G s
05.02.13
✎
00:00
|
Даже если бы и миллионы - я бы сделал перебором.
|
|||
31
zak555
05.02.13
✎
00:09
|
модифицировать ПолучитьОстаткиТовараНаСкладе?
|
|||
32
SeiOkami
05.02.13
✎
19:35
|
Новый вопрос!
Как можно найти строки ТЗ, в кторый текстовое значение содержит указанную подстроку? К примеру у меня такие строки в ТЗ Хлеб, "акфы", 900 Молоко, "выкф", 100 Мед, "ссвы", 845 Мне нужно найти строки, содержащие "акф". |
|||
33
Bober
05.02.13
✎
20:02
|
(32) либо циклом через Найти(), либо запросом. Ничего по сравнению с (0) не изменилось
|
|||
34
mikecool
05.02.13
✎
20:10
|
смотря сколько строк в тз, если немного , то кошернее перебором имхо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |