|   |   | 
| 
 | v7: Штрих-код в накладной | ☑ | ||
|---|---|---|---|---|
| 0
    
        mcwolf 14.07.14✎ 20:50 | 
        Собственно решил сделать штрих-код в расходной штрих-коду присваивается номер накладной ну и дата то есть получается что-то вроде этого: "0-0000000214.07.14" но столкнулся с проблемой если стоит в настройках префикс то штрих код получается пример: "Гит0-0000214.07.14". Штрих код Code 128, собственно вопрос как отрезать этот префикс если он есть в одних документах он "Гит" а в других "Сф" и тд и тп...     | |||
| 1
    
        ildary 14.07.14✎ 21:03 | 
        Прав() СтрДлина() и Найти()?     | |||
| 2
    
        vcv 14.07.14✎ 21:15 | 
        Если для внутреннего использования, то, по моему, лучше внутренний идентификатор документа как штрихкод использовать.     | |||
| 3
    
        mcwolf 14.07.14✎ 21:30 | 
        (1) Я думаю что это все не подходит так как стрДлина() будет везде равно 18, Прав(), Лев() не подходит потому, что не известно сколько символов стоит слева 2 или 3 как это определить?     | |||
| 4
    
        Pasha 14.07.14✎ 21:31 | 
        Переделай буквы в цифры и всего делов     | |||
| 5
    
        КонецЦикла 14.07.14✎ 21:32 | 
        (2) +1
 Если документы разных видов - в длинную строку бд | |||
| 6
    
        vcv 14.07.14✎ 21:33 | 
        Можно перебрать символы с конца, когда встретится первая "не цифра", значит номер закончился и начался префикс. Но, может быть и не всё так просто. Вдруг у вас используются номера типа СФ000015/2 или Гит0001543А     | |||
| 7
    
        mcwolf 14.07.14✎ 21:37 | 
        Нет как раз таки вот так "Гит0-00002" или "Сф0-00003"
 А как перебрать цифры с конца? | |||
| 8
    
        mcwolf 14.07.14✎ 21:48 | 
        Ищу так:               ДокПрием=СоздатьОбъект("Документ");
 _ШК=Строка(Данные); Если ДокПрием.НайтиПоНомеру(_ШК, Прав(_ШК, 8), "РасходнаяНакладная")=1 тогда ОткрытьФорму(ДокПрием.ТекущийДокумент()); Иначе Сообщить("Документ с номером "+Лев(_ШК, 10)+" от "+ Прав(_ШК, 8)+" не найден!"); КонецЕсли; | |||
| 9
    
        vcv 14.07.14✎ 21:52 | 
        (7) 
 ДлинаНомера = СтрДлина(НомерДок); Для Номер = 0 По ДлинаНомера-1 Цикл ЦифраНомера = Сред(НомерДок,ДлинаНомера-Номер,1); ... КонецЦикла; Если в всегда-всегда номер выглядит именно так, можно просто искать "0". Позиция = Найти(НомерДок,"0"); Префикс = Лев(НомерДок,Позиция-1); НомерБезПрефикса = Сред(НомерДок,Позиция); Но тут хорошо бы проверок всяческих. На всякий случай. Вдруг встретится номер типа СФ12345. | |||
| 10
    
        vcv 14.07.14✎ 21:54 | 
        (8) Для подобного внутреннего использования однозначно делать штрихкод из идентификатора документа.     | |||
| 11
    
        mcwolf 14.07.14✎ 22:40 | 
        (10) а где найти идентификатор документа?     | |||
| 12
    
        mcwolf 14.07.14✎ 22:49 | 
        (9) Спасибо БОЛЬШУЩИЕ!!! Склоняю голову перед мастерством)     | |||
| 13
    
        spectre1978 14.07.14✎ 22:58 | 
        (11) ЗначениеВСтроку (Док), ЗначениеВСтрокуВнутр (Док) ?     | |||
| 14
    
        КонецЦикла 14.07.14✎ 23:52 | 
        (11) 1С++
 Meta.ЗначениеВСтрокуБД(Док) Ну или по старинке... | |||
| 15
    
        Злопчинский 15.07.14✎ 02:01 | 
        (14) а чем ЗначениеВСтрокуБД отличается от ЗначениеВСтрокуВнутр ...?     | |||
| 16
    
        Dolly_EV 15.07.14✎ 04:52 | 
        А еще лучше использовать QR-код, и пихать в него хоть весь документ построчно.... Правда сканер нужен спициальный     | |||
| 17
    
        vcv 15.07.14✎ 08:07 | 
        (15) Чебуратор! Срочно отгони пьяных гостей от клавиатуры! :)
 ЗначениеВСтроку(глПользователь) = {"Справочник","Пользователи","Вася"} ЗначениеВСтрокуВнутр(глПользователь) = {"B","0","0","30","0","0"," 14ЦБ "} | |||
| 18
    
        spectre1978 15.07.14✎ 08:33 | 
        (17) Документ="{"O","0","0","1611","0","0"," 101713001"}" 
 По-моему, вполне прилично. | |||
| 19
    
        spectre1978 15.07.14✎ 08:33 | 
        Это ЗначениеВСтрокуВнутр, если что     | |||
| 20
    
        Ёпрст гуру 15.07.14✎ 09:23 | 
        (15) ознакомься
 ЗначениеВСтрокуБД(<?>) ValueToDBString(<?>) Синтаксис: ЗначениеВСтрокуБД(<Object>) Назначение: преобразует ссылочный тип данных 1С (Справочник, документ, перечисление) во внутренние представление системы, только внутренний ИД объекта. Возвращает строку - внутреннего представления в виде: [ID(6)][Sign(3)] = 9 символов. Возвращаемое значение: (Строка) Параметры: <Object> - объект неопределенного вида | |||
| 21
    
        spectre1978 15.07.14✎ 09:39 | 
        (20) красиво...     | |||
| 22
    
        big 15.07.14✎ 12:41 | ||||
| 23
    
        КонецЦикла 15.07.14✎ 23:57 | 
        (15) Не нужно ничего выковыривать, получаешь строку вида "     1   "     | |||
| 24
    
        Web00001 16.07.14✎ 02:30 | 
        Мне одному непонятно? Проблема получить номер без префикса?     | |||
| 25
    
        DrZombi гуру 16.07.14✎ 07:14 | 
        (3) Префикс, это всегда буковки.
 Номер, это циферки. ... Рекомендую привести нумерацию документов мнеяемый вид :) | |||
| 26
    
        DrZombi гуру 16.07.14✎ 07:15 | 
        (24) Он сетует, на то, что префик у них формируют АБЫ как, т.е. каждый сотрудник имеет собственно представление об префиксе.... Анархия :)     | |||
| 27
    
        big 16.07.14✎ 07:58 | 
        (25) Это верно на 146%? ))
 (26) да и пофих не все эти префиксы. Это вообще не важно в этом вопросе. похоже тут собрались одни писатели и ни одного читателя. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |