Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 июн 2021, 16:21

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

Автор Дима, 28 окт 2016, 10:39

0 Пользователей и 1 гость просматривают эту тему.

Дима

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


НачальныйКод = 100;      
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Номенклатура.Ссылка
   |ИЗ
   |   Справочник.Номенклатура КАК Номенклатура";
   
   Результат = Запрос.Выполнить();
   
   ТЗ = Результат.Выгрузить();
   
   Сч =0;
   
   Для Каждого Стр ИЗ ТЗ Цикл
      СпрОбъект = Стр.Ссылка.ПолучитьОбъект();
      СпрОбъект.Код = НачальныйКод +Сч;
      СпрОбъект.Записать();
      Сч = Сч +1;      
   КонецЦикла;

ilyay

Какая-то ошибка возникает?
В отладке по F11 пройдите всю цепочку, начиная с Объект.Записать(). Возможно, у вас Код где-то еще обрабатывается.

LexaK

ошибка может быть в следующем

если в вашем справочнике Номенклатура стоит проверка уникальности по кодам, то может возникать ошибка дублирования кодов
допустим в очередному элементу вы ходите присвоить Код = 105,
а в базе уже есть товар с таким кодом, у вас возникнет ошибка!

что бы ее избежать попробуйте такую команду,

Для Каждого Стр ИЗ ТЗ Цикл
    СпрОбъект = Стр.Ссылка.ПолучитьОбъект();
    СпрОбъект.ОбменДанными.Загрузка = Истина; //отключение большинства проверок
    СпрОбъект.Код = НачальныйКод +Сч;
    СпрОбъект.Записать();
    Сч = Сч +1;
КонецЦикла;
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск