Программная нумерация документов #504372


#0 by titan83
Здравствуйте! Хочу изменить порядок нумерации расходной накладной, чтобы было примерное так: 129-01. Первое число - день месяца, второе - месяц, третье - номер документа за этот день. К сожалению, в программировании конкретно 1с я не очень силен. Но по старой памяти вижу алгоритм таким: 1. Получить текущую дату. 2. получить все документы данного вида (расходная накладная) за эту дату. 3. В событии ПриВводеНового (вроде так) присвоить НомерДок полученные ранее данные Если есть готовый пример (не обязательно такой), иллюстрирующий принципы работы с номером документа, то буду признателен вдвойне. С уважением, Аликин Сергей
#1 by Эльниньо
#2 by Зеленый Кот
а может не надо?
#3 by Mагистр
проще сделай еще один реквизит, который будет назван , например так: НОВЫЙНОМЕР и делай с ним что хочешь, а нормальный номер не трогай.
#4 by titan83
Эльниньо, спасибо! Все отлично! Тебе огромный респект!
#5 by titan83
только одну канитель не могу побороть - ведущий ноль не выводится в печатной форме.    УстановитьНовыйНомер(Преф); В форме все отражается правильно, а печатной форме ведущего ноля нет. куда копнуть?
#6 by Rie
Там функция есть в Глобальном модуле для формирования номера в печатной форме. Её подправь - и будет счастье.
#7 by dk
будущие проги этой конфы еще долго будут поминать тебя недобрым словом. Рекомендую установку нового номера вывести в глобальник, иначе с программным созданием документов наплюхаешься
#8 by titan83
на счет прогеров, пожалуй, соглашусь) но остался один нерешенный вопрос, при вводе накладной на основании счета, номер накладной всегда один и тот же (естественно, неправильный). глянул в модуле накладной, там есть процедура ввод на основании, но добавление туда установки номера эффекта не дало. где смотреть? и еще: спасибо огромное за ваши ответы, вдохновляет))
#9 by titan83
отвечу сам себе: ВводНаОсновании.
#10 by Wit
а в ты на какую процедуру смотрел?
#11 by titan83
Функция ЗаполнитьНаОсновании но это, как я понимаю, относится к документам, вводимым на основании накладной. другая проблемка - левая часть, которую собираю я, правильная, но вот после тире надо бы убрать ведущий ноль, т.е. сделать не "01", а просто "1", причем это НомерДокПечатнойФормы = глПреобразоватьНомерДок(НомерДок, 1, 0) влияет только на ведущие ноли в той части, которую заполняю я, на автогенерируемую воздействия не оказывает. как этот ноль скрыть?
#12 by Rie
Никак не скрыть. И не надо скрывать, если не хочешь поиметь больших проблем с нумерацией. Если количество документов за период не превышает 9, можешь уменьшить длину номера.
#13 by Эльниньо
Строка(Число("01"))
#14 by titan83
Эльниньо, спасибо за ответ. Но вроде как мы только на префикс влияем, как применить твое преобразование к номеру, генерируемому 1с? извини, если вопрос (и ответ на него) очевидный)
#15 by Эльниньо
Строка(ТвоёЧисло)
#16 by titan83
Извини, я, наверное, неправильно выразился( Подстановка переменной - это понятно, но вот здесь Преф = Сред(Строка(РабочаяДата), 4, 2) + "/" + Лев(Строка(РабочаяДата), 2) + "-"; мы формирует только ПРЕФИКС, т.е. например "0411-", а вот то, что после тире - например, "01", "02" и т.д., число подставляемое 1с автоматически. и вот у него мне и надо убрать ведущий ноль при выводе на печать. Если ты подскажешь название переменной, в которой содержится это значение, то я буду очень признателен!
#17 by Wit
длину строки с номером знаешь длину префикса знаешь после формирования нового номера вырезаешь то что за префиксом, делаешь и клеишь назад.
#18 by titan83
Так я об этом и спрашиваю - как называется переменная, в которой хранится полный номер? откуда вырезать то, что за префиксом? или это значение возвращает функция УстановитьНовыйНомер(Преф)? Если бы у меня была полная строка, то я бы не стал утруждать форумчан, а быстренько бы посмотрел строковые функции в справочнике.
#19 by babytype
НомерДок - имя переменной
#20 by babytype
а еще в типовых есть такая функция:
#21 by Эльниньо
#22 by Эльниньо
+ Можно короче, но так понятнее
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С