Здравствуйте уважаемые программисты. Вчера наш новый сотрудник поковырялся в конфигураторе и почему-то сегодня все артикулы равны "1". Скажите пожалуйста как можно сделать, чтобы автоматически каждому артикулу вместо 1 присваивался номер типа: с 000001 и до 014000. Всего 14к номенклатур поэтому и нумерация до 014000, но чтобы одна номенклатура не повторялась в другой.

Очень прошу помочь.
1С 8.3
Ут 11.4
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.Артикул,
    | Номенклатура.ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Артикул = "1""
    ;
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Объект.Артикул=строка(Счетчик);
    Пока СтрДлина(Объект.Артикул)<> 6 цикл
    Объект.Артикул = "0"+Объект.Артикул;
    конецЦикла;
    Счетчик = Счетчик+1;
    Объект.Записать();
    КонецЦикла;
```

Вот так поменяй артикула. Только запрос свой поставь ну или в моем убери отбор
---
как убрать запятую?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.Артикул,
    | Номенклатура.ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура"
    ;
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Если Найти(Объект.Артикул,".")>0 тогда
    Объект.Артикул = СтрЗаменить(Объект.Артикул,",",");
    конецЕсли;

    Объект.Записать();
    КонецЦикла;
```
---
Код
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
     |    Номенклатура.Ссылка,
     |    Номенклатура.Артикул,
     |    Номенклатура.ЭтоГруппа
     |ИЗ
     |    Справочник.Номенклатура КАК Номенклатура"
     ;
     Выборка = Запрос.Выполнить().Выбрать();
      Счетчик = 1;
     Пока Выборка.Следующий() Цикл
        Объект = Выборка.Ссылка.ПолучитьОбъект();
        Если Найти(Объект.Артикул,",")>0 тогда
        Объект.Артикул = СтрЗаменить(Объект.Артикул,",","");
      конецЕсли;

        Объект.Записать();
     КонецЦикла;
Показать полностью
---
Сделай цикл с счетчиком . Для каждой номенклатуры Артикул= Артикул+1;
---
Сделай цикл с счетчиком. Для каждой номенклатуры Артикул= Артикул+1;

Внешним обработчиком сделать?
---
Да
---
Тогда нужно ещё и выводить лидирующие нули да?
---
Сейчас напишу код и отправлю. Честно не помню, поставит ли он нули
---
Спасибо огромное. Буду Вам очень благодарен
---
запрос сам составишь?
---
(8) запрос сам составишь?

Вроде как смогу) Но если Вам не сложно можете пожалуйста отправить полный код
---
Жди, не верно сделал. Сейчас подправлю. Если выполнишь как в (11) то будет 0000014000
---
спасибо огромное. Буду ждать
---
в 14 написал
---
Спасибо огромное. Сейчас попробую
---
Код Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
    |   Номенклатура.Ссылка,
    |   Номенклатура.Артикул,
    |   Номенклатура.ЭтоГруппа
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |   Номенклатура.Артикул = ""01"""
    ;
    Выборка = Запрос.Выполнить().Выбрать();
     Счетчик = 1;
     Арт ="000000";
    Пока Выборка.Следующий() Цикл
      Объект = Выборка.Ссылка.ПолучитьОбъект();
      Объект.Артикул=строка(Строка(Арт)+Счетчик);
      Счетчик = Счетчик+1;
      Объект.Записать();

    КонецЦикла;

Показать полностью
---
Скорее всего ваш сотрудник изменил в номенклатуре "Артикул"
---
```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.Артикул,
    | Номенклатура.ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Артикул = "1""
    ;
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Объект.Артикул=строка(Счетчик);
    Пока СтрДлина(Объект.Артикул)<> 6 цикл
    Объект.Артикул = "0"+Объект.Артикул;
    конецЦикла;
    Счетчик = Счетчик+1;
    Объект.Записать();
    КонецЦикла;
```

Вот так поменяй артикула. Только запрос свой поставь ну или в моем убери отбор
---
Спасибо огромное
---
Можешь дать доступы?
---
Заработало ) Продолжило меняться) С 22 до 100 резко изменил 0_о

Спасибо Вам Огромное
---
рад был помочь
---
нашёл небольшую проблему. с 001000 пишет так: 001,000 как убрать запятую?
---
как убрать запятую?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.Артикул,
    | Номенклатура.ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура"
    ;
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Если Найти(Объект.Артикул,".")>0 тогда
    Объект.Артикул = СтрЗаменить(Объект.Артикул,",",");
    конецЕсли;

    Объект.Записать();
    КонецЦикла;
```
---
Выдаёт ошибку
---
Не за что. Используй их как шаблоны и все. А так советую обработку "Консоль запросов", чтобы не входя в конфигуратор получать результат запроса
---
так советую обработку "Консоль запросов", чтобы не входя в конфигуратор получать результат запроса

Хорошо =) Но с кодом выше выдаёт ошибку:{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(18,51)}: Пропущен символ '"' (двойная кавычка)
     | Справочник.Номенклатура КАК Номенклатура<<?>> (Проверка: Сервер)
{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(25,56)}: Ожидается символ ','
        Объект.Артикул = СтрЗаменить(Объект.Артикул,","<<?>>.""); (Проверка: Сервер)
{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(18,51)}: Пропущен символ '"' (двойная кавычка)
     | Справочник.Номенклатура КАК Номенклатура<<?>> (Проверка: Сервер)
{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(25,56)}: Ожидается символ ','
        Объект.Артикул = СтрЗаменить(Объект.Артикул,","<<?>>.""); (Проверка: Сервер)
{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(18,51)}: Пропущен символ '"' (двойная кавычка)
     | Справочник.Номенклатура КАК Номенклатура<<?>> (Проверка: Тонкий клиент)
{ВнешняяОбработка.РучнаяОбработка.Форма.Форма.Форма(25,56)}: Ожидается символ ','
        Объект.Артикул = СтрЗаменить(Объект.Артикул,","<<?>>.""); (Проверка: Тонкий клиент)
---
Код
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
     |    Номенклатура.Ссылка,
     |    Номенклатура.Артикул,
     |    Номенклатура.ЭтоГруппа
     |ИЗ
     |    Справочник.Номенклатура КАК Номенклатура"
     ;
     Выборка = Запрос.Выполнить().Выбрать();
      Счетчик = 1;
     Пока Выборка.Следующий() Цикл
        Объект = Выборка.Ссылка.ПолучитьОбъект();
        Если Найти(Объект.Артикул,",")>0 тогда
        Объект.Артикул = СтрЗаменить(Объект.Артикул,",","");
      конецЕсли;

        Объект.Записать();
     КонецЦикла;
Показать полностью
---
Получается вот так?

```1c
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка,
    | Номенклатура.Артикул,
    | Номенклатура.ЭтоГруппа
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Артикул = "1""
    ;
    Выборка = Запрос.Выполнить().Выбрать();
    Счетчик = 1;
    Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Объект.Артикул=строка(Счетчик);
    Пока СтрДлина(Объект.Артикул)<> 6 цикл
    Объект.Артикул = "0"+Объект.Артикул;
    конецЦикла;
    Счетчик = Счетчик+1;
    Объект.Записать();

    Если Найти(Объект.Артикул,".")>0 тогда
    Объект.Артикул = СтрЗаменить(Объект.Артикул,",",");
    конецЕсли; КонецЦикла;
```
---
Нет. Я выше написал
---
а 0000 подставлять будет? Просто он значительно отличается ) Поэтому уточняю
---
Он просто запятую уберет и все
---
Спасибо огромное =)
---
всё) Я только сейчас понял )
---
Действительно хороший сотрудник