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