Работа со справочниками

Новая тема
Есть ситуация в справочнике номенклатура есть позиции с одинаковыми артикулами, как программно можно сделать повторяющиеся артикулы разными, т.е. найти элементы с одинаковыми артикулами и один из них сделать другим? например есть 2 элемента с артикулом "ААА", надо один элемент оставить таким же, а второй "ААА_", подскажите плиз
наименование конфигурации ?
+ типовая или нет ?
комплексная 7.7
"потренируйся на копии, вот примерный код:

МоёЗначениеАртикула = "ААА";
НовоеЗначениеАтикула = "ААА_";
Спр = СоздатьОбъект("Справочник.Номенклатура");
Если Спр.ВыбратьЭлементыПоРеквизиту("Артикул",МоёЗначениеАртикула,0,1)=0 Тогда
Сообщить("нет такого реквизита");
КонецЕсли;
Спр.ПолучитьЭлемент();
Спр.Артикул = НовоеЗначениеАтикула;
Спр.Записать();"
суть в том что повторяющихся артикулов много, и какие они я незнаю, если бы был 1 то я бы ручками поменял, т.е.:
есть в справочнике колонка артикул и выглядит примерно так
1.ААА
2.ААА
3.BBB
4.CCC
5.CCC
6.DDD
7.EEE
8.FFF
9.FFF
а мне надо чтобы выглядело так:
1.ААА
2.ААА_
3.BBB
4.CCC
5.CCC_
6.DDD
7.EEE
8.FFF
9.FFF_
ясно...

они необязательно задвоены ?
да необязательно, просто это произошло из-за некорректного заполнения справочника, у меня переносом из другой базы ищет по артикулу, а бухгалтера зачем-то заносили ручками некоторое время и не ставили артикул, поэтому создаваля новый товар
> да необязательно, просто это произошло из-за некорректного заполнения справочника, у меня переносом из другой базы ищет по артикулу, а бухгалтера зачем-то заносили ручками некоторое время и не ставили артикул, поэтому создаваля новый товар

1. делаешь запрос по справочнику - получаешь СЗ совсеми возможными Артикулами...
2. далее делаешь запрос для каждого и заменяешь

первое, что на мысль пришло
"ТекстЗапроса="Товар=Справочник.Номенклатура.ТекущийЭлемент;
            |Артикул=Справочник.Номенклатура.Артикул;
            |Группировка Артикул;
            |Группировка Товар без групп без упорядочивания;";

Запрос=СоздатьОбъект("Запрос");
Если Запрос.Выполнить(ТекстЗапроса)=1 Тогда
    Номенклатура=СоздатьОбъект("Справочник.Номенклатура");
    Пока Запрос.Группировка(1)=1 Цикл
         ТекАртикул=СокрЛП(Запрос.Артикул);
         Если ПустаяСтрока(ТекАртикул)=0 Тогда
              Счетчик=0;
              Пока Запрос.Группировка(2)=1 Цикл
                   Счетчик=Счетчик+1;
                   Если Счетчик>1 Тогда
                        Если Номенклатура.НайтиЭлемент(Запрос.Товар)=1 Тогда
                             Номенклатура.Артикул=ТекАртикул+?(Счетчик=2,"_",Строка(Счетчик)); //а вдруг дубликатов много?! в результате такого будет "ААА", "ААА_", "ААА2", "ААА3"...
                             Номенклатура.Записать();
                        КонецЕсли;
                   КонецЕсли;
              КонецЦикла;
         КонецЕсли;
    КонецЦикла;
КонецЕсли;"
спс
Читают тему
(гостей: 1)

Быстрый переход