Вход | Регистрация
 

Не меняется наименование и артикул в номенклатуре при изменении обработкой

Не меняется наименование и артикул в номенклатуре при изменении обработкой
Я
   val245
 
16.05.21 - 15:44
Здравствуйте

В Бухгалетрии 3.0 ошибочно вбили вместо наименования артикулы и наоборот. Теперь обработкой пытаюсь перебить. Код на сервере выполняется следующий

        ВыборкаНоменклатура = Справочники.Номенклатура.Выбрать();
    
    КатегорияПустая = Справочники.КатегорииНоменклатуры.БезКатегории;
    
    
    Пока ВыборкаНоменклатура.Следующий()Цикл
        Если ВыборкаНоменклатура.ЭтоГруппа Тогда
            Продолжить;
        КонецЕсли;
        
        НоменклатураОбъект = ВыборкаНоменклатура.ПолучитьОбъект();
        
        НоменклатураОбъект.ОбменДанными.Загрузка = Истина;
        
        БуферНаименование = НоменклатураОбъект.Наименование;
        БуферАртикул = НоменклатураОбъект.Артикул;
        
        НоменклатураОбъект.Наименование = БуферАртикул;
        НоменклатураОбъект.НаименованиеПолное = БуферАртикул;
        НоменклатураОбъект.Артикул = БуферНаименование;
        НоменклатураОбъект.КатегорияНоменклатуры = КатегорияПустая;
        
        Попытка
            НоменклатураОбъект.Записать();
        Исключение
            СообщитьПользователю(ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;

При прослеживании точкой останова наименования и артикулы меняются, но когда захожу в предприятии в номенклатуру, все остается как было. вместо артикула наименование и наоборот, при этом категоряи проставляется. Может кто знает, что мешает поменять данные? Может где-то обработка перехватиывается?
 
 Партнерская программа EFSOL Oblako
   acht
 
1 - 16.05.21 - 15:48
Небось, четное число раз обработку выполняешь?
   ДенисЧ
 
2 - 16.05.21 - 15:49
Поставить точку на записать(), включить замер производительности и сделать шаг. Выключить замер и вдумчиво раскурить его вывод.
   val245
 
3 - 16.05.21 - 15:49
Я об этом подумал) Нет. Каждый раз ничего не меняется...
   acht
 
4 - 16.05.21 - 15:50
Или они там вообще в других местах хранятся как периодические... впрочем, я БП3 не помню.
   val245
 
5 - 16.05.21 - 15:55
(4)Да вроде все в реквизитах, все как нужно
   val245
 
6 - 16.05.21 - 16:01
(2) Сделал так, вроде ничего подозрительного не нашел пока что.. посмотрю еще..
   val245
 
7 - 16.05.21 - 16:15
Нашел. Один новый реквизит, обязательный к заполнению, был не заполнен. Просто странно, что не выходила ошибка и не выполнялось исключение, хотя номенклатура не записывалась
   RomanYS
 
8 - 16.05.21 - 16:46
(3) Значит за раз выборка обходит номенклатуру два раза. Вообще использовать выборку для изменения кода/наименования рисково. Лучше запросом выбрать
   Злопчинский
 
9 - 16.05.21 - 21:41
выборка в каком порядке выполняется? в порядке кода? скорее всего - в порядке наименования.... а ты наименование в выборке меняешь..
???
   acht
 
10 - 16.05.21 - 23:31
(7) Одна из черепашек
в (0), значит, "при этом категоряи проставляется", а в (7) уже "номенклатура не записывалась"
   Cthulhu
 
11 - 17.05.21 - 01:10
(7): потому что Отмена = Истина
   val245
 
12 - 17.05.21 - 09:58
Теперь вот что произошло. Если зайду в номенклатуру, то все встало на места, но представленрие в списке остается то же. То есть в списке номенклатура отображается как Артикул
   val245
 
13 - 17.05.21 - 10:03
Хотя нет не совсем так. Сделал таблицу для номенклатуры. Выбираю там номенклатуру, нажимаю обработку. Артикуль и наименование меняется местами. Захожу в список, все меняется. Но вот в самой таблице почему то все остается как есть, представление происходит по артикулу, хотя отобраджение таблицы обновил как Элементы.Товары.Обновить();
Да и если закрыть таблицу и выбрать из выпадающего списка, то почему-то иартикл и наименование как-будто не поменялись местами
   val245
 
14 - 17.05.21 - 10:24
Как можно после обработки перечитать данные в таблице? ОбновитьОтображениеДанных() и Элементы.Товары.Обновить() на клиенте не помогают
   acht
 
15 - 17.05.21 - 10:30
(14) Там у тебя еще представление меняется из-за смены наименований. Надо кэш представлений сбрасывать. Попробуй ОповеститьОбИзменении из глобального контекста. Ну или просто новый сеанс 1С.
   val245
 
16 - 17.05.21 - 10:39
(15) Да. Помогло. Спасибо
   Serg_1960
 
17 - 17.05.21 - 10:49
Излишне сложно написано :(
НоменклатураОбъект.НаименованиеПолное = НоменклатураОбъект.Артикул; 
НоменклатураОбъект.Артикул = НоменклатураОбъект.Наименование;
НоменклатураОбъект.Наименование = НоменклатураОбъект.НаименованиеПолное;
   pechkin
 
18 - 17.05.21 - 11:30
(17) может у него условие, что нельзя доп  переменные использовать
   pechkin
 
19 - 17.05.21 - 11:31
(17) а нет это у тебя такое условие откуда то взялось

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.