1с убрать префикс из номера
Нумератор документов подхватил, похоже, префикс с прошлого года - у организаций префиксы убрали, но документы "Заказ покупателя" по прежнему создаются в виде уКТ00000000054
Как убрать префикс вообще, чтобы новые номера были только цифровые? Ну или хотя бы заменить его на латиницу.
1. Проверить, что префиксы действительно удалили.
2. Перенумеровать (обработкой или вручную) все документы за текущий год.
3. Выполнить обновление нумерации объектов. ОбновитьНумерациюОбъектов().
(1) УТ 10.3
Присваивается он автоматически, платформой.
Создавал доки с номерами C2200002, уCT00000000080, CCT00002200081 (латинские буквы). И опять запускал. Не работает.
Старая нумерация перебивает.
(5) >> перенумеровывать не вариант.
А в чём проблема?
Перенумеруй так, чтобы числовая часть номеров осталась неизменной, а поменялся только префикс. При необходимости добавились ведущие нули.
Если это невозможно, то живи с тем что есть и пиши свой собственный нумератор или ломай типовые обработчики нумерации, которые отвечают за префиксацию.
(7) Да и хрен с ним. Если числовой номер не поменяется - отмахаются. Просто предложи им такой вариант и думаю что они согласятся.
(7) А разве в типовой УТ номер на печать не обрезает префиксы, оставляя только числовую часть номера?
Если это так, то какая разница - что там в префиксе. Главное, чтобы числовая часть номера осталась неизменной.
(10) Если перенумеровать уже созданные документы никак нельзя, то придётся смириться. Остаётся только ломать типовую по примеру (11) - принудительной установкой префикса. Во всяком случае до следующего года. А в начале следующего 2023-го года отследить, чтобы никто не завёл документов с кривыми префиксами. Это отдельная проблема, т.к. пользователи любят переносить созданные документы с декабря на январь и обратно.
Я бы попробовал убедить заказчика всё таки перенумеровать документы и выдать заказчикам новые. Естественно если речь идёт о каком-то разумном их количестве.
(14) > и выдать заказчикам новые
Я вас умоляю. Кто там будет приколупываться к чуть другому префиксу заказа покупателя. Всем насрать, если нет каких-то тесных интеграций по номеру.
Коллеги, добрый день! в базе доки нумерутются по типу 00УТ-000001
соответсвенно на печать выходит УТ-1
а можно как то убрать 00 перед ут, чтобы не выходило на печать?
заранее благодарен!
Воспользуйтесь обработкой УниверсальныеПодборИобработкаОбъектов есть на любом диске ИТС для начала убираете префикс в настройках орагнизации а потом обработкой отбираете нужный документ и делаете перенумерацию найденных объектов с установкой нужного префикса
Посмотри встроенные функции языка в синтаксис помощнике -> Формат. Там есть такое понятие как лидирующие нули.
ЧВН (NLZ) - нужно ли выводить лидирующие нули. Значение данного параметра не задается, собственно наличие параметра определяет вывод лидирующих нулей.
Sanella_nt, не очень понял)
т.е каждый раз когда менеджер выписал счет, и хочет его распечатать, я ему говорю стапэ братишь не печатай, я ща обработку запущу чтобы на печать этот счет вышел без префикса?)))
как раз то в настройках организации префикса и нет, он есть в настройка обмен (ут) так и должно быть
в 10.3 и во все остальных нормальных программах префикс дается типа УТ000005
и только в этой гениальной программе префикс дается в середине номер 00УТ-00005
я поначалу подумал что первые 00 это еще какой префикс, непонятно куда закравшийся, однако обыскав все так и не нашел его
(4) friday1, правильно думали, первые 00 - это префикс организации, точнее, если он не указан. ПОПБ-00001 - ПО - это префикс организации, ПБ - префикс ИБ, если какого-то из префиксов нет - то нули. На печать выходит только префикс ИБ
(4) первые 00 это и есть ПРЕФИКС ОРГАНИЗАЦИИ
т.к. у вас он не заполнен он и выводится как 00 (символы в номере зарезервированы)
ну а УТ вы уже знаете чей префикс)))
Скорее всего 00УТ000. появился с самого начала, либо из-за префикса либо из-за того что поправили номер документа в ручную. После того как ты поставишь в настройках организации префикс УТ без 00 и обработкой переделаешь нумерацию то следующий созданный документ будет иметь номер УТ00000. а не 00УТ000.
Либо я что-то не так понимаю. У тебя есть Бухгалтерия есть торговля и ты выгружаешь из УТ в бухгалтерию? и в УТ в документах префикс нормальный, а в бухгалтерии нет? Опиши поподробнее ситуацию
не, не есть ут и бп, из бп доки не печатаются там без разницы в каком виде
в ут был префикс 00УТ-00001 и тд
попробую сделать как вы сказали) как что отпишусь)
вообще то префикс вообще не должен выходить на печать, у вас проблема в том что префикс должен начинаться с букав, например УТ00-000001, на печать выдет 1, измените у последнего документа с 00УТ на УТ00, и последующие номера в документах будут задаваться правильно, для созданных документов, как уже указывали используйте обработку
Я бы вообще не стал трогать префиксы - а вдруг захотите обмен настроить с другой базой? Не нравятся вам префиксы в печатных формах, ну так и не печатайте их:
в общем модуле ПрефиксацияОбъектовКлиентСерверПереопределяемый
Для УТ 11 добавляем установку значений параметрам (пример ниже) в начале функции ОбщийМодуль.ПрефиксацияОбъектов.ПолучитьНомерНаПечать, т.к. в конфе данная функция вызывается без этих параметров, а по умолчанию они равны ЛОЖЬ
Для бухгалтерии 3.0 проще сделать так. Включить все функции в "Главное меню" -> "Сервис" -> "Параметры". Далее "Главное меню" -> "Все функции" - "РегистрСведений.ПрефиксыИнформационныхБаз", открываем форму нужного перефикса и устанавливаем "Печатать префикс = ложь". Все! Наслаждаемся нормальной нумерацией при печати и нормальной нумерацией в журнале с/ф и декларации по НДС )))
още сделать так. Включить все функции в "Главное меню" -> "Сервис" -> "Параметры". Далее "Главное меню" -> "Все функции" - "РегистрСведений.ПрефиксыИнформационныхБаз", открываем форму нужного перефикса и устанавливаем "Печатать префикс = ложь". Все! Наслаждаемся нормальной нумерацией при печати и нормальной нумерацией в жу
(13) В журнале с/ф печать без префикса происходит, а в декларации по НДС нет, к сожалению, на последнем на данный момент релизе 3.0.76.67
Получилось помочь себе самому, несмотря на то что в модуле стоят значения Ложь для удаления префикса организации, ниже идёт значение истина. 1с.
(15) Префикс организации у вас и так пустой. А вот префикс узла (это который "УТ") у вас есть и он печатается. Всё более чем логично.
У меня подобная ситуация.
Работаем в УТ 11.4.11.71 в справочнике Организации префикс УТ установлен изначально, в экранной форме он присутствует, а в печатном виде его нет.
Например, номер документа отображался УТ00-000045.
На днях настроили обмен УТ 11 и БП 3.0 в момент настройки синхронизации в УТ 11 задали префикс УТ и теперь:
1. Номер документа на экране выглядит УТУТ-000054.
2. В печатной форме появился префикс УТ-54.
Подскажите, пожалуйста, как на строить программу, чтобы в печатной форме выводился на печать только номер без префикса.
Можно ли это настроить в программе не используя конфигуратор?
Часто возникает необходимость вывести в печатную форму номер документа без префикса и лидирующих нулей.
Для этого можно воспользоватся маленькой обработкой прикрепленной к статьи или использовать ниже приведенный код.
НомерБезНулей = НомерБезПрефикса ;
Пока Найти ( НомерБезНулей ,"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) вместо Формат(, "ЧГ=") можно попробовать неявное преобразование в строку ""+Число(
Часто возникает необходимость вывести в печатную форму номер документа без префикса и лидирующих нулей.
Для этого можно воспользоватся маленькой обработкой прикрепленной к статьи или использовать ниже приведенный код.
НомерБезНулей = НомерБезПрефикса ;
Пока Найти ( НомерБезНулей ,"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) вместо Формат(, "ЧГ=") можно попробовать неявное преобразование в строку ""+Число(
Часто при разработке печатных форм или отчетов, нужно номера документов вида 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 подсказывал, что с ним будет меньше проблем Посмотреть все результаты поиска похожих
Еще в этой же категории
Читайте также: