Расчет CRC32

Публикация № 126394

Разработка - Универсальные функции

5
Расчет CRC32 без использования внешних компонент

Расчет CRC32 без использования внешних компонент.

Алгоритм можно ускорить, но меня устраивает и так, как есть.

У меня используется для небольших объемов данных.

Легко переносится на 8-ку

5

Скачать файлы

Наименование Файл Версия Размер
Расчет CRC32
.ert 42,50Kb
26.04.12
36
.ert 42,50Kb 36 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Angeros 27.04.12 03:51 Сейчас в теме
Подскажите для чего это можно применить? И каков принцип кодирования в crc32?
2. GAlexis 5 27.04.12 07:45 Сейчас в теме
Алгоритм CRC32 устроен так, что небольшие изменения в ДАННЫХ вызывают большие изменения в подписи CRC32.
Я использую для сверки бумажных и электронных накладных, печатая CRC32 на накладной в виде штрихкода.
3. Famza 82 27.04.12 08:42 Сейчас в теме
(2) Штрих-код - это конечно хорошо, а как происходит сверка штрих-кодов у вас?
4. GAlexis 5 27.04.12 08:50 Сейчас в теме
Извиняюсь не правильно понял вопрос первый раз.
На накладной в виде ШК есть номер накладной и ШК CRC32 табличной части.
Сканируется ШК CRC32 потом Номер накладной повторно вычисляется CRC32 сравнивается.
5. Gulak 02.05.12 11:06 Сейчас в теме
6. Johny_v 79 25.05.12 12:31 Сейчас в теме
А ты проверял возникновение коллизий?
Например если кодировать уид 20тыс. элементов, то сколько будет разных элементов с одинаковым CRC32?
7. GAlexis 5 25.05.12 13:22 Сейчас в теме
Алгоритм предназначен для контроля ошибок, а не для кодирования, на сколько я понимаю.
Честно говоря мне не совсем ясно для чего каждый отельный УИД нужно кодировать CRC32.

Алгоритм CRC32 придуман не мной и мной не исследовался.
Возможно эта информация Вам поможет:
Wikipedia CRC32
В частности там указано что, CRC32 используется в Ethernet, FDDI, iSCSI ...

Если Вам нужна меньшая вероятность совпадений смотрите в сторону MD5 и т.п.
8. Johny_v 79 25.05.12 16:38 Сейчас в теме
Спасибо за ссылку, я смотрел эту статью.
md5 однозначно не подходит.
Слишком большое выходное значение получается. Мне нужно получить максимум 10 символов.
Из найденного подходят методы Adler32 и CRC32.

Кстати первый работает очень быстро и просто программируется, но у него возможны коллизии.
Проверял на 20 тыс. элементов получилось около 900 ошибок (разных элементов с одним хешем).
С CRC32 я думаю меньше будет.
9. GAlexis 5 27.05.12 11:46 Сейчас в теме
Проверял на 20 тыс. элементов получилось около 900 ошибок

Зачем нужно кодировать каждый УИД отдельно?
10. Johny_v 79 28.05.12 09:24 Сейчас в теме
Нужно для каждого элемента получить уникальный код который пользователь должен будет ввести вручную (поэтому и ограничение по длине кода). Он должен быть не по порядку, чтобы исключить подбор вручную. Кончено может совпасть так, что код будет по порядку, но вероятность меньше.
11. Johny_v 79 28.05.12 10:05 Сейчас в теме
После проверки 18000 элементов
Adler32 выдал 652 коллизии
CRC32 выдал 4 коллизии
Выводы: метод не подходит для этой задачи. Он не обеспечивает необходимой уникальности.
Буду искать другие способы.
12. Johny_v 79 28.05.12 10:11 Сейчас в теме
Кстати, для проверки сделал внешнюю компоненту.
18тыс элементов за 1 секунду закодировала.
Если нужна могу скинуть.
13. GAlexis 5 31.05.12 07:59 Сейчас в теме
После проверки 18000 элементов
Adler32 выдал 652 коллизии
CRC32 выдал 4 коллизии
Выводы: метод не подходит для этой задачи. Он не обеспечивает необходимой уникальности.

Ну и в принципе если ты большую строку преобразуешь в меньшую и по одной нельзя воссоздать другую в точности, то ты неизбежно получишь коллизии.
14. maksim32 08.01.13 22:52 Сейчас в теме
Johny_v, да, кинь компоненту пожалуйста!!! Очень нужна! Спасибо
15. vvr908 396 06.02.15 22:54 Сейчас в теме
Автору спасибо!

Есть один нюанс:
Я скачал обработку и переписал код под 8-ку. Потом решил проверить, совпадет ли расчет с методом ХешированиеДанных() из платформы 8.3.
Результат не совпал.

Похоже, что в платформе используется алгоритм CRC32B (расчет из платформы совпал с расчетом онлайн-конвертера CRC32B http://hash.online-convert.com/crc32b-generator). А какой алгоритм используется в этой обработке, я пока не успел выяснить - но, похоже, не CRC32B. С аналогичным онлайн-расчетом CRC32 он тоже не совпадает.

Так что не знаю, используйте на свой страх и риск. Хотя может, конечно, я криво код переписал под 8-ку...
16. GAlexis 5 16.03.15 08:14 Сейчас в теме
(15) vvr908, Прошу прощения за поздний ответ, но у меня все под 7.7 совпадало со всеми генераторами. В 8.3 есть функция расчета CRC она не устраивает? Могу переписать код под 8 ку.
Оставьте свое сообщение

См. также

Как создать индикатор в 1С:Предприятии 7.7 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Абонемент ($m) Работа с интерфейсом Универсальные функции

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    9657    2    HAMMER_59    6       

Методы для группировки данных по полю,полям в Таблице Значений на примере универсального метода списания по партиям, а также отбора строк в ТЗ по произвольному условию. Для 8.x и 7.7 4

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 v8 1cv8.cf 1cv7.md Windows Абонемент ($m) Практика программирования Универсальные функции

Я очень часто использую группировку данных по полю и полям, как в восьмерке, так и в семерке. Это аналог запроса Итоги, но там строится дерево, а в большинстве случаев нужны "плоские данные". Да и делать запрос в большинстве случаев более накладный процесс, чем работа с ТЗ. Все достоинства такого подхода приведены на примере метода универсального списания по париям, а так же отбора строк в ТЗ по произвольному условию. Для 7.7 еще отчеты сравнения двух ТЗ. Работая с различными базами для упрощения сравнения номенклатуры, или как аналог джойнов(join), сделал сравнение двух таблиц значений по нескольким полям. Пока группировки полей должны быть уникальны. Часто приходится искать дубли, для универсального поиска есть ДублиВТзПоПолю и пример в Тест.ert.

1 стартмани

25.06.2015    21155    4    Serginio    1       

Запуск php програм в 1С 7.7 0

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Абонемент ($m) Универсальные функции

Запуск программ PHP на сервере по прямому адресному запросу. Дополнительная возможность - передавать параметры методом GET-запросов.

1 стартмани

15.09.2014    5158    7    kwadro    1       

Перевод десятичного числа в HEX, BIN, OCT, _IdToStr и другие системы 1

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 1cv7.md Абонемент ($m) Инструментарий разработчика Практика программирования Универсальные функции

Два алгоритма перевода десятичного числа в другую систему исчисления от 2 до 36 только средствами 1С (без ВК)

1 стартмани

05.06.2014    10387    10    kos    3       

1C7.7 парсер JSON 7

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Windows Абонемент ($m) Универсальные функции

РАБОТОСПОСОБНЫЙ парсер JSON встраивается в глобальный модуль в виде 3х функций. Для достижения положительного результата активно используется regexp.

1 стартмани

23.01.2014    14121    65    pit201201    16       

Компонента "Быстрый регистр" для 1С 7.7 (на прямых запросах SQL 1c++) 7

Инструменты и обработки Программист Внешний отчет (ert,erf) v7.7 Windows Абонемент ($m) Универсальные функции

Ускорение операций с регистрами 1с 7.7 через объектную модель, за счет доступа через прямые запросы SQL (1c++). Существует возможность добавления произвольных подзапросов соединений c другими таблицами и отборов WHERE, гибкой настройки вывода полей в результат

1 стартмани

13.01.2014    10131    8    victor_goodwill    7       

Обработка проверки номера сотового телефона 3

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Windows Абонемент ($m) Универсальные обработки Классификаторы Универсальные функции

Обработка предназначена для проверки номера сотового телефона по базе def номеров РФ по данным rossvyaz.ru

1 стартмани

05.10.2012    14896    28    BPAvel    8       

Почтовый клиент для скачивания вложений с почты 1С:7.7 7

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) WEB Универсальные функции

Скачивает вложения, и переименовывает на уникальное имя. Нужно для того, что бы скачивало ВСЕ файлы, даже если эти файлы с одинаковым именем. Изначально разрабатывалось для массового скачивания больших объемов квитанций о принятии отчетов в налоговую. иногда в письме было два и более разных файлов, с одинаковым именем. Существующие почтовые клиенты при этом скачивали только один (последний), остальные файлы терялись.

1 стартмани

15.08.2012    12246    19    serko8547    3       

Группировка данных в таблице значений (1С:7.7) 3

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m) Работа с интерфейсом Универсальные функции

Надоело каждый раз морочиться с итогами по группам данных в таблице значений при выводе отчета на печать! Вот и накидал простое решение... может и боян - но мне нравится)

1 стартмани

08.08.2012    17493    35    Lancelot-2M    9       

Универсальные функции Даты-Времени в 1Cv7 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Россия Абонемент ($m) Универсальные функции

Представлены 4 основные функции и 2 вспомогательные. Входом функций являются Дата и Время как в стандартном, так и форматированном представлении. На закладке "Функции" дана возможность проверить работу функций. Представлен альтернативный выбор Даты с помощью Календаря (кн. "Выбор").; На закладке "Календарь" показано, как просто можно создать и распечатать календарь на любой(!) год.

1 стартмани

22.05.2012    14680    19    newold2    13       

Выяснение ID'а объекта в базе SQL по его внутреннему идентификатору 1С 7

Инструменты и обработки Программист Внешняя обработка (ert,epf) openconf v77::БУ 1cv7.md Windows Абонемент ($m) Практика программирования Универсальные функции

Обработка позволяет узнать ID в базе SQL конкретного агрегатного объекта конфигурации (метаданных) 1С 7.7.

1 стартмани

27.03.2012    25050    14    born85    41       

Прогрессбар для конфигураций 7.7 5

Инструменты и обработки Программист Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Работа с интерфейсом Универсальные функции

Простой прогрессбар для конфигураций 7.7. Реализован штатными средствами, работает с любым видом учета

1 стартмани

11.02.2012    5524    32    Gagarick    3       

Редактор таблиц значений 14

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Универсальные функции

Простой и эффективный инструмент. Позволяет делать с таблицами значений все, что угодно: создавать, редактировать, записывать в файл, считывать из файла, обрабатывать...

1 стартмани

17.10.2011    11759    83    warenic    12       

Редактор списков значений 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Универсальные функции

Простой и эффективный инструмент. Позволяет делать со списками значений все что угодно: создавать, редактировать, записывать в файл, считывать из файла, обрабатывать...

1 стартмани

17.10.2011    9019    51    warenic    6       

Сравнение таблиц с данными 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Инструментарий разработчика Анализ учета Универсальные функции

Выкладываю функцию для сравнения таблиц значений (может кому-нибудь пригодится). Сравнивает две таблицы - исходную и новую по заданному индексу (индекс используется в методе ИТПолноеСоединение). Сравниваются либо заданные колонки, либо все колонки, имеющиеся в обеих таблицах.

1 стартмани

16.03.2011    9676    32    waol    1       

Печать штрихкодов (не EAN-13) TTF-шрифтом 7

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m) Сканер штрих-кода Ценники Универсальные функции

Возникла необходимость печатать серийники, состоящие из букв латинского алфавита.

1 стартмани

02.03.2011    19007    146    tdr1225    7       

Автонумерация документов 2

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Windows Абонемент ($m) Обработка документов Универсальные функции

Универсальная процедура автонумерации - решение, учитывающее ручные исправления номеров документов.

1 стартмани

24.11.2010    10971    149    aleksandr_leiman    6       

Сведения истории значений 7

Инструменты и обработки Программист Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Абонемент ($m) Обработка справочников Универсальные функции

Разработка содержит функцию «глСведенияИсторииЗначений(Элемент, НачДата, КонДата, ВсеИдРеквизитов = "")», демонстрацию которой выполняет данная разработка. Функция работает с историей реквизитов одного конкретного элемента справочника.

1 стартмани

29.08.2010    8040    76    provadyuga    5       

Многофирменный учет или отборы в общих журналах документов 17

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Обработка документов Универсальные функции

Стандартная привязка документа к определенному журналу имеет свои неудобства. Конкретному пользователю нужны определенные документы, да еще и с отбором по разным реквизитам. Отборы же в стандартном общем журнале документов реализованы только для одного реквизита : или фирма, или вид документа, или автор и т.д. Кроме этого, при попытке ввести новый документ , вываливается список всех документов конфигурации. А если у Вас многофирменный учет...

1 стартмани

09.05.2010    14359    249    kompas-dm    8       

Хранилище файлов для 7.7 14

