Нумерация

Новая тема
В последних конфигурациях 1С числовой код поменяли на текстовый. Пользоватьль ввел номер документа, теперь при вводе нового документа номер всегда один и тот-же. Что делать?
"найди "кривой" номер и добей лидирующие нули ...<br><br><br><br>а если таких много, запусти:<br><br><br><br>Док = СоздатьОбъект("Документ.Х"); // где Х-идентификатор<br><br>Док.ВыбратьДокументы();<br><br>Пока Док.ПолучитьДокумент() = 1 Цикл<br><br>  НомерДок = СокрЛП(Док.НомерДок);<br><br>  Пока СтрДлина(НомерДок)<Y Цикл //где Y-разрядность<br><br>    НомерДок = "0"+НомерДок;<br><br>  КонецЦикла;<br><br>  Док.НомерДок=НомерДок;<br><br>  Попытка<br><br>    Док.Записать();<br><br>  Исключение<br><br>    Сообщить("Двойник: "+Док.ТекущийДокумент());<br><br>  КонецПопытки;<br><br>КонецЦикла;<br><br><br><br>"
"Если у вас символьная нумерация, то лучше сделать вот так:<br><br>     Док = СоздатьОбъект("Документ.РеализацияРозница"); // либо другой документ<br> Док.ВыбратьДокументы('01.05.06','01.09.06'); // дату указываете сами <br>                                                       // (если надо), либо уберите этоу строку<br> Пока Док.ПолучитьДокумент() = 1 Цикл <br> НомерДок = СокрЛП(Док.НомерДок);<br> НомерДок = СокрЛП(Сред(Док.НомерДок,5)); //Берем кол-во символов в префиксе+1<br> Преф=Лев(Док.НомерДок,4); // А здесь именно кол-во символов в префиксе "ААА-"<br> <br> Пока СтрДлина(НомерДок)<6 Цикл // Вместо 6 подставляем Разрядность - кол-во символов <br>                                       // в префиксе<br>   НомерДок = "0"+НомерДок;<br>   КонецЦикла; <br>   <br> Док.НомерДок=Преф+НомерДок; <br> Сообщить(Док.НомерДок);<br> Попытка <br>   Док.Записать(); <br> Исключение <br>   Сообщить("Двойник: "+Док.ТекущийДокумент()); <br> КонецПопытки; <br>КонецЦикла; "
А в конфигурации от 1С слабо дописать в глобальном модуле, чтоб нули сами дописывались, или так и будут мучиться пользователи?
поможет Вам, перенумерация документов начиная с самаго первого "кривого", используйте стандартные универсальные обработки 1С.<br>будут вопросы, пишите - помогу в проблемой...
на глаз от нуля почти неотличимо, а русское О от латинского О - так вообще безнадежно.
Есть ещё полушаманский метод. Делаем резервную копию ИБ, грузимся в конфигураторе, в проблемном типе документов ставим тип кода "числовой". Сохраняем метаданные. Меняем код обратно. Снова сохраняем. Лидирующие нули добиты везде. :) Хотя могут появиться дубликаты, например, если были введены документы с номерами "0001" и "01".<br><br>Повторяю, РЕЗЕРВНУЮ КОПИЮ ДЕЛАТЬ ОБЯЗАТЕЛЬНО. Я предупредил. :)
существует же обработка repval, если мне не изменяет память, для перенумерации документов, зачем столько сложностей?

Читают тему

(гостей: 1)

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