|   |   | 
| 
 | Получить ссылку документа из штрихкода? | ☑ | ||
|---|---|---|---|---|
| 0
    
        SkillUp 04.09.19✎ 11:22 | 
        Здавствуйет, подскажите как получить полноценную ссылку документа из штрихкода. Пример, получаю строку  - "d94c7b60c3e311e9baae309c2344e8cc", а как ее преобразовать эту строку с дефисами (пример - 58df113e-c7e3-4da8-7000-1e50ee4df678) ?
 Мой код: Функция ПреобразоватьДесятичноеЧислоВШестнадцатиричнуюСистемуСчисления(ДесятичноеЧисло) Результат = ""; Пока ДесятичноеЧисло > 0 цикл ОстатокОтДеления = ДесятичноеЧисло % 16; ДесятичноеЧисло = (ДесятичноеЧисло - ОстатокОтДеления) / 16; Результат = Сред("0123456789abcdef", ОстатокОтДеления + 1, 1) + Результат; КонецЦикла; Возврат Результат; КонецФункции | |||
| 1
    
        Beduin 04.09.19✎ 11:26 | 
        (0) Ты из гуида хочешь ссылку на документ получить?     | |||
| 2
    
        Кодер 04.09.19✎ 11:26 | 
        Функция ПолучитьСсылку(Стр)
 Если Стр = "d94c7b60c3e311e9baae309c2344e8cc" Тогда Возврат "58df113e-c7e3-4da8-7000-1e50ee4df678" КонецЕсли; КонецФункции | |||
| 3
    
        SSSSS_AAAAA 04.09.19✎ 11:32 | 
        (0) А где тут штрихкод? А откуда взято соответствие "d94c7b60c3e311e9baae309c2344e8cc" и  58df113e-c7e3-4da8-7000-1e50ee4df678?     | |||
| 4
    
        SkillUp 04.09.19✎ 11:33 | 
        1 мин. )     | |||
| 5
    
        SSSSS_AAAAA 04.09.19✎ 11:34 | 
        (0) И с какого перепугу для работы со штрихкодами и гуидами использована функция работы с десятичным числом?     | |||
| 6
    
        SkillUp 04.09.19✎ 11:38 | 
        (5) Ну как, смотрю код. Чтоб в печатной форме РН, поле штрихкод заполнилось. Сначало идет преобразование 16-ти в 10 -чный, потом преобразует число в штрихкод. Т.е. мне ,чтоб получить ссылку надо все выполнить в обратном порядке.
 Вот код из конфы: Функция ЧисловойКодПоСсылке(Ссылка) Экспорт ШестнадчатиричноеЧисло = СтрЗаменить(Строка(Ссылка.УникальныйИдентификатор()),"-",""); Возврат ПреобразоватьИзШестнадцатиричнойСистемыСчисленияВДесятичноеЧисло(ШестнадчатиричноеЧисло); КонецФункции Процедура ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, Знач ОбластьМакета, Ссылка) Экспорт ВыводитьШтрихкодВОтдельнуюОбласть = Ложь; Если Не ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакета) Тогда // Картинки штрихкода в этой области макета нет. Если Макет.Области.Найти("ОбластьШтрихкода") <> Неопределено Тогда // Проверить картинку штрихкода в области "Штрихкод" ОбластьМакетаШтрихкод = Макет.ПолучитьОбласть("ОбластьШтрихкода"); Если ЕстьКартинкаШтрихкодаВОбластиМакета(ОбластьМакетаШтрихкод) Тогда ОбластьМакета = ОбластьМакетаШтрихкод; ВыводитьШтрихкодВОтдельнуюОбласть = Истина; Иначе Возврат; КонецЕсли; Иначе Возврат; КонецЕсли; КонецЕсли; Если Не ПолучитьФункциональнуюОпцию("ИспользоватьШтрихкодированиеПечатныхФормОбъектов") Тогда ОбластьМакета.Рисунки.Удалить(ОбластьМакета.Рисунки.КартинкаШтрихкода); Возврат; КонецЕсли; Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон"); КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100; ПараметрыШтрихкода = Новый Структура; ПараметрыШтрихкода.Вставить("Ширина", Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Ширина / КоличествоМиллиметровВПикселе)); ПараметрыШтрихкода.Вставить("Высота", Окр(ОбластьМакета.Рисунки.КартинкаШтрихкода.Высота / КоличествоМиллиметровВПикселе)); ПараметрыШтрихкода.Вставить("Штрихкод", СокрЛП(ЧисловойКодПоСсылке(Ссылка))); ПараметрыШтрихкода.Вставить("ТипКода", 4); // Code128 ПараметрыШтрихкода.Вставить("ОтображатьТекст", Ложь); ПараметрыШтрихкода.Вставить("РазмерШрифта", 6); ОбластьМакета.Рисунки.КартинкаШтрихкода.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода); Если ВыводитьШтрихкодВОтдельнуюОбласть Тогда ТабличныйДокумент.Вывести(ОбластьМакета); КонецЕсли; КонецПроцедуры | |||
| 7
    
        SkillUp 04.09.19✎ 11:40 | 
        Из 16 в 10 преобразую с помощью функции 
 Функция ПреобразоватьДесятичноеЧислоВШестнадцатиричнуюСистемуСчисления(ДесятичноеЧисло) Результат = ""; Пока ДесятичноеЧисло > 0 цикл ОстатокОтДеления = ДесятичноеЧисло % 16; ДесятичноеЧисло = (ДесятичноеЧисло - ОстатокОтДеления) / 16; Результат = Сред("0123456789abcdef", ОстатокОтДеления + 1, 1) + Результат; КонецЦикла; Возврат Результат; КонецФункции | |||
| 8
    
        SkillUp 04.09.19✎ 11:40 | 
        Или я не правильно понял, как из числа, получить ссылку на документ?     | |||
| 9
    
        Кодер 04.09.19✎ 12:20 | 
        Никак. Делай свой регистр (порядковый номер, тип объекта, ссылка на объект), номер в EAN13 с префиксом от 20 до 29, ссылку вытаскивай из регистра.     | |||
| 10
    
        Йохохо 04.09.19✎ 12:27 | 
        (8) чтобы все было однозначно количество комбинаций должно быть одинаковым, у тебя 32 знака по базе 16, какая должна быть длина по основанию 10?     | |||
| 11
    
        zva 04.09.19✎ 12:27 | 
        Конфигурация хоть какая?
 В той же УТ 11.4 // Функция - Получить ссылку по штрихкоду табличного документа // // Параметры: // Штрихкод - Строка - Штрихкод // Менеджеры - Массив - Менеджеры документов. // // Возвращаемое значение: // Массив - Ссылки на документы ШтрихкодированиеПечатныхФорм.ПолучитьСсылкуПоШтрихкодуТабличногоДокумента(Штрихкод, Менеджеры) | |||
| 12
    
        SkillUp 04.09.19✎ 12:47 | 
        (11) О! Блин, где ты был раньше!!?!?!?!? СПАСИБО!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |