| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Как убрать пробелы... |
| Автор: bucdapus 25.3.2009, 16:54 |
| Вообщем ситуация такая когда присваеваю номер документу то 1с добавляет к номеру лишние пробелы, следовательно потом когда я ищу эту накладную по этому номеру не могу найти как мне можно помочь, чтобы не было пробелов. на примере: Сообщить("Номер документа:" + ВыборкаПриходов.Номер+"/"); выводит: Номер документа:349 / а должно быть: Номер документа:349/ Заранее благодарю!!! |
| Автор: geka6pucT 25.3.2009, 16:57 |
| СокрЛП(ВыборкаПриходов.Номер) |
| Автор: bucdapus 25.3.2009, 17:07 |
| это я знаю как мне написать поиск в самом справочнике???номенклатуры по номеру?? |
| Автор: bucdapus 26.3.2009, 11:15 |
| ну можно и другой вариант а как тогда добавить пробелы к номеру но чтобы число символов всегда было не больше 11 ну типа был номер 1 а получисля (1___________) где вместо _ пробел |
| Автор: geka6pucT 26.3.2009, 11:39 |
| Может Спр.НайтиПоКоду("002") ? |
| Автор: AkelaSQL 26.3.2009, 12:09 | ||
Данный метод находит элемент по коду, причём концевые пробелы он отбрасывает сам. Если тип кода у Вас текстовый, то применяйте номерацию элементов справочника по методике 1С, т.е. если длина кода 8 символов, то код имеет вид: 00000011. При автонумерации следующий код у Вас будет: 00000012 Ещё возможно добавление к коду префикса при работе с распределёнными базами, дабы исключить коллизии. В этом случае код будет иметь вид: А-000011 При создании элементов программно, используйте для формирования кода справочника метод: УстановитьНовыйКод(Префикс) |
| Автор: bucdapus 27.3.2009, 08:58 |
| почему не работаетвот такой код: ПриходСсылка = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(ДобавлениеПробелов(БазаДБФ.Direct)); Если Не ЗначениеЗаполнено(ПриходСсылка) тогда Если БазаДБФ.Line=1 тогда ПриходОбъект=ДокумПриход.СоздатьДокумент(); где: Функция ДобавлениеПробелов(ПолучаемПеременную) Пока СтрДлина(ПолучаемПеременную)<> 11 Цикл ПолучаемПеременную = ПолучаемПеременную +" "; КонецЦикла; Сообщить("КОД ПОИСКА"+"+"+ПолучаемПеременную+"+"); Возврат(ПолучаемПеременную); КонецФункции |
| Автор: AkelaSQL 27.3.2009, 10:46 | ||
| НайтиПоНомеру(<Номер документа>, <Дата интервала>) Параметры: <Номер документа> (обязательный) Тип: Число, Строка. Номер искомого документа. Тип передаваемого значения зависит от установки в конфигураторе представления номера документа. 1. Обрати внимание на правильную типизацию передаваемого номера, так-же попробуй задать второй параметр... 2. Зачем такой огород городить? Не нужно приписывать в хвост пробелы!!! Метод НайтиПоНомеру(<Номер документа>, <Дата интервала>) сам их отбрасывает. Пиши так и будет тебе счастье:
|
| Автор: bucdapus 27.3.2009, 10:55 |
| так вот я до этого так и писал когда я загружаю и документы создаются то номер документа из (***) превращается в (***________) и когда я пробую перезагрузить документы то не могу найти по номеру уже загруженную накладную... Добавлено через 5 минут и 47 секунд а в конфигураторе стоит строковое выражение номера, а менять мне нельзя тип значения. |
| Автор: AkelaSQL 27.3.2009, 11:06 |
| 1. Не может такого быть! 2. Я рекомендую не записывать Ваш номер в номер накладной 1С. Пусть номер в 1С система генерирует сама (уж очень много на него завязано ...). А вот Ваш номер пишите в поле "НомерВходящегоДокумента", это и будет ключем синхронизации, только 2 но... - в типовой конфе данное поле не индексировано, для ускорения поиска это нужно подправить... - для поиска документа лучше (быстрее) использовать запрос. |
| Автор: bucdapus 27.3.2009, 11:18 |
| тогда как мне написать строку ПриходОбъект.Номер = Формат(Строка(БазаДБФ.Number),"ЧГ=0"); где вместо Формат(Строка(БазаДБФ.Number),"ЧГ=0"); шла автоматическая 1с вская нумерация призагрузке документов??? |
| Автор: AkelaSQL 27.3.2009, 11:37 | ||
| УстановитьНовыйНомер (SetNewNumber) Синтаксис: УстановитьНовыйНомер(<Префикс номера>) Параметры: <Префикс номера> (необязательный) Тип: Строка. Префикс устанавливаемого номера. Значение по умолчанию: Пустая строка Описание: Устанавливает новый номер документа для заданного префикса номера. Примечание: Для документов с нумерацией в пределах периода, номер устанавливается в пределах периода, соответствующего установленной дате документа. Если дата - пустая, процедура установит номер в пределах периода соответствующего пустой дате. Пример: РасходнаяНакладная.УстановитьНовыйНомер(ПрефиксИБ); См. также: ДокументОбъект, событие ПриУстановкеНовогоНомера
|
| Автор: bucdapus 27.3.2009, 16:53 |
| 354 реальный номер* Дата 27.03.2009 16:33:39 пытаюсь написать функцию которая бы выделяла из этой строки число 354 но ничего не получается.... смысл вообщем втом что перебираю символы пока не пробел тогда вылет из цикла может у кого есть идеи... |
| Автор: AkelaSQL 27.3.2009, 17:01 |
| Зачем ты убираешь пробелы? В цикле! Жесть!!! НомерЦифрой = Число(СокрЛП(НомерСтрокой)); |
| Автор: bucdapus 30.3.2009, 08:41 |
| да я не убираю пробелы мне всего нужно из коментария как то получать первые цифры и сравнивать их с номерами документов: вот коментарий выглядит так: 354 реальный номер* Дата 27.03.2009 16:33:39 |
| Автор: AkelaSQL 30.3.2009, 09:47 | ||
|
| Автор: bucdapus 30.3.2009, 13:30 |
| Спасибо!! |