1с убрать нули из номера
Статья в которой описан, простой способ убрать префикс и лидирующие нули из номера документа.
Забавно. Буквально вчера решал эту общеизвестную задачку и думал, как бы поэффективнее. Способ замен, конечно, тоже рассматривал, но. Автор, простите, а если номер "00012034", что будет? Верно, лажа будет. Вот если использовать Лев(,1) и Прав(,1) или новомодные СтрНачинаетсяС и СтрЗаканчиваетсяНа, тогда ещё куда ни шло. А так явный минус.
Ну и вообще, кажется мне, что не самый это изящный и быстрый способ.
(2) Yashazz, функции СтрНачинаетсяС и СтрЗаканчиваетсяНа не на всех релизах конфигурации работают.
Если номер документа "00012034" после обработки станет "12034", что вполне корректно..
(5) не релизах конфигурации, а релизах платформы. Не ниже 8.3.7, ну я и написал, что "новомодные")
Хожу второй день и пытаюсь решить задачу в духе работ Ильдаровича. Чтобы стильно и извратно)))
а зачем изобретать "велосипед", если можно вызвать готовую функцию общего модуля ОбщегоНазначения.ПолучитьНомерНаПечать(документ);
KDZorkov; intelligentvadik; zoikins; unduty; wolfsoft; Eillecho; user598655_ilia-bers; timurkhann; TManukovskaya; temdj; mark_oilbass; synelf; BIT_vnedr; vadimlp77; vovan_victory; eksdak; + 16 – Ответить
(3) alex-l19041, ОбщегоНазначения.ПолучитьНомерНаПечать(документ) удаляет только ПрефиксПодразделения или ПрефиксИнформационнойБазы. Если вручную бухгалтер поменял префикс на какой захотел, он не удалится стандартной функцией.
(4) ОбщегоНазначения.ПолучитьНомерНаПечать если её вызывать в цикле и много документов, то она очень медленно работает.
(6) c300pm, не могу сказать не проверял на БП 3.0.
Тем не менее была просьба доработать такой механизм для печати, поскольку стандартный не отрабатывал.
Какая конфигурация и какой релиз уже не помню.
Мой способ не является эталоном, но как мне кажется имеет право на жизнь))
Очевидно, что это вариант не сработает с номером АА-123, так как в нем ни одного нуля нет. Или, например, с номером АА-101 сработает неверно, оставив от него только 1
Думаю, более правильно будет просматривать посимвольно справа налево до первой не цифры, затем полученную подстроку чистить от ведущих нулей, например так Строка(Число("0"+ПромежуточнаяПодстрока))
Хотя есть альтернативный способ - выкинуть из номера все нецифровые символы, затем ведущие нули. Недостаток: кривые номера типа Н1АБ0000021 превратятся в 10000021, а не в 21. Такие "чудо-номера" бывают от кривых префиксов при обмене.
Если исходить из того, что все нецифровые префиксы уже отброшены, то самое топорное решение это Формат(Число(Номер)).
Как всегда шедевры. Математики поймут )
Попробую расшифровать для тех, кому лень разбираться.
Первая функция: рекурсивно проверяются символы справа налево до первой не цифры,
затем происходит возврат правой части строки по накопленному значению К;
( КодСимвола() / 5 - 10.5 ) возвращает значение от -0,9 до 0,9 для символов с "0" до "9",
Цел() отсекает дробную часть, в результате для цифр получится 0, для остальных символов не ноль;
?(Цел(КодСимвола(Прав("!" + Стр, К + 1)) / 5 - 10.5),,) базируется на особенности преобразования нуля в булево ложь, а "!" + Стр - подстраховка от пустой строки на входе.
Вторая функция: все числа заменяются пробелами "матрёшкой" вложенных функций
СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Номер
, "0", " "), "1", " "), "2", " "), "3", " "), "4", " "), "5", " "), "6", " "), "7", " "), "8", " "), "9", " ")
СокрП отсекает пробелы справа, остаток замереятся через СтрДлина и вырезается часть с середины до конца с позиции +1, где должны начинаться цифры.
Формат( , "ЧГ=") в обоих случаях убирает разделители разрядов при обратном преобразовании числа в текст, потом что через Строка() "формируется . полное представление в стандартном виде, соответствующем национальным установкам". Или как у Ovrfox в (16) вместо Формат(, "ЧГ=") можно попробовать неявное преобразование в строку ""+Число(
Часто при разработке печатных форм или отчетов, нужно номера документов вида 000001 преобразовать в 1 - убрав лидирующие нули. в этой статье я приведу несколько способов, а какой выбрать - решайте сами:
Код 1C v 8.х Код 1C v 8.х
Код 1C v 8.х Код 1C v 8.х
Похожие FAQ
1С 8.x : Как убрать лидирующие нули в номере Документа (вариант2) 0
Скопировать строку с номером, с лидирующими нулями, в числовом поле (с форматом без групп, без группировки), и вернуть(скопировать) обратно в строковом поле с номером. Возвращает без нулей. Как добавить нули к значению или строке в 1С 0
Функция ДобавитьНули(Значение, НужнаяДлинаЗначения) Значение = СтрЗаменить(Формат(Значение, " ЧГ=" ), " " , " " ); НадоНулей = НужнаяДлинаЗначения - СтрДлина(Значение); ВедущиеНули = Формат(0," ЧЦ=" +НадоНулей+" ;ЧН=; ЧВН=; ЧГ=0" ); Возврат Как дополнить число лидирующими нулями (000851) ? 13
Необходимо, чтобы из числа 7 получалось 0007, из 851 получалось 000851 и т. д. Для этого можно использовать функцию встроенного языка Формат(). Например: ИсходноеЧисло = 13; Результат = Формат(ИсходноеЧисло, " ЧЦ=5; ЧВН=; ЧГ=0" ); //Результа Как разделить текстовый файл на несколько файлов определенного размера? 0
Бывает необходимо разделить текстовый файл большого размера на несколько маленьких файлов. Ниже представлены функции при помощи которых можно разделить файл : РазделитьФайл( ИмяФайла , РазмерЧасти , Путь ) Разделяет указанный файл на несколько Настройка веб-клиента 1С:Предприятие 8.2 под Windows 7 x64 и IIS 0
Возникла необходимость отладить небольшую конфигурацию 1С:Предприятие 8.2 под веб-клиентом. Веб сервером был выбран IIS, являющийся самым родным для ОС Windows. Опыт использования этого сервера в Windows XP подсказывал, что с ним будет меньше проблем Посмотреть все результаты поиска похожих
Еще в этой же категории
Часто возникает необходимость вывести в печатную форму номер документа без префикса и лидирующих нулей.
Для этого можно воспользоватся маленькой обработкой прикрепленной к статьи или использовать ниже приведенный код.
НомерБезНулей = НомерБезПрефикса ;
Пока Найти ( НомерБезНулей ,"0") = 1 Цикл
НомерБезНулей = Сред( НомерБезНулей , 2 ); //удаляет лидирующие нули
КонецЦикла;
Объект . ОбработанныйНомер = НомерБезНулей ;
Специальные предложения
Забавно. Буквально вчера решал эту общеизвестную задачку и думал, как бы поэффективнее. Способ замен, конечно, тоже рассматривал, но. Автор, простите, а если номер "00012034", что будет? Верно, лажа будет. Вот если использовать Лев(,1) и Прав(,1) или новомодные СтрНачинаетсяС и СтрЗаканчиваетсяНа, тогда ещё куда ни шло. А так явный минус.
Ну и вообще, кажется мне, что не самый это изящный и быстрый способ.
(2) Yashazz, функции СтрНачинаетсяС и СтрЗаканчиваетсяНа не на всех релизах конфигурации работают.
Если номер документа "00012034" после обработки станет "12034", что вполне корректно..
(5) не релизах конфигурации, а релизах платформы. Не ниже 8.3.7, ну я и написал, что "новомодные")
Хожу второй день и пытаюсь решить задачу в духе работ Ильдаровича. Чтобы стильно и извратно)))
а зачем изобретать "велосипед", если можно вызвать готовую функцию общего модуля ОбщегоНазначения.ПолучитьНомерНаПечать(документ);
KDZorkov; intelligentvadik; zoikins; unduty; wolfsoft; Eillecho; user598655_ilia-bers; timurkhann; TManukovskaya; temdj; mark_oilbass; synelf; BIT_vnedr; vadimlp77; vovan_victory; eksdak; + 16 – Ответить
(3) alex-l19041, ОбщегоНазначения.ПолучитьНомерНаПечать(документ) удаляет только ПрефиксПодразделения или ПрефиксИнформационнойБазы. Если вручную бухгалтер поменял префикс на какой захотел, он не удалится стандартной функцией.
(4) ОбщегоНазначения.ПолучитьНомерНаПечать если её вызывать в цикле и много документов, то она очень медленно работает.
(6) c300pm, не могу сказать не проверял на БП 3.0.
Тем не менее была просьба доработать такой механизм для печати, поскольку стандартный не отрабатывал.
Какая конфигурация и какой релиз уже не помню.
Мой способ не является эталоном, но как мне кажется имеет право на жизнь))
Очевидно, что это вариант не сработает с номером АА-123, так как в нем ни одного нуля нет. Или, например, с номером АА-101 сработает неверно, оставив от него только 1
Думаю, более правильно будет просматривать посимвольно справа налево до первой не цифры, затем полученную подстроку чистить от ведущих нулей, например так Строка(Число("0"+ПромежуточнаяПодстрока))
Хотя есть альтернативный способ - выкинуть из номера все нецифровые символы, затем ведущие нули. Недостаток: кривые номера типа Н1АБ0000021 превратятся в 10000021, а не в 21. Такие "чудо-номера" бывают от кривых префиксов при обмене.
Если исходить из того, что все нецифровые префиксы уже отброшены, то самое топорное решение это Формат(Число(Номер)).
Как всегда шедевры. Математики поймут )
Попробую расшифровать для тех, кому лень разбираться.
Первая функция: рекурсивно проверяются символы справа налево до первой не цифры,
затем происходит возврат правой части строки по накопленному значению К;
( КодСимвола() / 5 - 10.5 ) возвращает значение от -0,9 до 0,9 для символов с "0" до "9",
Цел() отсекает дробную часть, в результате для цифр получится 0, для остальных символов не ноль;
?(Цел(КодСимвола(Прав("!" + Стр, К + 1)) / 5 - 10.5),,) базируется на особенности преобразования нуля в булево ложь, а "!" + Стр - подстраховка от пустой строки на входе.
Вторая функция: все числа заменяются пробелами "матрёшкой" вложенных функций
СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Номер
, "0", " "), "1", " "), "2", " "), "3", " "), "4", " "), "5", " "), "6", " "), "7", " "), "8", " "), "9", " ")
СокрП отсекает пробелы справа, остаток замереятся через СтрДлина и вырезается часть с середины до конца с позиции +1, где должны начинаться цифры.
Формат( , "ЧГ=") в обоих случаях убирает разделители разрядов при обратном преобразовании числа в текст, потом что через Строка() "формируется . полное представление в стандартном виде, соответствующем национальным установкам". Или как у Ovrfox в (16) вместо Формат(, "ЧГ=") можно попробовать неявное преобразование в строку ""+Число(
Убрать лидирующие нули из даты
Доброе время суток. Столкнулся с проблемой при вводе даты Пример: 31.12.2013 23:59:59.
Как убрать "0"(нули) из чисел: 01, 01, 03, 04, 05, 06, 07, 08, 09?
Кто нибудь в курсе как можно убрать "0"(нули) из чисел: 01, 01, 03, 04, 05, 06, 07, 08, 09 что бы в.
Убрать лидирующие нули в целых числах
В поле редактирования я ввожу произвольное целое число. Допускается в том числе и числа с.
Как убрать кнопки "Minimize" и "Maximize", "Close" в заголовке окна?
КАК УБРАТЬ КНОПОЧКИ 'Minimize' и 'Maximize', 'Close' в заголовке окна (чтобы не было крестика в.
rudava, уверены, что нужно нужно изменять именно сам номер, а не удалять нули например при формировании печатной формы? последствия знаете?
Yulunga,
лучше для начала спросить зачем, т.к. вполне вероятно, что следующий вопрос будет типа почему после номера 9 следующий не присваиватся автоматически
QwertyZ, опыт общения на данном форуме показывает, что лучше не спрашивать зачем.
проще так как сам более-менее позабыл, как это делается у себя в конфигурации, написать в гугле
"1С убрать лидирующие нули", получить ссылку на хелпф.про первой ссылкой, пойти туда, посмотреть и скопипастить наиболее понравившийся ответ. в плане саморазвития, конечно.
объяснить, зачем создавать тему с множеством букв, чем написать 4 слова в гугле - необъяснимо. но таковы реалии.
п.с. другой вариант, что там-таки число, а не строка.
Описать класс "поезд", содержащий поля "пункт назначения", "номер поезда", "время отправления"
Помогите пожалуйста с классом Описать класс «поезд», содержащий следующие закрытые поля.
Замена символа на его двухзначный порядковый номер в алфавите (например "а" меняется на "01", "к" на "12")
Нужна помощь
Перед тем как перейти к перенумерации документов, разберем, как формируется номер документа.
В 1С предусмотрена сквозная нумерация документов в рамках одного вида. Каждый год она начинается заново. Рассмотрим ее формирование на примере документа Реализация (акт, накладная, УПД) . Номер присваивается независимо от Вида операции , Организации или других данных.
Для разграничения нумерации между организациями установите префикс. Подробнее Префикс в 1С
Номер документа закрепляется в момент его записи, т. е. документ может быть не проведен, удален, и номер уже не используется для других документов. Всегда берется максимальный использованный номер и к нему прибавляется один.
Символы и буквы в номере
Один из вариантов исправления данной ситуации — вручную изменить номер, убрав один ноль перед номером. Например, номер 0000-000В99 перенумеровать в 0000-001000.
Нумерация пойдет дальше автоматически
Префиксы — буквы в начале номера
В 1С есть префиксы — буквенные значения в начале номера. Их рекомендуется устанавливать, если есть обмен с другими базами или в базе несколько организаций. Подробнее про префиксы можно узнать из статьи Префикс в 1С.
Перенумерация документов в 1С 8.3 Бухгалтерия 3.0
В 1С перенумерацию документов может выполнить только пользователь с полными правами. Перед использованием любого способа перенумерации обязательно создайте копию базы!
Изменить нумерацию в 1С можно тремя способами:
- кассовые документы, счета-фактуры подразумевают автоматическую перенумерацию документов при выполнении экспресс-проверки ( Отчеты – Экспресс-проверка );
- перенумерация с помощью обработки Групповое изменение реквизитов ( Администрирование – Обслуживание – Корректировка данных – Групповое изменение реквизитов ), способ предполагает написание кода; (не рекомендуется).
Как изменить нумерацию в 1С 8.3 автоматически
При проверке учета можно автоматически перенумеровать документы:
- Приходный кассовый ордер — Поступление наличных ;
- Расходный кассовый ордер — Выдача наличных ;
- выписанный Счет-фактура — Счет-фактура выданный .
Метод используется, только если документы не отражены в отчетности — как самой организацией, так и контрагентом (например, по выданным счетам-фактурам). Иначе при сопоставлении данных документов произойдет несоответствие.
Для автоматической перенумерации перейдите в отчет Экспресс-проверка ведения учета в разделе Отчеты – Экспресс-проверка .
Перейдите в настройки отчета по кнопке Показать настройки и выберите необходимые проверки.
Как перенумеровать кассовые документы в 1С 8.3
Последовательность исправления нарушенной нумерации для РКО и ПКО одинакова.
Если не соблюдена нумерация, то при экспресс-проверке 1С выдаст ошибку:
Чтобы увидеть подробное описание ошибки, разверните отчет: в нем будут указаны предположительные ошибки в ведении учета, а также рекомендации по восстановлению нумерации.
Но не спешите нажимать на ссылку Автоматическая перенумерация документов . Сначала рекомендуем развернуть документы полностью и проанализировать, можно ли перенумеровать документы в 1С 8.3 или они уже отражены в отчетности.
Если принято решение восстановить хронологический порядок в номерах, сделайте копию базы, а потом нажмите на ссылку Автоматическая перенумерация документов .
- Текущий номер — номер документа до перенумерации;
- Новый номер — будущий номер документа в базе.
Если все верно, нажмите Продолжить .
После перенумерации выведется результат обработки.
Как перенумеровать счета-фактуры в 1С 8.3
Если не соблюдена нумерация, при экспресс-проверке 1С выдаст ошибку:
Чтобы увидеть подробное описание ошибки, разверните отчет: здесь будут указаны предположительные ошибки в ведении учета, а также рекомендации по восстановлению нумерации.
Не спешите нажимать на ссылку Автоматическая перенумерация документов . Сначала рекомендуем развернуть документы полностью и проанализировать, можно ли перенумеровать документы или они уже отражены в отчетности.
Если принято решение восстановить хронологический порядок в номерах, сделайте копию базы, а потом нажмите на ссылку Автоматическая перенумерация документов .
Для исправления номеров документов укажите Начальный номер . Изначально указан рекомендуемый номер, т. е. наименьший номер из исправляемых документов. Если каких-то номеров до него нет (документы были удалены), программа это не учитывает. Изменим Начальный номер на 1.
- Текущий номер — номер документа до перенумерации;
- Новый номер — будущий номер документа в базе.
Если все верно, нажмите Продолжить .
После перенумерации выведется результат обработки.
Прочие способы перенумерации
Ручная корректировка номера
Ручная корректировка номера не рекомендуется!
Перед ручной корректировкой номера ознакомьтесь с проблемами, которые могут возникнуть при использовании данного метода — Символы и буквы в номере.
Чтобы изменить номер вручную:
- установите курсор на номер;
- нажмите на кнопку del или delete на клавиатуре;
- согласитесь с редактированием;
- введите новый номер, обращая внимание на обязательное использование всех нулей вначале номера, например, 0000-0000000.
Групповое изменение реквизитов
Запустите обработку Групповое изменение реквизитов в разделе Администрирование — Обслуживание — Корректировка данных .
В обработке выберите вид документов, которые будут редактироваться. При необходимости отберите нужные документы по ссылке Все элементы. Подробнее о работе с обработкой.
Далее переведите переключатель на Выполнить произвольный алгоритм .
В большом поле заполните код, выделенный жирным шрифтом в блоке «Информация», который приведен ниже. Код можно скопировать или заполнить вручную. Кавычки обязательно перенаберите.
После каждой строки кода текст, выделенный «//», — это описание кода. Его можно не переносить, а если перенесете, не забудьте указать «//» в начале каждой строки.
Зеленым шрифтом выделены заменяемые данные под конкретный вид документов или справочников.
Если при выполнении обработки возникает ошибка об уникальности номера (номер занят), то рекомендуется сначала задать начальный номер, который не пересекается с имеющимися (1000000), а потом запустить еще раз обработку для первоначальной перенумерации уже с меньшего номера.
Как узнать техническое имя документа
Запустите конфигуратор по кнопке Конфигуратор .
Перейдите Конфигурация – Открыть конфигурацию .
После выполнения этой команды откроется окно Конфигурация . Может занять некоторое время.
Далее найдите в списках Справочники или Документы подходящий по смыслу элемент. Двойным щелчком мыши откройте его.
В открытой форме уточните, что это нужный элемент:
- Имя — техническое наименование документа;
- Синоним — имя документа в базе.
Перенумерация справочников в 1С 8.3
В 1С перенумерацию справочников может выполнить только пользователь с полными правами. Перед использованием любого способа перенумерации обязательно создайте копию базы!
Номер в справочниках хранится в поле Код.
Чтобы переименовать номер справочника, используйте либо ручную корректировку номера либо групповое изменение реквизитов. Но лучше изменять другое поле, например, Артикул , а поле Код оставить системным полем и не трогать его.
Выборка = Справочники.Номенклатура .Выбрать();
//Выбираем все элементы справочника из отобранных по стандартному отбору в обработке.
//в коде указываем техническое имя справочника.
Код = 1;
//Начальный код при перенумерации, без нулей и префиксов.
Пока Выборка.Следующий() Цикл
//Запускается цикл перебора всех найденных документов.
Спр = Выборка.ПолучитьОбъект();
//Получаем элемент справочника.
СтарыйКод = Спр.Код;
//Запоминаем старый код.
Спр.Код = « 00 -«+Формат(Код, «ЧЦ= 8 ; ЧВН=; ЧГ=0″);
// Устанавливаем новый код, 00 – Префикс базы, при необходимости заменить.
//ЧЦ-количество лидирующих нулей – количество символов после дефиса, для каждого справочника может быть свое число
// В комментарии указываем информацию об изменении кода.
Спр.Записать();
Код = Код+1;
//Переходим к следующему коду и элементу справочника
КонецЦикла;
См. также:
Если Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С:Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
Часто в работе с 1С мы сталкиваемся с ситуацией, когда.У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.Современные технологии заявляют о себе в полную силу. В рамках.Реестр документов из 1С может понадобиться многим пользователям — от.
(2 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Изменения в 2022 году, о которых нужно знать бухгалтеру
6-НДФЛ за 1 квартал 2022 в 1С
Санкции и контрмеры: как работать организации и ее бухгалтеру в новой реальности. Часть 2
Учет малоценных ОС и запасов (ОСН)
Отчетность за 1 квартал 2022
Большое Спасибо профессионалам Бухэксперт за очень полезные семинары и курсы, за полезные советы, за внимательное отношение и быструю реакцию на проблемы пользователя!
Содержание
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Читайте также: