помогите разобраться с кодом, что то не работает как надо!!!
НМ = СоздатьОбъект("Справочник.Номенклатура");
НМ.ВыбратьЭлементы();
Пока НМ.ПолучитьЭлемент() =1 Цикл
ЕИ = СоздатьОбъект("Справочник.Единицы");
БЕ = НМ.БазоваяЕдиница;
ЕИ.ИспользоватьВладельца(НМ.ТекущийЭлемент());
ЕИ.ВыбратьЭлементы();
Пока ЕИ.ПолучитьЭлемент() = 1 Цикл
Если (ЕИ.ШтрихКод = БЕ.ШтрихКод) и (ЕИ.Код<>БЕ.Код) Тогда
ЕИ.Удалить(1);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Запомните код номенклатуры в котором точно есть дубль допустим "555555555"
Дальше так:
НМ = СоздатьОбъект("Справочник.Номенклатура");
НМ.ВыбратьЭлементы();
Пока НМ.ПолучитьЭлемент() =1 Цикл
ЕИ = СоздатьОбъект("Справочник.Единицы");
БЕ = НМ.БазоваяЕдиница;
Если НМ.Код = "55555555" Тогда
ЕИ = ЕИ;//В этом месте ставьте точку останова в отладчике.
КонецЕсли;
ЕИ.ИспользоватьВладельца(НМ.ТекущийЭлемент());
ЕИ.ВыбратьЭлементы();
Пока ЕИ.ПолучитьЭлемент() = 1 Цикл
Если (ЕИ.ШтрихКод = БЕ.ШтрихКод) и (ЕИ.Код<>БЕ.Код) Тогда
ЕИ.Удалить(1);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Показать
Поймайте Вашу позицию в точке останова, а затем по F8 шагами пройдитесь по коду выведя значения переменных ЕИ.ШтрихКод, БЕ.ШтрихКод, ЕИ.Код, и БЕ.Код в оконо отладки. Там и увидите почему...
НМ = СоздатьОбъект("Справочник.Номенклатура");
НМ.ВыбратьЭлементы();
Пока НМ.ПолучитьЭлемент() =1 Цикл
ЕИ = СоздатьОбъект("Справочник.Единицы");
БЕ = НМ.БазоваяЕдиница;
ЕИ.ИспользоватьВладельца(НМ.ТекущийЭлемент());
ЕИ.ВыбратьЭлементы();
Пока ЕИ.ПолучитьЭлемент() = 1 Цикл
Если (ЕИ.ШтрихКод = БЕ.ШтрихКод) и (ЕИ.ТекущийЭлемент()<>БЕ) Тогда
ЕИ.Удалить(1);
КонецЕсли;
КонецЦикла;
КонецЦикла;
(11) dusha0020, Данный код ничего не меняет с этими долбаными штрихкодами. как было их два одинаковых так и осталось! Я уже башкой об стену начинаю биться, утро уже скоро, а база не готова!! HELP
смысл в том, что в справочнике еденицы записалось двойное значение штрихкода для каждой позиции номенклатуры, и мне их надо програмно удалить, я не могу удалить повторное значение основоного штрихкода, получается что удаляется сразу оба значени и остается только то что было третье или вообще пустое место!
я только не пойму для чего такое условие ЕИ.Код<>БЕ.Код тут нет кода у справочника единиц! как быть в подобной ситуации, чтобы удалить именно дубль штрихкода и он остался как основная еденица , модет вам мою базу надо?