gifts2017

Поиск и замена номенклатуры

Опубликовал Андрей Хван (gelion) в раздел Администрирование - Поиск данных

Обработка является модификацией стандартной обработки "Поиска и замены значений", ориентированной для поиска и замены номенклатуры. В ней имеется специальная кнопка «Рассчитать». При нажатии на нее, в таблицу замены попадают подчиненные элементы «двойников». Если у замещающей номенклатуры нет замены для двойника, то она создается.

Всем вам знакома обработка по поиску и замене значений, поставляемая на диске ИТС.
Недавно столкнулся с проблемой: нужно было заменить дубли номенклатуры в базе. Вначале я подумал, что мне подойдет стандартная обработка, но как оказалось впоследствии, у "двойников" также есть подчиненные элементы в справочниках: единицы измерения, серии, характеристики и прочее. Их тоже нужно заменить на соответствующие подчиненные элементы замещающей номенклатуры. Если этого не сделать, то во всех документах, где использовалась номенклатура будет ужасная путаница – номенклатура в документе одна, а серия и единица измерения принадлежат другой.
Как видите, проблема замены номенклатуры перестает быть такой тривиальной.

Данная обработка является модификацией стандартной обработки "Поиска и замены значений", ориентированной для поиска и замены номенклатуры.

В ней имеется специальная кнопка «Рассчитать». При нажатии на нее, в таблицу замены попадают подчиненные элементы «двойников». Если у замещающей номенклатуры нет замены для двойника, то она создается.

Скачать файлы

Наименование Файл Версия Размер
Поиск и замена номенклатуры 456
.epf 18,94Kb
26.09.14
456
.epf 18,94Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Сергей Ожерельев (Поручик) 06.10.09 12:32
Видно, у вас конфа нештатная или моденная.

УТ 10.3
{Форма.Форма(546)}: Тип не определен (СправочникСсылка.ОригинальныеНомераНоменклатуры)
иначеЕсли ТипЗнч(стр.Данные)=Тип("СправочникСсылка.ОригинальныеНомераНоменклатуры") тогда

иначеЕсли ТипЗнч(стр.Данные)=Тип("РегистрСведенийКлючЗаписи.РасчетСерий") тогда
Отключено=Истина;

2. Андрей Хван (gelion) 06.10.09 12:39
Спасибо, вы правы, сейчас исправлю...
3. Валентин Будкин (vabue) 07.10.09 00:01
Превентивно плюсую, есть большая необходимость в подобной обработке.
4. Сергей Старых (tormozit) 07.10.09 01:16
Я решал подобную задачу этой обработкой http://infostart.ru/public/14986/. Сначала устранял дубли в главном справочнике, а затем уже по ключу из двух полей в подчиненных.
5. rasswet (rasswet) 07.10.09 10:06
" Если у замещающей номенклатуры нет замены для двойника, то она создается."
допустим меняем конрагента2 на контрагента1
если у К1 есть договор1, а у К2 есть договор2 что будет?
и ситуации есть только договор2 у К2,а у к1 нет договоров.
6. stray (stray) 07.10.09 15:18
что с характеристиками, сериями, ед.изм ... у заменяемой номенклатуры, что с ними делаешь??
7. Александр Рытов (Арчибальд) 07.10.09 17:14
(5,6) Цитата:
"Замена/удаление дублирующихся элементов справочников - задача не всегда простая. Что делать, если у справочника имеются подчиненные? Очевидно, сначала нужно разобраться с подчиненными элементами.
Возможны варианты:
Если у владельца-заменителя есть подходящий подчиненный элемент для замещения, устанавливаем соответствие;
Если на подчиненный элемент нет ссылок, удаляем его
Если нас не устраивает ни то, ни другое, меняем владельца у подчиненного." (с) Арчибальд.
Примерно так вот... А "заточка" под конкретный справочник - не гуд.

8. Андрей Хван (gelion) 08.10.09 08:21
(5,6,7) Дело в том, что обработка довольно специфичная и ориентирована на работу только со справочником "Номенклатуры".

При замене дублей я предполагаю, что дубли возникшие в 1с представляют из себя указания на конкретные существующие в жизни товары. Это означает, что при их возникновении, все их подчиненные элементы должны быть идентичны (выглядеть для пользователя одинаково).

Например:
В справочнике номенклатур у нас есть три дубля для Номенклатуры "Пылесос"
1. Пылесос (код 1) арт 001,
ЕдИзм шт.
Серия1 0010101
2. Пылесо (код 2) арт 001,
ЕдИзм шт.
Серия1 0010101
Серия2 0010102

3. Пилесос (код 3) арт 001,
ЕдИзм шт.
Серия2 0010102


Некими способами, мы определили, что все они являются дублями друг друга и указывают на одну единственную номенклатуру "Пылесос"

Теперь нам нужно выделить главную, и заменить ею, все остальные
Пусть это будет 1я из них.

Обработка добавит для нее серию2 0010102 (скопирует все ее параметры из первой попавшейся серии2).
Замена и сравнение подчиненных элементов (серия, единица измерения) осуществляется по их названиям.
9. Александр Рытов (Арчибальд) 08.10.09 08:56
(8) Э, нет, так не отделаешься. Уж эсли номенклатуру можно представить разными способами, то характеристики номенклатуры - тем более. Почему Серию2 мы возьмем от второго пылесоса, если она правильная как раз в третьем?
10. Александр Рытов (Арчибальд) 08.10.09 08:57
11. Анатолий Ситников (acsent) 08.10.09 12:26
Зачем копировать все параметры, когда можно у конечного элемента поменять владельца?
12. Андрей Хван (gelion) 08.10.09 15:02
(9) Кончено, вы правы! Вероятность того, что в характеристике номенклатуры будет ошибка имеется. Заметьте, какие я взял параметры номенклатуры:
- Единица измерения - в ней ошибиться практически невозможно, так как она берется из классификатора.
- Серия номенклатуры - Обычно серия имеет строго определенное внешнее представление, так как она попадает в печатные формы и официальные документы.

(11) Тоже согласен, но раз уж мы все равно приняли решение покончить с дублем, то уже нам "ничего от него не надо". С другой стороны, если просто поменять всем подчиненным объектам дублей владельцев, то у нашего оставшегося элемента будет куча дублирующихся подчиненных элементов, что тоже не есть гуд)

13. Александр Рытов (Арчибальд) 08.10.09 15:20
(12) См. 7 коммент. Вариант 3 применяется, когда не проходят ни 1-й, ни 2-й. Я ж не с наскоку говорю; подробно разбирался с проблемой, когда сам такую штуку писал (цитата в 7 комменте оттуда)
14. Владислав Рожевский (vvr908) 13.10.09 23:54
(13) Лично я готов согласиться, что более "продуманным" выглядит использование вариантов 1, 2 и только потом 3. Но проще, по-моему, было бы провести поиск и замену дублей сначала для "основного" справочника, а затем для всех подчиненных по очереди. Заодно и другие проблемы в подчиненных справочниках выявятся...
15. itt (itt) 12.10.11 12:51
а как думаете можно ли подобную обработку давать пользователям?
16. Александр Гыдилика (Gida) 28.11.11 15:02
itt пишет:
а как думаете можно ли подобную обработку давать пользователям?

хороший вопрос, а кто ж ее тогда юзать будет? не программеры же будут "чистить" за юзерами..
17. Николай Задоя (ADM1NZ) 18.01.12 16:17
18. Дортман Слава (dva2000) 26.07.12 18:05
У меня не сработало.

УТ 10.3 под 81.
Добавил номенклатуру, нажал "рассчитать", рассчиталось правильно, Нажал "Найти ссылки", ссылки нашлись правильно.
Нажал "выполнить замену значений" (все флажки на всех объектах стоят - по умолчанию) после некоторого раздумья написал "Обработка завершена" (ошибок и других сообщений не было), но ожидаемых замен ни в документах, ни в движениях не произошло.