1. Nefilimus 13.03.19 09:17 Сейчас в теме

Проблема с Артикулами

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

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


Вот так поменяй артикула. Только запрос свой поставь ну или в моем убери отбор
Nefilimus; +1 Ответить
22. ranis888 5 13.03.19 11:33 Сейчас в теме
(21)
как убрать запятую?


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

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

        Объект.Записать();
     КонецЦикла;
Показать полностью
Nefilimus; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
2. ranis888 5 13.03.19 09:23 Сейчас в теме
Сделай цикл с счетчиком . Для каждой номенклатуры Артикул= Артикул+1;
Nefilimus; +1 Ответить
4. Nefilimus 13.03.19 09:30 Сейчас в теме
(2)
Сделай цикл с счетчиком. Для каждой номенклатуры Артикул= Артикул+1;


Внешним обработчиком сделать?
5. ranis888 5 13.03.19 09:31 Сейчас в теме
6. Nefilimus 13.03.19 09:33 Сейчас в теме
(5) Тогда нужно ещё и выводить лидирующие нули да?
7. ranis888 5 13.03.19 09:34 Сейчас в теме
(6) Сейчас напишу код и отправлю. Честно не помню, поставит ли он нули
Nefilimus; +1 Ответить
8. Nefilimus 13.03.19 09:34 Сейчас в теме
(7) Спасибо огромное. Буду Вам очень благодарен
9. ranis888 5 13.03.19 09:38 Сейчас в теме
(8) запрос сам составишь?
Nefilimus; +1 Ответить
10. Nefilimus 13.03.19 09:39 Сейчас в теме
(9)
(8) запрос сам составишь?


Вроде как смогу) Но если Вам не сложно можете пожалуйста отправить полный код
12. ranis888 5 13.03.19 09:53 Сейчас в теме
(10) Жди, не верно сделал. Сейчас подправлю. Если выполнишь как в (11) то будет 0000014000
Nefilimus; +1 Ответить
13. Nefilimus 13.03.19 09:58 Сейчас в теме
(12) спасибо огромное. Буду ждать
15. ranis888 5 13.03.19 09:58 Сейчас в теме
16. Nefilimus 13.03.19 09:59 Сейчас в теме
(15) Спасибо огромное. Сейчас попробую
11. ranis888 5 13.03.19 09:52 Сейчас в теме
(11)
Код
 Запрос = Новый Запрос;    
   Запрос.Текст =
   "ВЫБРАТЬ
    |   Номенклатура.Ссылка,
    |   Номенклатура.Артикул,
    |   Номенклатура.ЭтоГруппа
    |ИЗ
    |   Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |   Номенклатура.Артикул = ""01"""
    ;
    Выборка = Запрос.Выполнить().Выбрать();
     Счетчик = 1;
     Арт ="000000";
    Пока Выборка.Следующий() Цикл
      Объект = Выборка.Ссылка.ПолучитьОбъект(); 
      Объект.Артикул=строка(Строка(Арт)+Счетчик);
      Счетчик = Счетчик+1;
      Объект.Записать();

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


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


Спасибо огромное
18. ranis888 5 13.03.19 10:09 Сейчас в теме
(17) Можешь дать доступы?
Nefilimus; +1 Ответить
19. Nefilimus 13.03.19 10:10 Сейчас в теме
(18) Заработало ) Продолжило меняться) С 22 до 100 резко изменил 0_о

Спасибо Вам Огромное
20. ranis888 5 13.03.19 10:11 Сейчас в теме
21. Nefilimus 13.03.19 11:17 Сейчас в теме
(20) нашёл небольшую проблему. с 001000 пишет так: 001,000 как убрать запятую?
22. ranis888 5 13.03.19 11:33 Сейчас в теме
(21)
как убрать запятую?


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

        Объект.Записать();
     КонецЦикла;
Показать
Nefilimus; +1 Ответить
23. Nefilimus 13.03.19 11:35 Сейчас в теме
24. ranis888 5 13.03.19 11:37 Сейчас в теме
(23) Не за что. Используй их как шаблоны и все. А так советую обработку "Консоль запросов", чтобы не входя в конфигуратор получать результат запроса
Nefilimus; +1 Ответить
25. Nefilimus 13.03.19 11:38 Сейчас в теме
(24)
так советую обработку "Консоль запросов", чтобы не входя в конфигуратор получать результат запроса


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

        Объект.Записать();
     КонецЦикла;
Показать полностью
Nefilimus; +1 Ответить
27. Nefilimus 13.03.19 11:44 Сейчас в теме
(26)
Получается вот так?
 Запрос = Новый Запрос;     
    Запрос.Текст =
    "ВЫБРАТЬ
     |    Номенклатура.Ссылка,
     |    Номенклатура.Артикул,
     |    Номенклатура.ЭтоГруппа
     |ИЗ
     |    Справочник.Номенклатура КАК Номенклатура
     |ГДЕ
     |    Номенклатура.Артикул = ""1"""
     ;
     Выборка = Запрос.Выполнить().Выбрать();
      Счетчик = 1;
     Пока Выборка.Следующий() Цикл
        Объект = Выборка.Ссылка.ПолучитьОбъект(); 
        Объект.Артикул=строка(Счетчик);
        Пока СтрДлина(Объект.Артикул)<> 6 цикл
             Объект.Артикул = "0"+Объект.Артикул;
        конецЦикла;
        Счетчик = Счетчик+1;
        Объект.Записать();
   	
	
	Если Найти(Объект.Артикул,".")>0 тогда
        Объект.Артикул = СтрЗаменить(Объект.Артикул,",","");
      конецЕсли;    КонецЦикла;
Показать
28. ranis888 5 13.03.19 11:48 Сейчас в теме
(27) Нет. Я выше написал
Nefilimus; +1 Ответить
29. Nefilimus 13.03.19 11:49 Сейчас в теме
(28) а 0000 подставлять будет? Просто он значительно отличается ) Поэтому уточняю
31. ranis888 5 13.03.19 12:58 Сейчас в теме
(29) Он просто запятую уберет и все
Nefilimus; +1 Ответить
32. Nefilimus 13.03.19 13:14 Сейчас в теме
30. Nefilimus 13.03.19 12:51 Сейчас в теме
(28) всё) Я только сейчас понял )
33. muskul 14.03.19 03:50 Сейчас в теме
Действительно хороший сотрудник
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Консультант-аналитик 1С
Москва
зарплата от 70 000 руб. до 100 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб. до 120 000 руб.
Временный (на проект)