Поменять местами значения колонок в док.Реализация

Новая тема
Показывать по 10 20 40 сообщений
Добрый день! БП ред.2.0 Ситуация такая: изначально пользователи  в базе вводили ошибочно данные в док.Реализация-в колонке Цена ставили количество, в колонке Количество значение цены... Накопилось приличное количество документов, вручную исправлять не вариант конечно. Возможно, ли как-то с помощью стандартных обработок исправить ситуацию?
Нет, нужно писать специальную обработку.
Ответили: пост #3
Ответ на пост №2
uinny, писать не надо, есть "Универсальный подбор и обработка объектов", там можно указать сразу код, где поменять местами значения в колонках.
Ответили: пост #4 , пост #5
Ответ на пост №3
Prikum, ого, я удивлена... в стандартном "Подборе и обработке"? Пойду поизучаю возможности.
Ответили: пост #6
Ответ на пост №3
Prikum, спасибо. Я нашла это. Проблема с кодом, вот примерно так я это вижу:

Код
Перем=ОбъектТоварыКоличество; //в значение Перем записать значение из колонки Количество

ОбъектТоварыЦена=Перем; // В значение колонки Цена записать значение Перем

Объект.Записать();

 
Но как правильно оформить код, я к сожалению, не владею синтаксисом.
Ответили: пост #7
Ответ на пост №4
uinny,да там есть на вкладке "обработка" есть Произвольный алгоритм, там собственно написать код. У меня сейчас именно проблема с кодом, хотя логически я представляю, как поменять значения в 2-х колонках. Но вот незнание синтаксиса 1С не дает продвинуться дальше.
Ответ на пост №5
Леонова Анна, надо обойти табличну часть циклом, запомнить текущие значения в переменные, потом присвоить новые и желательно провести документ в транзакции, т.е. использовать ПопыткуИсключения.
Ответили: пост #11
Что-то типа этого?

Для Каждого Стр Из Объект.Товары Цикл
      Перем1 = Стр.Количество;
      Стр.Количество = Стр.Цена;
      Стр.Цена = Перем1;
КонецЦикла;
Объект.Провести();
Ответили: пост #9 , пост #10
Ответ на пост №8
uinny, лучше сделать в транзакции:

Попытка
 Объект.записать(РежимЗаписиДокумента.Провести);
исключение
 Объект.записать(РежимЗаписиДокумента.Записать);
 Сообщить("Документ "+Объект+" записан с ошибкой : "+ОписаниеОшибки()+" !");
КонецПопытки;
Ответ на пост №8
uinny, получилось! Благодарю!
Читают тему
(гостей: 1)

Быстрый переход