Инструменты и обработки Программист Конфигурация (md, cf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Универсальные функции

Макетная конфигурация для структурированного хранения внешних файлов. Ссылки прикрепляются к документам и справочникам 1С.

1 стартмани

09.04.2010    11007    225    alex_serb    9       

Гибкие блокировки для 7.7 SQL Оперативный учет (очередные грабли :)) 4

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v77::ОУ 1cv7.md Windows Абонемент ($m) Обработка документов Универсальные функции

Обработка с функционалом по внедрению/использованию гибких блокировок в 1С 7.7 на SQL. На ваш суд и обсуждение :) Идея общеизвестная

1 стартмани

19.02.2010    10826    92    Lars Ulrich    10       

ПЕЧАТЬ ИЕРОГЛИФОВ из 1С 20

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Загрузка и выгрузка в Excel Универсальные функции

Если Вам нужно печатать из 1С иероглифы, а Вы не знаете как - предлагаю один из вариантов решения. А если Вы знаете - предложите свой, буду премного благодарен.

1 стартмани

04.02.2010    21487    41    Tatitutu    29       

Универсальный подбор элементов справочника 6

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Универсальные функции

Универсальная обработка для подбора элементов любого справочника путем прямого запроса с помощью 1С++ с использованием фильтра по вхождению для строковых реквизитов. (только для SQL)

1 стартмани

11.11.2009    8907    108    Boog    6       

Календарь 13

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ v77::БУ 1cv7.md Украина Windows Абонемент ($m) Работа с интерфейсом Универсальные функции

Вырванное из конфигурации решение справочника в виде календаря (с реализацией праздников и выходных для Украины).

1 стартмани

27.06.2009    10117    119    VRP    10       

Обработка сортировки по подразделению в любом документе 5

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::Расчет 1С7:ЗиК Windows Зарплата Управление персоналом (HRM) Абонемент ($m) Универсальные функции

Эта обработка относится к статье "http://infostart.ru/blogs/1086/" (Создаем сортировку по подразделению в любом документе (Зарплата и Кадры 7.7))

1 стартмани

28.05.2009    9663    62    Craig    18       

Получение списка запущенных процессов. Запуск и завершение программ по PID 1

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Абонемент ($m) Универсальные функции

Демонстрация способа запуска приложения с сохранением его PID и последующим закрытием по PID, получения списка процессов.

1 стартмани

01.04.2009    12622    174    MadDAD    13       

7.7. Нумератор бланков штрих-кодом + читатель (сканирование ШК). 20

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Документооборот и делопроизводство Абонемент ($m) Универсальные печатные формы Сканер штрих-кода Универсальные функции

Как-то высказывалось здесь пожелание познакомиться со штрих-кодированием и объектом BarCode. Знакомьтесь. Вариант использования: Контроль возврата выданных документов.

1 стартмани

20.03.2009    20402    661    Арчибальд    5       

Процедура-плагин: Выгрузка в Йоксель для Новейшего отчета 7.7 21

Инструменты и обработки Программист Архив с данными v7.7 1cv7.md Россия Абонемент ($m) Разработка внешних компонент Загрузка и выгрузка в Excel Универсальные функции

Процедура дополняет Новейший отчет 7.7 с возможностью выгрузки созданного отчета в Йоксель (Excel) с группировками по строкам.

1 стартмани

09.12.2008    15794    133    Djelf    13       

Расширенные настройки для отчетов 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Работа с интерфейсом Универсальные функции

Практически полный аналог стандартных возможностей - Сохранение и восстановление настроек в отчетах...

1 стартмани

08.12.2008    11373    154    Noy    27       

Как сделать удобный отбор документов в общем журнале для "Бухгалтерия 7.7", "1С:УСН" и "Зарплата и кадры 7.7" 46

Инструменты и обработки Программист Конфигурация (md, cf) v77::БУ v77::Расчет 1cv7.md Windows Абонемент ($m) Работа с интерфейсом Универсальные функции

Доработка предназначена для более удобного отбора документов общего журнала, чем в типовой "1С:Бухгалтерия", "1С:УСН", "1С:Зарплата и кадры". Позволяет пользователю: 1) установить отбор по виду документа; 2) установить отбор по сотруднику/контрагенту (зависит от конфигурации); 3) отключить отбор; 4) установить в качестве интервал текущие: день, месяц, квартал, год; 5) открыть сколько угодно общих журналов (!) и в них опять же установить отборы.

1 стартмани

13.12.2007    22215    396    IsiKosta    17