|
Универсальный метод поиска одинаковых значений в колонке тч документа? | ☑ | ||
---|---|---|---|---|
0
Обфускация
04.07.18
✎
08:57
|
Как проще и быстрее найти по тч документа дубли?
|
|||
1
Mankubus
04.07.18
✎
08:58
|
(0) добавить колонку. заполнить ее единицей.
Свернуть. там где больше единицы в новой колонке - дубли |
|||
2
Ненавижу 1С
гуру
04.07.18
✎
08:58
|
1. можно запросом, например
2. можно выгрузить в ТЗ, добавить колонку, заполнить ее 1, свернуть суммируя по ней и смотреть где значения больше 1 |
|||
3
Мимохожий Однако
04.07.18
✎
08:58
|
Добавить колонку с единичкой , Свернуть по номенклатуре. Где больше единицы, там дубль
|
|||
4
Обфускация
04.07.18
✎
09:02
|
большой выбор, спасибо
|
|||
5
Serg_1960
04.07.18
✎
09:11
|
Если внимательно прочитать ТЗ ТС, то можно родить третий вариант - выгрузить колонку(!) ТЧ документа...
|
|||
6
ASU_Diamond
04.07.18
✎
09:13
|
(5) а если ещё внимательнее прочитать, то там не написано что дубль по значению в одной колонке.
|
|||
7
ManyakRus
04.07.18
✎
09:14
|
//возвращает Истина если есть задвоенные
Функция ЕстьЗадвоенныеТЧ(Знач ТЧ, Знач ИмяКолонки) Экспорт Ответ = Ложь; ТЗ = ТЧ.Выгрузить(); ТЗ.Колонки.Добавить("КоличествоЗадвоенных", Новый ОписаниеТипов("Число")); ТЗ.ЗаполнитьЗначения(1, "КоличествоЗадвоенных"); ТЗ.Свернуть(ИмяКолонки, "КоличествоЗадвоенных"); Для каждого ТЗ1 из ТЗ Цикл Если ТЗ1.КоличествоЗадвоенных >1 Тогда Сообщить("Есть задвоенные строки " + ИмяКолонки + " !"); Ответ = Истина; Прервать; КонецЕсли; КонецЦикла; Возврат Ответ; КонецФункции |
|||
8
ASU_Diamond
04.07.18
✎
09:15
|
(7) можно ещё предварительно отсортировать
|
|||
9
Buster007
04.07.18
✎
09:16
|
чтобы найти в колонке достаточно использовать НайтиСтроки
|
|||
10
ASU_Diamond
04.07.18
✎
09:21
|
(9) скорость какая будет?
|
|||
11
Малыш Джон
04.07.18
✎
09:21
|
(7) чтобы понять сам факт наличия дублей, не обязательно так заморачиваться, достаточно сравнить количество строк до свертки и после свертки.
КоличествоДо = Таблица.Количество(); Таблица.Свернуть(); КоличествоПосле = Таблица.Количество(); ЕстьДубли = (КоличествоДо>КОличествоПосле); |
|||
12
Малыш Джон
04.07.18
✎
09:23
|
(9) а что найти-то? Отбор какой?
|
|||
13
ASU_Diamond
04.07.18
✎
09:30
|
(12) значение из сроки. Цикл по всем строкам.
|
|||
14
Малыш Джон
04.07.18
✎
09:40
|
(13) неоптимально) и сложно)
найтистроки() для каждой строки из ТЧ. К тому же: или перед проверкой очередного значения проверять, была ли уже такая проверка(а значит где-то хранить уже проверенные значения), или мириться с тем, что по задвоенным значениям поиск будет проходит дважды, трижды и т.д. |
|||
15
ASU_Diamond
04.07.18
✎
09:43
|
(14) очень неоптимально
|
|||
16
Адинэснег
04.07.18
✎
09:54
|
(0) Добавь колонку счетчик с единичками
Таблица.Колонки.Добавить("СчетчикСтрок"); Таблица.ЗаполнитьЗначения(1,"СчетчикСтрок"); потом запросом ИМЕЮЩИЕ СУММА(Таблица.СчетчикСтрок) > 1 Если Результат запроса не пустой - дубли |
|||
17
Адинэснег
04.07.18
✎
09:57
|
хотя хрень с колонкой в таблице, сразу в запросе выбери поле счетчик и сгруппируй
|
|||
18
Serg_1960
04.07.18
✎
10:03
|
(9) Учитывая, что требуется поиск значений в колонке(ед.ч.) - можно использовать .Найти(), а не .НайтиСтроки().
|
|||
19
Serg_1960
04.07.18
✎
10:08
|
(16) "ИМЕЮЩИЕ КОЛИЧЕСТВО(Таблица.ИмяКолонки) <> КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Таблица.Имяколонки)
(шутка) |
|||
20
dezss
04.07.18
✎
10:11
|
ОФФ:
э...в топе все темы от нашего ТС...я не понял, что происходит? О_о |
|||
21
dezss
04.07.18
✎
10:14
|
(20) тьфу..ошибся...фильтр выскочил :)
|
|||
22
Serg_1960
04.07.18
✎
10:16
|
(20) У ТС обострение синдрома дефицита внимания и гиперактивности :)))
|
|||
23
Buster007
04.07.18
✎
12:18
|
(10) побыстрее, чем добавить в таблицу колонку, заполнить, свернуть, проверить количество
(18) как определить, что есть дубли с использованием функции Найти()? |
|||
24
Вафель
04.07.18
✎
12:20
|
Свертыванием не удобно, ибо теряется инфа о номерах строк
|
|||
25
Малыш Джон
04.07.18
✎
12:22
|
(24) а зачем она?
|
|||
26
Вафель
04.07.18
✎
12:28
|
(25) а пользователю что говорить. У вас в 10 000 строк есть дубли. е..сь с ними сами
|
|||
27
ASU_Diamond
04.07.18
✎
12:34
|
(26) а если это нужно, то дальше через НайтиСтроки()
|
|||
28
SleepyHead
гуру
04.07.18
✎
12:34
|
(0) Точнее формулируйте техническое задание.
|
|||
29
Обфускация
04.07.18
✎
12:35
|
да все сделано уже, всем спасибо
|
|||
30
ASU_Diamond
04.07.18
✎
12:35
|
(23) 1. Может проверишь?
100 раз запустить поиск по 100 срокам или 1 раз заполнить значение в 100 строках (это делается без перебора строк) и свернуть? |
|||
31
Малыш Джон
04.07.18
✎
13:15
|
(26) а зачем пользователю что-то говорить? может это удаление дублей из документа?
|
|||
32
Buster007
04.07.18
✎
13:23
|
(30) я предполагал поиск одной позиции в колонке, а не всех позиций
|
|||
33
Tonik992
04.07.18
✎
13:25
|
Можно внешнюю компоненту написать. Передать туда 2 ТЧ и пусть оно там сравнивает.
|
|||
34
ASU_Diamond
04.07.18
✎
13:27
|
(32) ну будет не 100 раз поиск запускаться, а хотя бы даже 20. Всё равно работать дольше будет, чем 1 раз свернуть.
|
|||
35
Вафель
04.07.18
✎
13:51
|
(31) пример документа, в котором нужно удалять (не сворачивать) дубли
|
|||
36
Малыш Джон
04.07.18
✎
13:53
|
(35) "Фиксация событий с камер наблюдения"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |