Нечеткий поиск дублей в наименованиях элементов справочников

Администрирование - Поиск данных

Быстрый поиск и замена дублей элементов справочников. Наглядное отображение и простота в использовании.

Испльзуются ВК:
1. "StrMatch.dll" для нечеткого сравнения строк. Автор: Ракунов Александр.
2. 1с++ http://www.1cpp.ru/
3. FormEx http://dorex.ru/?projects&formex

Порядок установки:
1. Если у вас нет в папке "{КаталогГдеУстановленаWindows}\System32\" файлов MFC71.dll и msvcr71.dll скопируйте их туда из прикрепленного архива "System32.rar" (необходимы для нечеткого поиска)
2. Распаковываем архив "Поиск.rar", открываем обработку "Поиск.ert".
Для тех, кто уже использует 1с++: Для корректной и полной работы обработки необходима ВК 1с++ 3.0 не ранее 22 апреля 2008 (находится в архиве, либо здесь: http://www.1cpp.ru/images/3/32/Icpp-latest.rar )!

Некоторые особенности работы:
Выбираем вид справочника, ставим процент совпадения, нажимаем «Начать сканирование».
После заполнения ТП возможно:
0. ПРЯМОЕ РЕДАКТИРОВАНИЕ значений ячеек в колонках «ЧтоМеняем» и «НаЧтоМеняем»!
1. Сортировать по любой колонке (по клику на колонке)
2. Перекидывать элементы местами в пределах одной строки (начинать тащить надо либо на колонке «ЧтоМеняем», либо «НаЧтоМеняем»)
3. Менять местами строки «тасканием».
4. Если выделить несколько строк ("shift/ctrl + клик мыши", либо "shift + стрелки клавиатуры"), потом вызвать контекстное меню (правая кнопка мыши), можно перекинуть выбранные элементы в указанную группу. Перекидываются те элементы, над которыми вызвано контекстное меню, т.е. либо над «ЧтоМеняем» либо над «НаЧтоМеняем»
5. Отмеченные галочкой строки можно передать в стандартную обработку "Замену значений" по соот-ей кнопке.
6. Пометить на удаление элементы из колонки "ЧтоМеняем", отмеченные ранее "галочкой".
7. Помеченные на удаление отображаются зачеркнутым шрифтом.

В очередной раз благодарю: разработчиков компонент 1с++ ( http://www.1cpp.ru/ ), FormEx (http://dorex.ru/?projects&formex) и Ракунова Александра за прекрасную ВК "StrMatch", а также Мартынова Константина за красивую конфигурацию "СКАТ-Профессионал"( http://33lab.ru/v7_skat/index.shtml ) ;)

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

Наименование Файл Версия Размер
Всё одним архивом
.zip 1,51Mb
03.10.13
78
.zip 1,51Mb 78 Скачать
Основная обработка + (1с++) + (FormEx) + (StrMatch.dll)
.1208949975 700,93Kb
03.10.13
802
.1208949975 700,93Kb 802 Скачать
Библиотеки, необходимые для ВК нечеткого поиска
.1208950092 547,21Kb
03.10.13
405
.1208950092 547,21Kb 405 Скачать

См. также

Комментарии
1. Евгений Мартыненков (JohnyDeath) 290 23.04.08 15:37 Сейчас в теме
Основное назначение обработки - пропаганда 1с++ ;)
Прямое редактирование значений ячеек ТабличногоПоля официально появилось только вчера. Также была добавлена возможность вывода нескольких картинок в одной колонке!
Подробней здесь: http://www.1cpp.ru/forum/YaBB.pl?num=1205929683/15#25
2. cs25 (cs25) 80 23.04.08 16:06 Сейчас в теме
Классная штуковина. Плюсуем !!!
3. 33lab (33lab) 415 23.04.08 18:55 Сейчас в теме

Все класно - только есть маленькое предложение - проверять загружены ли компоненты (1С++ и FormEx) не через

//Если ЗагрузитьВнешнююКомпоненту(Путь+"1cpp.dll")=0 Тогда

а через попытку проверки версии 1С++.. так как компоненты у меня например уже загружены а при открытии обработки выдается сообщение что "Не удалось загрузить компоненту" т.к. обработка вытается загрузить компоненты по указанному в коде пути.
4. Евгений Мартыненков (JohnyDeath) 290 24.04.08 09:27 Сейчас в теме
(3) Спасибо. Перезалил. Кому неохота качть 700 кБ ради исправленных двух строчек, то заменитье процедуру ПриОткрытии() на эту:
Код
Процедура ПриОткрытии()
   Путь="";Имя="";
   РасположениеФайла(Путь,Имя);
   Попытка
      МетаИнфо=СоздатьОбъект("MetaInfoClasses");
      НомВер="";
      НомВерСтр=МетаИнфо.ПолучитьВерсию(НомВер);
      Если НомВер<"3.0.0.0" Тогда
         Предупреждение("Для корректной работы необходимо использовать 1с++ версии не ниже 3.0.0.0",30);
         СтатусВозврата(0);
         Возврат;
      КонецЕсли;
   Исключение
      Если ЗагрузитьВнешнююКомпоненту(Путь+"1cpp.dll")=0 Тогда
         Предупреждение("Не удалось загрузить 1c++ !",20);      
      КонецЕсли;
      Если ЗагрузитьВнешнююКомпоненту(Путь+"Formex.dll")=0 Тогда
         Предупреждение("Не удалось загрузить FormEx !",20);      
      КонецЕсли;
   КонецПопытки;
   
   Попытка      
      ЗагрузитьВнешнююКомпоненту(Путь+"StrMatch.dll");
      оПоиск = СоздатьОбъект("AddIn.StrMatchExtension");   
      оПоиск.ВесЧисел=1;
   Исключение
      Сообщение = "Не удалось загрузить компоненту ""StrMatch.dll""" + РазделительСтрок + "ВНИМАНИЕ! Компонента требует для работы mfc71.dll и msvcr71.dll, проверьте их наличие";
      Предупреждение(Сообщение, 10);
   КонецПопытки;
КонецПроцедуры   // ПриОткрытии
Показать полностью
5. Артур Аюханов (artbear) 867 24.04.08 10:23 Сейчас в теме
(4) Опять не совсем точно.
Загрузку ВК лучше проверять через создание какого-нибудь объекта ВК
.
Код
Функция ЗагрузитьВК(ПутьДллФайла, ИмяОбъектаДляПроверки = "")
   Попытка
      лВремОбъект = СоздатьОбъект(ИмяОбъектаДляПроверки);
   Исключение                   
      Если ЗагрузитьВнешнююКомпоненту(ПутьДллФайла) = 0 Тогда
         Сообщить("Не удалось загрузить ВК "+ПутьДллФайла, "!!!");
         //Сообщить("  Тестирование завершилось неудачей", "!!!");
         Возврат 0;
      КонецЕсли;
   КонецПопытки;
   Возврат 1;
КонецФункции
Показать полностью


6. Евгений Мартыненков (JohnyDeath) 290 24.04.08 10:27 Сейчас в теме
(5) Артур, а в чём неточность?
Вот тут пытается создать объект:
Код
Попытка
      МетаИнфо=СоздатьОбъект("MetaInfoClasses"); 
Показать полностью

Но нам нужно ж не абы какую 1с++, а именно 3.0.0.0, поэтому дальше делаем проверку:
Код
 НомВерСтр=МетаИнфо.ПолучитьВерсию(НомВер);
      Если НомВер<"3.0.0.0" Тогда 
Показать полностью

Хотя и 3.0.0.0 не абы какая нужна, но вы так и не договорились ставить билды на 3.0

Или меня не туда понесло?
7. Евгений Мартыненков (JohnyDeath) 290 24.04.08 10:28 Сейчас в теме
+(6) в 3.0 пока нет никаких новых объектов, которых не было бы в 2.5
8. Артур Аюханов (artbear) 867 24.04.08 15:58 Сейчас в теме
(6) Да я про загрузку ФормЕкс говорю :)
Ведь она также уже может быть загружена ? :)
Причем версии также различаются :)
Поэтому и привел универсальную функцию загрузки ВК
9. Сhe Burashka (CheBurator) 04.05.08 07:10 Сейчас в теме
Зачет! +1
Давно сам такую хотел сделать, ибо нужно часто...
Езе бы прикрутить некоторое усовершенстование, типа на вход через параметры передаем "входной набор" (м.б. элемент справочника, м.б. строка+тип справочника+имя реквизита и т.д.) - на выходе получаем "выжимку" - т.е. похожее на входные данные - тогда 1С++ можно будет продуктивно заюзать вот здесь: http://infostart.ru/profile/174/projects/393/
10. Сhe Burashka (CheBurator) 04.05.08 07:46 Сейчас в теме
"разработчиков компанент", "компанента" - это не от слова "компАния"... ;-)
11. Евгений Мартыненков (JohnyDeath) 290 04.05.08 10:10 Сейчас в теме
(9) мне пока не надо, поэтому: "кто хочет - пусть делает, всё открыто и доступно" ;)
(10) принято
12. Adapter (adapter) 13.05.08 10:15 Сейчас в теме
ну смотрю по функционалу и интерфейсу все как у меня. Только я свою обработку несколько лет назад сделал и без всяких внешних компонент. Поиск может выкидывать слова-паразиты, например ООО, ОАО в контрагентах, можно прерывать выполнение по esc с сохранением результатов. Код открытый, универсальная
http://www.infostart.ru/profile/19126/projects/1732&ref=19126
13. noprogrammer (noprogrammer) 13.05.08 10:56 Сейчас в теме
(12) Adapter - Единственное с чем можно согласится - так это с тем что ваша обработка не использует внешних компонент, так ведь весь смысл данной разработки в использование ВК :) Использование ВК позволяет сделать интерфейс приятнее а скорость работы обработки быстрее (на порядок быстрее имхо)
14. Евгений Мартыненков (JohnyDeath) 290 13.05.08 12:46 Сейчас в теме
(12) да, я видел твою обработку: приятная и без ВК. После того, как я не смог сделать следующее: поменять местами заменяемое с замещаемым, поменять один из заменяемых элементов, перетащить строку вверх, сортировать по различным колонкам и т.д. , решил написать вот это. К тому же, как заметил Костя, скорость работы намного выше! Попробуй. И я не понимаю, почему нельзя загрузить пару ВК?? Лучше сидеть на ущербном интерфейсе и со "встроенной" скоростью? П.С. да, интерфейс и пару идей подсмотрел у тебя ;)
15. Олег Пономаренко (O-Planet) 6681 13.05.08 14:09 Сейчас в теме
(14) А мою по поиску и замене повторяющихся контрагентов видел? ;)
16. Евгений Мартыненков (JohnyDeath) 290 13.05.08 14:31 Сейчас в теме
Нет, не видел. Покажи.
Чем лучше?
17. Евгений Мартыненков (JohnyDeath) 290 13.05.08 16:53 Сейчас в теме
(15) нда, Олег, посмотрел... А ты, видать на мою даже не взглянул. Если бы ты это сделал, то, как мне кажется, не задал бы такого вопроса.
18. Олег Пономаренко (O-Planet) 6681 13.05.08 19:45 Сейчас в теме
Да я без умысла какого. Просто спросил и все. У тебя оно по-любому должно быть круче, потому что ВК хорошие используешь. Я - только стандартными средствами, кое-где приходится просто-таки измудряться. Собственно, меня моя устраивает. Периодически у разных клиентов с ее помощью чищу базенки и забираю мани.
19. Евгений Мартыненков (JohnyDeath) 290 14.05.08 10:06 Сейчас в теме
Да я тож не злорадствовал. ;)
ИМХО, самые большие минусы твоей обработки:
1) не видать статус выполнения, т.е. сколько осталось до конца обработки;
2) неужели ты чистил только "Контрагентов"?!
20. DRY (DRY) 10.11.08 11:11 Сейчас в теме
эх, жаль обработка некорректно работает с другими конфигами( Именно в том справочнике в котором есть дубли по кнопке "Начать сканирование" ничего не происходит. А так конечно крутая штука ;) Спасибо.
21. Евгений Мартыненков (JohnyDeath) 290 10.11.08 11:14 Сейчас в теме
(20) а можешь поподробнее? Пробывал на нескольких конфах - всё работает.
22. DRY (DRY) 10.11.08 12:40 Сейчас в теме
(21) Вообщем парадокс конечно, работает со всеми справочниками кроме одного, который как раз нужен.. объект вроде создаётся, но когда вызывается метод ВыбратьЭлементы() возвращается 0, хотя справочник точно заполнен. Это ошибка НЕ обработки! тут что-то другое, первый раз такое вижу..
23. Евгений Мартыненков (JohnyDeath) 290 10.11.08 12:42 Сейчас в теме
(22) а он, случайно, не подчинен другому справочнику?
24. DRY (DRY) 10.11.08 13:05 Сейчас в теме
25. DRY (DRY) 10.11.08 14:02 Сейчас в теме
огромное спасибо за открытый код! теперь все работает ;)
26. Евгений Мартыненков (JohnyDeath) 290 10.11.08 14:11 Сейчас в теме
27. Елена (Nastena) 17.03.09 13:32 Сейчас в теме
СПАСИБО ОГРОМНОЕ!

И от меня и от начальника ОК
28. Evgeniy (Evgeniy) 82 28.05.09 13:40 Сейчас в теме
Обработка супер, но для полного счастия печати нехватает по дублям:(
29. Евгений Мартыненков (JohnyDeath) 290 28.05.09 14:45 Сейчас в теме
(28) не проблема. Там же все данные в ТЗ хранятся. Нарисуй в каком виде тебе это видится и я прикручу. Если сделаешь мекетик-шаблон mxl вообще замечательно будет ( и тебе и мне ;) )
30. Evgeniy (Evgeniy) 82 28.05.09 15:45 Сейчас в теме
(29) Проблемы нет конечно, просто странно что до сих пор нет такой возможности.
Ну значит счас внесу свой вклад в эту хорошую обработку:)
31. Сергей Ожерельев (Поручик) 3561 28.09.09 11:42 Сейчас в теме
Мдя, хороший пример того, что в восьмёрке можно реализовать штатными средствами без кучи ВК. Впрочем за классную работу плюс.
32. Игорь Иванов (ketr) 82 09.12.09 17:07 Сейчас в теме
скажите пожалуйста, а если у меня 2 одинаковых контрагента (код разный, наименование одинаковое). По обоим были проводки - я смогу удалить одного из них, а на другого перекинуть все движения?
33. Евгений Мартыненков (JohnyDeath) 290 09.12.09 17:09 Сейчас в теме
(32) Да, для этого существует обработка от 1С "RepVal.ert" (замена значений), которая вызывается по кнопке "Замена значений"
34. Ёпрст (Ёпрст) 1017 09.12.09 17:09 Сейчас в теме
(32) сможешь
(31) что именно можно в 8-ке реализовать штатными средствами?
Нечеткое сравнение строк ?
35. Евгений Мартыненков (JohnyDeath) 290 09.12.09 17:13 Сейчас в теме
(31) кстати да, что в 8-ке можно реализовать штатными средствами?
36. Сергей Ожерельев (Поручик) 3561 09.12.09 17:15 Сейчас в теме
(34) Ёпрст! Не поверишь!
В любой туповой конфе есть штатная обработка "Поиск и замена дублирущихся элементов" с настройкой уровня сходства слов и режимом поиска "По похожим словам".
37. Евгений Мартыненков (JohnyDeath) 290 09.12.09 17:15 Сейчас в теме
(32) (в добавлении к вышесказанному)
Эта обработка по сути и создавалась для таких вот случаев, когда Контрагент вроде бы один и тот же, а бухи создали две его копии и каждый выбирает в документах разного, а потом возмущаются: почему у нас не сходится баланс! :D
38. Евгений Мартыненков (JohnyDeath) 290 09.12.09 17:17 Сейчас в теме
(36) Хм.. надо будет посмотреть как там оно внутри.
Спасибо за наводку. Но всё равно сомневаюсь, что она будет работать лучше чем strmatch
39. Сергей Ожерельев (Поручик) 3561 09.12.09 17:17 Сейчас в теме
(35, 34), работает без кучи ВК.
40. Ёпрст (Ёпрст) 1017 09.12.09 17:27 Сейчас в теме
(36) не смотрел..ибо особо снеговиком не увлекаюсь..
41. Ёпрст (Ёпрст) 1017 09.12.09 17:44 Сейчас в теме
+40 Посмотрел.. Рекдостная гадость в снеговике..
42. Ёпрст (Ёпрст) 1017 09.12.09 17:56 Сейчас в теме
+41 "Молоток" и "Молоток красный" ужо никогда не найдет..
43. Илья Васильев (swimdog) 420 09.12.09 23:38 Сейчас в теме
Попробовал удалить лишнюю номенклатуру, совпадение 100%. Нашло много одинаковых элементов, но проставила их так, что repval отказался заменять, говоря что некоторые значения указаны несколько раз. Мне кажется можно сделать так: есть 3 одинаковых товара, для понятности назовем их майка(1), майка(2), майка(3). В первую колонку ставим майка(1), майка(2). Во вторую два раза майка(3). Таким образом repval ругаться не будет. В моем случае товары ставяться так: в первой колонке 2 раза майка(1), во второй майка(2) и майка(3). Программа естественно говорит о нецелесообразности двойной замены одного товара.
П.С. Менять руками очень утомительно, так как номенклатура очень большая.
П.С.(2) У меня есть переписанная версия для замены в операциях документов без перепроведения документов. Если надо, то могу прислать.
44. Евгений Мартыненков (JohnyDeath) 290 10.12.09 09:43 Сейчас в теме
(43) Понимаешь, у тебя частный случай. И таких случаев можно придумать вагон. Поэтому о том что и чем заменять отдано на откуп пользователю. Я так понял, что у тебя в результате сверки получается примерно так:
ЧтоМеняем | На что меняем
______________________________
Майка(1) Майка(2)
Майка(1) Майка(3)

ты же хочешь видеть:
ЧтоМеняем | На что меняем
______________________________
Майка(1) Майка(3)
Майка(2) Майка(3)

Для этого просто тыкаешь в первой строке второй колонке (на Майке_2) и выбираешь Майку_3. Аналогично во второй строке первой колонке.

Мне кажется, что не так уж и трудно.
45. Евгений Мартыненков (JohnyDeath) 290 10.12.09 09:47 Сейчас в теме
Можно, конечно прикрутить что-то типа "буфера похожести" в виде отдельного списка. Будет работать примерно так: при активизации строки "Майка(1) Майка(2)" в этом буфере высвечивается элементы: Майка(1), Майка(2), Майка(3). Затем нужный нам элемент из этого буфера тащим в нужную нам колонку ("ЧтоМеняем" либо "НаЧтоМеняем").
Других вариантов я пока не вижу.
46. Илья Васильев (swimdog) 420 11.12.09 22:21 Сейчас в теме
(44) руками делать не вариант, так как позиций очень много. А случай не частный. Для него достаточно чтобы одинаковых позиций было больше двух. У меня есть идея, если получиться - напишу.
47. Альтаир (Altair777) 635 03.08.10 14:51 Сейчас в теме
Справочник Контрагенты - очень много "ложных" срабатываний. Когда фамилии разные, а ИО одинаковые :)
48. Олег Толстик (drako) 04.05.11 11:44 Сейчас в теме
Отличная обработка и довольно шустро работает. Спасибо.
Было бы еще неплохо добавить в таблицу дополнительное поле с реквизитом справочника, на выбор пользователя, кабы последнему было проще определиться в вопросе "дубль или не дубль". Например для контрагентов: "УНП".
И еще полезна бы была кнопочка быстрой замены местами "что на что меняем".
Еще раз спасибо за обработку.
49. FIZIK FIZIK (FIZIK) 23.09.11 13:57 Сейчас в теме
Давно изобретаю велосипеды, жалею что не наткнулся раньше. Спасибо!
50. Николай Соболевский (snip) 2 20.02.12 19:14 Сейчас в теме
100% совпадение номенклатуры ищет?
и как со скоростью работы?
если справочник номенклатуры порядка 10-12 тыся элементов?
51. Николай Соболевский (snip) 2 20.02.12 19:18 Сейчас в теме
подскажите repval где можно взять?
на диске ИТС имеется?
52. Евгений Мартыненков (JohnyDeath) 290 20.02.12 22:03 Сейчас в теме
(50) Делал давно и с 7.7 уже практически не работаю, поэтому отвечаю "напамять".
100 % совпадение вроде бы ищет, но она не совсем для этого была изначально, т.к. полное совпадение очень просто и намного быстрее найти прямым запросом (или на худой конец встроенным поиском по наименованию).
На выборке в 10-12 тыс. проверить не могу. Лучше один раз скачайте и попробуйте.
(51) repval - да, по-моему на ИТС-е должна быть
53. Дмитрий Васильев (post84d) 25.06.12 12:07 Сейчас в теме
Ребята подскажите пожалуйста такая ситуация -В XP работает все нормально, а в Windows 7 не может загрузить компоненту StrMatch.dll. Библиотеки (StrMatch.dll, mfc71.dll и msvcr71.dll) скопированы как и в XP в system 32? папку Bin в Prog. Files и на всякий случай в Каталог ИБ. Все кто знает подскажите что может быть, буду очень признателен. Заранее всем спасибо.
54. Ёпрст (Ёпрст) 1017 25.06.12 12:15 Сейчас в теме
(53) с правами админа зарегьте вк в реестре
55. Дмитрий Васильев (post84d) 25.06.12 13:03 Сейчас в теме
(54) Ёпрст, спасибо большое за помощь! Выполняю команду regsvr32.exe mfc71.dll - выдает сообщение:
"Модуль mfc71.dll загружен, но не удалось выполнить вызов DLLRegisterServer. Проверьте что mfc71.dll является правильным файлом Dll или OCX и повторить попытку.
ОС- Windows 7 начальная, 32 разрядная. запускаю на нетбуке
56. Ёпрст (Ёпрст) 1017 25.06.12 13:05 Сейчас в теме
mfc71.dll - это что за зверь такой ?
57. Дмитрий Васильев (post84d) 25.06.12 13:37 Сейчас в теме
(56) Ёпрст, Точно не могу сказать для чего именно это библиотека.. - без нее не будет работать StrMatch.dll В описании обработки по которой ведется обсуждение здесь:

Порядок установки:
1. Если у вас нет в папке "{КаталогГдеУстановленаWindows}\System32\" файлов MFC71.dll и msvcr71.dll скопируйте их туда из прикрепленного архива "System32.rar" (необходимы для нечеткого поиска)
58. Ёпрст (Ёпрст) 1017 25.06.12 14:33 Сейчас в теме
(57) регить вк нужно от имени лок. админа (или админа домена)

можешь и ярлык создать с регистрацией и его запустить от имени админа.
59. Ёпрст (Ёпрст) 1017 25.06.12 14:33 Сейчас в теме
или cmd запустить от имени админа и там зарегить
60. Дмитрий Васильев (post84d) 25.06.12 19:53 Сейчас в теме
(59) Ёпрст, Нет разумеется я регистрирую с Админскими правами. Вот и хотел спросить здесь, точно ли можно эти библиотеки применять в Windows 7? в XP работает все без нареканий. Если 100 % работают, то искать в другом месте- может конфликт какай то создается. Еще раз спасибо вам за отклик.
61. Александр Саныч (proger1c81) 26.10.12 19:01 Сейчас в теме
как ограничить поиск дублей? поясню: например у меня наименование состоит из 7 слов, разделенных пробелом. Эта обработка мне показывает дубли даже, когда совпадает только одно слово. Хотелось бы ограничить поиск дублей до различия только в одном двух знаках. Как это лучше сделать? заранее спасибо за ответ.
62. Евгений Мартыненков (JohnyDeath) 290 27.10.12 09:20 Сейчас в теме
(61) "Похожесть" двух строк сравнивает ВК StrMatch.dll. Там наверное так зашито. Степенью похожестью игрались? Если да, то я тут ничем помочь не смогу. Да и 7.7 у меня уже нигде не осталось (
63. Модератор раздела Артур Аюханов (artbear) 27.10.12 10:55 Сейчас в теме
(61) Это фича ВК StrMatch.dll - всегда будет возвращен хоть какой-то коэффициент сходства.
Я лично в подобных задачах выбирал первые N похожих строки (например, 3 или 5) и предлагал пользователю самостоятельно выбрать нужный вариант из этого количества.
64. Александр Саныч (proger1c81) 27.10.12 22:33 Сейчас в теме
(62) JohnyDeath, (63) artbear, спасибо. Я так тоже подумал, что зашито.
65. Яшин Антон (Anyxwar) 106 02.04.13 14:18 Сейчас в теме
Товарищи,кто нибудь использовал данную библиотечку под 64 разрядную винду,к примеру 7,у меня ругается говорит что это версия для 32 разрядной винды?
66. Сергей Зенюков (Sanario) 18 03.10.13 14:16 Сейчас в теме
А почему бы не выложить все это одним файлом в архиве?
67. Евгений Мартыненков (JohnyDeath) 290 03.10.13 14:50 Сейчас в теме
(66) это всё выкладывалось еще в те времена, когда небыло никаких инфо-денег. Попробую переложить. Но ВК StrMatch я где-то на просторах интернета находил. Наверное на проклубе.
68. Евгений Мартыненков (JohnyDeath) 290 03.10.13 15:29 Сейчас в теме
Оставьте свое сообщение