![]() |
![]() |
![]() |
|
Поиск и замена дублирующихся елементов справочников в 1С 7.7 | ☑ | ||
---|---|---|---|---|
0
burrya
11.02.08
✎
12:08
|
Есть ли обработки в 7.7 аналогичные обработке Поиск и замена дублирующихся елементов справочников в 1С 8. Спасибо.
|
|||
1
lea_220400
11.02.08
✎
12:10
|
в стандартной нет, фпоиск, если БД SQL вот примерчег с мисты, ходи фконец
Книга знаний: Эффективное использование MSSQL с помощью ВК 1C++ |
|||
2
Dm81
11.02.08
✎
12:10
|
Можно через ТЗ, как вариант
|
|||
3
burrya
11.02.08
✎
14:01
|
А что иммеется ввиду под ТЗ?
|
|||
4
КонецЦикла
11.02.08
✎
14:02
|
Вот это можно переделать на свой вкус
http://infostart.ru/projects/1096/ |
|||
5
sapphire
11.02.08
✎
14:04
|
Чума... Тупейший запрос на встроенном языке.
regprint |
|||
6
Альберт_Уфа
11.02.08
✎
14:36
|
на 8.0 легко можно написать свой запрос по поиску дублей. на вскидку так:
ВЫБРАТЬ Номенклатура1.Ссылка, Номенклатура2.Ссылка КАК Ссылка1 ИЗ Справочник.Номенклатура КАК Номенклатура1 ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура2 ПО Номенклатура1.Ссылка <> Номенклатура2.Ссылка И Номенклатура1.Наименование = Номенклатура2.Наименование |
|||
7
Альберт_Уфа
11.02.08
✎
14:37
|
тьфу ты блин.... ты хочешь в 7.7 сделать? сейчас напишу, на прошлой неделе делал.
|
|||
8
Альберт_Уфа
11.02.08
✎
14:44
|
спр=СоздатьОбъект("Справочник.Дисконты");
ТЗ=СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Количество"); ТЗ.НоваяКолонка("Наименование"); спр.выбратьЭлементы(); Пока спр.получитьЭлемент()=1 цикл Если Лев(СокрЛП(спр.Наименование),2) = "66" Тогда ТЗ.НоваяСтрока(); ТЗ.Наименование = Спр.Наименование; ТЗ.Количество = 1; КонецЕсли; КонецЦикла; Всего = 0; ТЗ.Свернуть("Наименование","Количество"); ТЗ.Сортировать("Наименование"); Для сч = 1 по ТЗ.КоличествоСтрок() цикл Наименование = ТЗ.ПолучитьЗначение(сч,"Наименование"); Количество = ТЗ.ПолучитьЗначение(сч,"Количество"); Если Количество > 1 Тогда Сообщить("Дисконт: " + СокрЛП(Наименование) + " в количестве: " + СокрЛП(Количество) + " шт."); Всего = Всего + 1; КонецЕсли; КонецЦикла; Сообщить("Всего " + Всего + " одинаковых"); |
|||
9
burrya
11.02.08
✎
14:59
|
Ребята давайте внесем поправочку. Кто знаком с обработкой "Поиск и замена дублирующихся елементов справочников" в 1С 8, знает, что эта обработка позволяет:
1. Отискать все элементы справочника с одинаковым реквизитом, к примеру поиск осуществляется по одинаковому наименованию. Например ищем в справочнике контрагентов всех контрагентов с наименованием "Василий". 2. Из всех найденных элементов мы помечаем один как "Правильный". 3. Дальше выполняем замену всех "неправильных" элементов на "правильный" по всем объектам системы(документам, спрамвочникам, операциям и т.д). |
|||
10
Ёпрст2
11.02.08
✎
15:00
|
repval.ert + небольшая заточка напильником ...
|
|||
11
sapphire
11.02.08
✎
15:04
|
(9) Поиск дублей - тупейший запрос,
дальше, берешь repval.ert с диска итс, переписываешь по открытие извне (добавляешь Форма.Параметр и всё! |
|||
12
sapphire
11.02.08
✎
15:04
|
(10) у дураков мысли сходятся:)
|
|||
13
sapphire
11.02.08
✎
15:12
|
Поиск дублей - тупо запросом с группировками по уникальному полю и элементам, функцией Счетчик() - выгружаем запрос в ТЗ, добавляем Колонку - КоличествоСсылок.
Делаем копию ТЗ ТЗ1, очищаем, для записи элементов. Проверяем счетчик на не нуль для верхней группировки, для нижней группировки (Элемент) получаем все ссылки через НайтиСсылки(<?>,) заполняем ТЗ Если Счетчик верхней группировки=1 - пропускаем! |
|||
14
Торин
11.02.08
✎
15:25
|
м-да...
Можно уважаемые коллеги и мои три копейки. Я делал это так: 1.на форму кладется элемент диалога типа "список с пометками" который через объект "метаданные" заполняется перечнем реквизитов справочника 2. справочник выгружается в ТЗ(таблицу значений). 3. Добавляется колонка - "счетчик" 4. в эту колонку записывается число "1" 5. В зависимости от выбранного в списке таблица сворачивается по совокупности колонок. 6. все строки в которых значение счетчика равно "1" удаляются 7. оставшиеся строки - это и есть дубли. Значение счетчика - количество повторений. ВСЕ! |
|||
15
burrya
11.02.08
✎
15:46
|
repval.ert - то что надо спасибо друзья, это то, чего я хотел :)
|
|||
16
rcs
11.02.08
✎
15:52
|
Главная проблема подобной обработки в 7.7 - в ней невозможно заменить ссылки в движениях документа, как в 8, нужно перепроводить документы, а это не есть хорошо.
|
|||
17
burrya
19.02.08
✎
12:52
|
(16) Да, это серьезная проблема. А какие способы есть для "полной замены", т.е. и по ссылкам в движениях тоже.
|
|||
18
Mikeware
19.02.08
✎
13:07
|
(14) тот ли это Торин, с которым я знаком? Хня написана.
|
|||
19
Mikeware
19.02.08
✎
13:08
|
(17) Прямой запрос. Только итоги потом пересчитывать приходится...
|
|||
20
burrya
19.02.08
✎
13:11
|
(19) Имеешь ввиду 1С++
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |