По теме из базы знаний
- Поиск дублей в таблице значений или табличном поле
- Быстрый поиск дублей с четким/нечетким поиском по любому сочетанию реквизитов/реквизитов таб. частей с отбором и быстрой заменой значений в ЛЮБЫХ базах 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6/3.0, КА 2, ЗУП 3 и т.д.)
- Поиск и замена значений + Поиск дублирующихся элементов справочников с подключением к внешней базе
- Поиск и замена значений с автопоиском под БГУ 1.0
- Точечный поиск и замена значений
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) это строковый тип данных?
Находятся за один проход циклом.
Создается соответствие до цикла.
В цикле проверяется значение в соответствии по ключу по нужным кол-вам символов. Если нашли, то добавляем в дубли. Сохраняем строку таблицы (или любое значение кроме Неопределено) в соответствие по ключу из нужного кол-ва символов.
Находятся за один проход циклом.
Создается соответствие до цикла.
В цикле проверяется значение в соответствии по ключу по нужным кол-вам символов. Если нашли, то добавляем в дубли. Сохраняем строку таблицы (или любое значение кроме Неопределено) в соответствие по ключу из нужного кол-ва символов.
Выгружаете ТЗ в запрос. В запросе из временной таблицы выбираете поля: НомерСтроки, необходимая вам часть кода (см. функции работы со строкой) и поле с цифрой 1. Делаете итоги по полю с частью номера и суммируете цифру 1. Там, где в итоговой строке цифра будет больше 1, есть дубли
(6)
А как 1С с СУБД работает лучше вообще не смотреть.
А тут мелкая разовая задачка с поиском двойников по подстроке. Фиолетово как её решать.
Важно будет только, если это тестовая задача на собеседовании.
Надо думать о нагрузке на сервера.
Не надо. 1С не думает. Только и занимается что из пустого в порожнее данные со своим тонким клиентом и БСП передает. И плевать они хотели на производительность. :-)
А как 1С с СУБД работает лучше вообще не смотреть.
А тут мелкая разовая задачка с поиском двойников по подстроке. Фиолетово как её решать.
Важно будет только, если это тестовая задача на собеседовании.
(6) У вас аргументация хромает. Во-первых, никогда не быстрее, во-вторых, поддерживать такие "творения" сложнее — встроенный язык читается проще, имеет линейную структуру, позволяет вести отладку.
(5) Не завидую тем, кому придётся за вами дорабатывать.
(1) Что на выходе нужно получить? Массив? Чего проще то — обойти каждую строку и по условию заполнять массив строками.
(5) Не завидую тем, кому придётся за вами дорабатывать.
(1) Что на выходе нужно получить? Массив? Чего проще то — обойти каждую строку и по условию заполнять массив строками.
1. Отсортировать по полю с дублями -> ТЗ.Сортировать("Номер").
2. Сравнить текущий с запомненным на предыдущем шаге предыдущим: СтараяСтрока = неопределено; Для каждого Строка... Сравнить(Строка, СтараяСтрока); СтараяСтрока = Строка; КонецЦиклов - где-то там функция Сравнить(С0, С1), внутри которой код с проверкой на неопределено.
3. Если "равно" - сообщить куда следует и затаиться до дальнейших указаний.
2. Сравнить текущий с запомненным на предыдущем шаге предыдущим: СтараяСтрока = неопределено; Для каждого Строка... Сравнить(Строка, СтараяСтрока); СтараяСтрока = Строка; КонецЦиклов - где-то там функция Сравнить(С0, С1), внутри которой код с проверкой на неопределено.
3. Если "равно" - сообщить куда следует и затаиться до дальнейших указаний.
(13) Ещё раз. Вы у текущей сравниваете значение с предыдущей по некой функции. А что-то куда-то сообщаете или признак ставите это не важно. Если у второй строки такое-же значение как у первой, то где сообщение о том что у первой тоже дубль?
Два сравнения должно быть.
Найти, как правило, нужно все дубли, а не первый попавшийся.
Два сравнения должно быть.
Найти, как правило, нужно все дубли, а не первый попавшийся.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот