Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/37: Рейтинг темы: голосов - 37, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 27
1
1C 7.x

Копировать код номенклатуры в артикул

11.03.2013, 12:34. Показов 7388. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
8.2 УТ 10.3.15.9

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

Теперь хотелось бы привести все к норме. А для этого:
1. Скопировать коды номенклатуры в артикул.
2. Восстановить автоматическую номерацию кодов номенклатуры.

По первому вопросу в инете нашел такой код:

Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
спрОбъект = Выборка.Ссылка.ПолучитьОбъект();
спрОбъект.Артикул = Строка(Число(Выборка.Код));
спрОбъект.Записать();
КонецЦикла;

Но он выдает ошибку "преобразование значения к типу число не может быть выполнено"

По второму вопросу тоже как то натыкался на подсказку, но сейчас сходу не нашел.

Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2013, 12:34
Ответы с готовыми решениями:

Код номенклатуры в отчете ТМЦ
Подскажите, пожалуйста, как сделать так, чтобы в отчете остатков ТМЦ фигурировал код товара?

Какой тип номенклатуры можно указать для вида номенклатуры?
сдавал экзамен проф УТ 8, попался вопрос: какой тип номенклатуры можно указать для вида...

Складской учет.Поступление партии номенклатуры, расход парти номенклатуры, вычисление остатка
Доброго времени суток! Помогите решить возникшую проблему: Существует таблица tblЧип с перечнем...

Вытянуть код номенклатуры в макет печати документа переоценки
1С:Предприятие 8.2 (8.2.19.130) конфиг 1.2.15.2 Скажите пожалуйста, как вытянуть код номенклатуры...

15
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
11.03.2013, 14:08 2
1C
1
2
3
4
5
6
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
         спрОбъект = Выборка.Ссылка.ПолучитьОбъект();
         спрОбъект.Артикул = Строка(СпрОбъект.Код); //хотя если код тоже строковый ,то Строка() не нужна
         спрОбъект.Записать();
КонецЦикла;
1
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.03.2013, 14:58 3
По второму - отключить контроль уникальности и автонумерацию, обработкой очистить код, включить автонумерацию, обработкой открывать объекты по желаемому порядку и записывать, включить контроль.
1
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 27
11.03.2013, 16:11  [ТС] 4
Цитата Сообщение от Xomych Посмотреть сообщение
1C
1
2
3
4
5
6
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
         спрОбъект = Выборка.Ссылка.ПолучитьОбъект();
         спрОбъект.Артикул = Строка(СпрОбъект.Код); //хотя если код тоже строковый ,то Строка() не нужна
         спрОбъект.Записать();
КонецЦикла;
Уважаемый, Xomych. Спасибо.
Я пытался с помощью Вашего кода создать обработку, но моих способностей не хватило, к сожалению.
Не могли бы Вы помочь мне еще?
0
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
11.03.2013, 18:23 5
Код в Артикул скопировали?

Теперь Код по всему справочнику надо сначала заменить на значения больше последнего введенного кода, а потом пронумеровать второй раз начиная с единицы.
Добавим в обработку реквизит типа Число, например КодНачала и пишем такую программку. и прогоняем ее 2 раза. Сначала для КодНачала, который на 1 больше вашего последнего кода, а потом для КодНачала=1;

1C
1
2
3
4
5
6
7
8
i=КодНачала;
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
         спрОбъект = Выборка.Ссылка.ПолучитьОбъект();
         спрОбъект.Код= Строка(i); //елси код строковый , если чиловой то просто спрОбъект.Код=i;
         спрОбъект.Записать();
         i=i+1;
КонецЦикла;
2
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.03.2013, 18:45 6
-----
Вложения
Тип файла: rar Обработка1.rar (3.0 Кб, 111 просмотров)
1
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 27
12.03.2013, 07:04  [ТС] 7
Цитата Сообщение от Xomych Посмотреть сообщение
Код в Артикул скопировали?
Выдает ошибку.
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.03.2013, 09:10 8
1C
1
2
Пока Выборка.Следующий() Цикл
Если Выборка.Ссылка.ЭтоГруппа Тогда Продолжить;КонецЕсли;
Либо создайте выборку запросом с условием
"ГДЕ НЕ Ссылка.ЭтоГруппа"

Не по теме:

Обычно группы имеют код и наименование...

1
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
12.03.2013, 09:18 9
Цитата Сообщение от duk337 Посмотреть сообщение

Не по теме:

Обычно группы имеют код и наименование...

Так он не на Код, а на Артикул ругается.
ТСу, добавьте условие как duk напиасал.
0
duk337
12.03.2013, 09:23
  #10

Не по теме:

Цитата Сообщение от Xomych Посмотреть сообщение
Так он не на Код, а на Артикул ругается.
Верно. Читать стал по диагонали :)

0
0 / 0 / 0
Регистрация: 11.03.2013
Сообщений: 27
12.03.2013, 11:05  [ТС] 11
Цитата Сообщение от duk337 Посмотреть сообщение
1C
1
2
Пока Выборка.Следующий() Цикл
Если Выборка.Ссылка.ЭтоГруппа Тогда Продолжить;КонецЕсли;
Спасибо, помогло.
Сейчас займусь перенумерацией.
0
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 9
13.11.2014, 08:53 12
А не могли бы подсказать такое же решение но на 1С 7.7. ? Очень нуждаюсь. Проблема в точности та же. Только я не знаю как создавать обработку. Если я правильно понял то в конфигураторе создать новую "обработку" и туда добавить код. верно?
0
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
13.11.2014, 10:14 13
1C
1
2
3
4
5
6
7
Спр=СоздатьОбъект("Справочники.ВашСправочник");
Спр.ВыбратьЭлементы();
while Спр.ПолучитьЭлемент()=1 do
   if Спр.ЭтоГруппа()=1 then continue endif;
   Спр.Артикул=Строка(Спр.Код);
   Спр.Записать();
enddo;
Да, создать внешнюю обработку и добавить код
1
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 9
13.11.2014, 11:14 14
прошу прощения за назойливость. но мне он выдает вот енто:

Спр=СоздатьОбъект("Справочники.Номенклатура");
{C:\USERS\NIKOLAI\DESKTOP\1C\СТАРАЯ\EXTFORMS\КОДВАРТИКУЛ.ERT(2)}: Неудачная попытка создания объекта (Справочники.Номенклатура)

или я тупанул где то с кодом?
0
857 / 656 / 111
Регистрация: 01.11.2012
Сообщений: 2,411
13.11.2014, 11:20 15
Справочник.Номенклатура пардон в единственном числе Справочник
1
0 / 0 / 0
Регистрация: 13.11.2014
Сообщений: 9
13.11.2014, 14:57 16
Спасибо! Получилось! С вашего позволения напишу как именно я сделал. Вдруг еще кому пригодится:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//обработка КодВАртикул.ert
 
Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
while Спр.ПолучитьЭлемент()=1 do
   if Спр.ЭтоГруппа()=1 then continue endif;
   Спр.Артикул=Строка(Спр.Код);
   Спр.Записать();
enddo;
 
//обработка нумерация кода от "52380101" (ну это в моем случае):
 
i=52380101;
Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
while Спр.ПолучитьЭлемент()=1 do
   if Спр.ЭтоГруппа()=1 then continue endif;
   Спр.Код=Строка(i);
   Спр.Записать(); 
   i=i+1;
enddo;   
 
//И потом обработка та же, только от "1":
 
i=1;
Спр=СоздатьОбъект("Справочник.Номенклатура");
Спр.ВыбратьЭлементы();
while Спр.ПолучитьЭлемент()=1 do
   if Спр.ЭтоГруппа()=1 then continue endif;
   Спр.Код=Строка(i);
   Спр.Записать(); 
   i=i+1;
enddo;
Огромнейшее, человеческое СПАСИБО Хомычу )))
0
13.11.2014, 14:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2014, 14:57
Помогаю со студенческими работами здесь

Копировать код
как из MS Word или блокнота скопировать и вставить в программу Тurbo C++ код. обычным способом не...

Как копировать код из раздела справки?
Msdn: http://msdn.microsoft.com/en-us/library/bb129228(v=vs.100).aspx Первый пункт: 1. In the...

не могу избавится от вируса TR/Crypt.XPACK.Gen ( по номенклатуры Авира) или Win32:Trojan-gen (по номенклатуры Аваста)...
не могу избавится от вируса TR/Crypt.XPACK.Gen ( по номенклатуры Авира) или Win32:Trojan-gen (по...

подскажите код для копировать, вырезать, вставить
подскажите код для копировать, вырезать, вставить в PopupMenu

Весь sql код копировать в текстовый файл
Доброго всем дня. Пишу диплом. База готова. Код VBA уже перенесен в текстовый файл. А как это...

БП 3: как получить счета номенклатуры из регистра "счет учета номенклатуры"?
Добрый день Подскажите как получить счета номенклатуры из регистра "счет учета номенклатуры" ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru