Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не коректре виведення інформацї в команді
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
l2d808
Доброго часу, шановне товариство.
Користуюст 1с8,3 конфа самописна

Є такий код:
кодНовий=0;
    Пока Выборка.Следующий() Цикл
        кодНовий=кодНовий+1;
        сообщить(Прав((сокрЛП("0000"+кодНовий)),4)+" - "+стрЗаменить(кодНовий," ","")+"   кількість-"+стрДлина(Прав((сокрЛП("0000"+кодНовий)),4)));
    КонецЦикла;


В результаті дії цього коду отримую:
0001 - 1 кількість-4
0002 - 2 кількість-4
0003 - 3 кількість-4
0004 - 4 кількість-4
***
0997 - 997 кількість-4
0998 - 998 кількість-4
0999 - 999 кількість-4
 000 - 1 000 кількість-4
 001 - 1 001 кількість-4
***
 521 - 1 521 кількість-4
522 - 1 522 кількість-4
 523 - 1 523 кількість-4
 524 - 1 524 кількість-4
 525 - 1 525 кількість-4
 
Запитання: чому при значенні кодНовий>999 значення виразу Прав((сокрЛП("0000"+кодНовий)),4) перетворюється на 3 символи, хоче знячення виразу стрДлина(Прав((сокрЛП("0000"+кодНовий)),4))=4

Поясніть в чому тут помилка. Зачасно дякую за Ваші відповіді.


 ! 

необходимо зарегистрироваться для просмотра ссылки: 5
 
awp
l2d808 @ Сегодня, 16:15 необходимо зарегистрироваться для просмотра ссылки ,

Формат(кодНовий,"ЧГ=")
Prospero
l2d808 @ Сегодня, 16:15 необходимо зарегистрироваться для просмотра ссылки ,

Роздільник розрядів числа - це не зовсім пробіл - це нерозривний пробіл з кодом 160, якщо хочете його прибирати через стрЗаменить - використовуйте другим параметром або Символ(160) або Символы.НПП, або ж застосовуйте попереднє форматування числа за допомогою приклада від AWP
awp
нашел функцию у себя :
функция прКод(Код)
    Возврат СтрЗаменить(СтрЗаменить(Код," ",""),Символы.НПП,"");
КонецФункции


Формат, вроде не сработает.
Prospero
Цитата(awp @ 21.09.19, 22:23) необходимо зарегистрироваться для просмотра ссылки
Формат, вроде не сработает.

Да должен вроде...
Сообщить(Прав((сокрЛП("0000"+Формат(кодНовий,"ЧГ=0"))),4)+" - "+кодНовий+"   кількість-"+стрДлина(Прав((сокрЛП("0000"+кодНовий)),4)));

0998 - 998   кількість-4
0999 - 999   кількість-4
1000 - 1 000   кількість-4
1001 - 1 001   кількість-4

Не знаю, так ТС-у нужно или нет
Petre
QUOTE (l2d808 @ 21.09.19, 15:15) необходимо зарегистрироваться для просмотра ссылки
Поясніть в чому тут помилка.

Типове перетворення значення типу Число у тип Рядок відбувається із локалізованим форматуванням (у прикладі - із додаванням пробілу як роздільника розрядів).
l2d808
Товариство, дякую за допомогу.
Вийшов з ситуації таким чином.
кон=Формат(нач,"ЧГ=100");
Макс1С
l2d808 @ Сегодня, 10:49 необходимо зарегистрироваться для просмотра ссылки ,

Лучше напишите

кон=Формат(нач,"ЧГ=0");


вряд-ли будет число больше 100 разрядов, но таким образом вы просто выключите разбиение числа на группы
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.