Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Янв 2018, 06:57
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Удаление части номера документа  (Прочитано 5756 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Документу присваивается номер типа 0000001, как убрать только часть нулей из номера, используя функцию ПолучитьНомерНаПечать()?
Часть кода, который убирает нули такой:
		// удаление ведущих нулей
Пока Лев(Номер, 1)="0" Цикл  //находит все нули
Номер = Сред(Номер, 2); //оставляет только число без нулей
КонецЦикла;
Но это убирает все нули из номера, а я хочу сделать так, чтобы оставалось три нуля, т.е. 0001. Как это правильно сделать? Подскажите что изменять в цикле, чтобы тот оставлял часть символов.
Спасибо


Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
А вы сделайте по другому -
НомерЧисло = Число(Номер);
НужныйНомер = "000" + Строка(НомерЧисло);
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Как я понимаю, сделав таким образом, допишутся три нуля перед числом. Правильно? Но когда номер документа станет двузначным, то по-прежнему будут три нуля впереди.
Я же добиваюсь того, чтобы нумерация состояла из трёх символов, например 001, 002, 003... 021, 022... 121, 122, 123 и т.д. На данный момент она состоит из шести символов: 000001, 000002... 000021, 000022, 000124, 000125 и т.д. Эти лишние нули я и хочу убрать, но не знаю правильного синтаксиса.

Такой вопрос, как можно добавить проверку на длину порядкового номера документа? Тогда можно будет условие прописать при возврате номера документа. Что-то типа:
Если ДлинаНомера = 1 Тогда
        Возврат "00"+Номер;
ИначеЕсли ДлинаНомера = 2 Тогда
    Возврат "0"+Номер;
Иначе
    Возврат Номер;
КонецЕсли;

Последний раз редактировалось: keramik; 06 Июн 2015, 21:29

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
а! ну тогда проще.
СтрДлина
вам поможет
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Спасибо, получилось.
В итоге код выглядит так.
1. Вначале обрезаем все нули из номера в функции ПолучитьНомерНаПечать()
	Пока Лев(Номер, 1)="0" Цикл
Номер = Сред(Номер, 2);
КонецЦикла;
2. Затем там же в функции при выводе номера дописываем нули, проверяя длину номера:
	Если СтрДлина(Номер) = 1 Тогда
Возврат "00" + Номер;
ИначеЕсли СтрДлина(Номер) = 2 Тогда
Возврат "0" + Номер;
Иначе
Возврат Номер;
КонецЕсли;

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
Дада. именно так.
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн pavl_vs

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 171
  • КПД: 16%
  • Регистрация: 2011-05-09
  • Сайт: 
  • Профессия: Программист 7.7
keramik, если Вас интересует номер длиной 4 знака (подразумевается, что номер не превышает 9999), то самое простое
НомерКон = Прав(НомерНач, 4);

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Спасибо, Павел.

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Прав("000"+Номер,3); // номер - уже без префиксов и лидирующих нулей
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн keramik

  • ***
  • Сообщений: 161
  • РЕПУТАЦИЯ: 2
  • КПД: 1%
  • Регистрация: 2014-10-03
  • Сайт: 
  • Профессия: Программист 1С
Спасибо, этот вариант лаконичен.


 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4586
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7858
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4915
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika
При создании нового документа "Заявка на кассовый расход" Ошибка "Значение 9 поля "номер" не уникально

Автор ppkmliteРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 8945
Последний ответ 22 Ноя 2014, 04:50
от cska-fanat-kz
Фамилия руководителя в печатных формах документа "Акт сверки", "Акт об оказании"

Автор MKozzlikРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7478
Последний ответ 03 Фев 2012, 17:27
от Dinah

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
102 Сообщений
AIFrame
86 Сообщений
alex0402
34 Сообщений
pavl_vs
23 Сообщений
kiksi
19 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
Norfolk
15 Сообщений
LexaK
13 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений

* Кто онлайн

  • Точка Гостей: 346
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal