Имя: Пароль:
1C
 
Беда с о справочником (появился минус в коде). Как с ним бороться?
Ø
0 Onjka
 
10.03.05
16:05
Есть справочник ОС. Код числовой. В один прекрасный момент появился минус в коде. Вопрос как от него избавиться? (желательно программно)
вариант:
спр.код=-Число(Спр.код);
спр.Записать();
не проходит, ругается, что код не уникальный. Жду полезных советов.
1 baer
 
10.03.05
16:07
Преобразуй в текст, а потом обратно в число...
2 Sasha
 
10.03.05
16:07
а что мешает назначить уникальный ДРУГОЙ код. Если система ругается, значит этот код уже зарезервирован другим элементом...
3 Мимохожий Однако
 
10.03.05
16:11
НА любом диске ИТС есть универсальные обработки. Среди них есть обработка с возможностью перенумерации кодов
4 Onjka
 
10.03.05
16:16
преобразование в текст и последующее изменение не помогло, пробовала.
Если попытаться удалить минус ручками с помощью кнопочки Del тоже не получается. Минус исчезает если при редактировании кода нажать "-", после этого он исчезает в коде.
К сожалению моя кантора на этих дисках экономит.
5 VictorB
 
10.03.05
16:18
Похоже, что в процедуре ВводНового() есть сточка:
ПрефиксКода(Префикс) или УстановитьНовыйКод(Префикс)
где Префикс принимает значение "-"
или
ПрефиксКода(Префикс+"-") или УстановитьНовыйКод(Префикс+"-")
где Префикс принимает значение " "
6 VictorB
 
10.03.05
16:20
а код похоже "числовой"
7 Onjka
 
10.03.05
16:30
1C в конфигураторе стоит числовой.
Префикс никто не прописывал. А из-за автообмена эта радость не могла появиться?
8 Sasha
 
10.03.05
16:39
Из-за автообмена вряд ли, хотя чего не бывает... А тебе обязательно назначить то же самый код только без минуса, или вообще можно любой (лишь бы без минуса)...?
9 VictorB
 
10.03.05
16:40
Какая конфигурация? если типовая, то изменялась или нет?
10 VictorB
 
10.03.05
16:49
(9)
если проблема в том чтоя написал, то перенумерация снимет только часть проблеммы (при вводе нового элемента вновь появится элемент с минусом)
перенумерацию делать все равно прийдется
если не хочешь изменять коды, то проще всегосделать так:
Спр.ВыбратьЭлементы()
Пока Спр.ПолучитьЭлемент()=1 Цикл
Если Лев(Спр.Код,1)="-" Тогда
Спр.Код=Сред(Спр.Код,2);
Спр.Записать();
КонецЕсли;
КонецЦикла;
11 Onjka
 
10.03.05
16:52
Прошу прощения, что отвлекла вас, похоже я стала жертвой собственной невнимательности :-), при более внимательном рассмотрении оказалось, что это мои пользователинавводили
12 Onjka
 
10.03.05
16:57
всю эту красоту. Поубивать бы.........