Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: ТИС Штрих-кодирование документов с помощью ЕАН-128

v7: ТИС Штрих-кодирование документов с помощью ЕАН-128
Я
   tgu82
 
14.03.18 - 16:55
ТИС 7.7
Стоит такая задачка: для учета собранных строк кладовщиками сделать сканирование перемещений и центра в магазины (большие довольно-таки перемещения).
В-принципе сканирование накладных и чеков давно отработано и достаточно было возможностей ЕАН-13. Но для перемещений так не проходит потому что:
1. Надо еще учитывать этаж или ангар (перемещение собирается по этажам - Центральный склад - адресный).
2. Есть такое понятие как печать группового перемещения по нескольким перемещениям сразу (тоже по этажам но строк меньше так как если в одном перемещении есть товар А и в другом тоже есть - то это не две строки сборки а одна).
И вот тут мне не хватает возможностей ЕАН-13.
1 цифра - признак того что это перемещение, 1 цифра (по какой из наших фирм),6 цифр номер, 4 цифры год - всего 12, а мне надо и этаж и как-то сформировать штрих-код если групповая печать перемещений и к тому-же контроль того что кто-то еще раз не сможет отсканировать все это заново и записать себе строки повторно.
Но как бы я с этим разобрался, а вот с тем как штрихкодировать то что больше 12 символов - подзадумался
 
 
   Cool_Profi
 
1 - 14.03.18 - 16:59
А в чём проблема? barcode умеет вроде ка 128 печатать...
   tgu82
 
2 - 14.03.18 - 17:05
(1) А проблема сначала в том как сформировать ШК ЕАН 128 из такой вот строки к примеру : 6,0,123356,2018,653465,2018
то есть здесь два номера перемещения (вариант групповой печати). С ЕАН-13 все просто. Кроме одной цифры что вижу то и получаю. А с ЕАН-128 не знаю. Там же есть какие-то AI и вообще как-то на основе всех симоволов ШК должна под идее контрольная сумма получиться и там еще вроде строку ШК надо в * заключать.
   tgu82
 
3 - 14.03.18 - 17:09
(1) То есть нет у меня (хотя и гуглил) внятного алгоритма формирования ШК ЕАН-128 чтоб потом в обратную сторону мог его обработать.
   mishaPH
 
Модератор
4 - 14.03.18 - 17:09
(0) а чем вам коде 128 не катит?

кроме того если база единая. то не проще ли сделать док задание на... и его номер цифровой 11 символов (12й как признак что это не товарный код) . в доке приписать что угодно и вызывать данные дока по коду?
   mishaPH
 
Модератор
5 - 14.03.18 - 17:10
если не катит - используйте не еан 13 и не еан 128 а CODE 128 который даже символы текстовые можно запихать
   tgu82
 
6 - 14.03.18 - 17:16
(5) ЕАН-13 и ЕАН-8 - прекрасно использую. А вот ЕАН-128 - свойства объекта я задать могу в таблице (ЕАН-128), но как мне мою строку символов в него перевести - не понятно.
Можно конечно пойти по другому пути - создать справочник (нужных мне перемещений примерно 5000 в год) и при записи такого перемещения - его дополнительный номер (код уникальный в этом справочнике) и к нему штрихкод ЕАН-13, но тогда как создать недублирующийся уникальный штрихкод - тоже вопрос и как при этом быть с печатью групповых перемещений. Думать буду
   tgu82
 
7 - 14.03.18 - 17:18
(5) ШК должен начинаться на 6, последовательность остальных 11 символов не должна повторяться никогда, ну а 13-символ считается автоматом по формуле
   uno-group
 
8 - 14.03.18 - 17:52
както Так
//*******************************************

//*********формирование баркода 128**********
//Если параметр цифра возвращает 1

Функция ТипСимв(КодСмв)
    Если КодСмв < 32 Тогда 
        Возврат(1);//Команда

    ИначеЕсли (48 <= КодСмв) и (КодСмв<=57) Тогда 
        Возврат(3);//Цифра

    Иначе 
        Возврат(2);//Буква, знак

    КонецЕсли;    
КонецФункции

Функция Мод(Ч,З)
    Возврат(Ч-Цел(Ч/З)*З);
КонецФункции

Функция БарКод(Вход,БазаМодеС=6)
    АскиБар =                                      
//     0  1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 

    "155515551449485845458494854548584944056416452065425461560506542164524212245605641254614650"+//29

    "11919191108980988109881889018890898001:0928120290:18212211829021281:0122209281:01218290:10"+//59

    "2305<0;0004=0<540=4<1<05<4105<0=441<4=0<14<50=4050<320=04830047407443074434470344704740113"+//89

    "13131100;0838030380;0308380023032203302"//102


    ВыхТ = СоздатьОбъект("ТаблицаЗначений");
    ВыхТ.НоваяКолонка("А",,,,"Аск",4);//Аски код


    //Фильтр пустого входа

    Если Вход = "" Тогда Возврат(""); КонецЕсли;
    
    //Очищаем выход

    ВыхТ.УдалитьСтроки();
    
    Дл = СтрДлина(СокрЛП(Вход));
    
    //Разборки со стартовым кодом

    //Принимаем решение о смене подсистемы кодирования "моде" (А-1, В-2, С-3)

    //Анализируем тип двух первых символов

    ТекСимв = КодСимв(Сред(Вход,1,1));
    ТипТекСимв = ТипСимв(ТекСимв);
    Если Дл > 1 тогда
        СлСимв  = КодСимв(Сред(Вход,2,1));
        ТипСлСимв = ТипСимв(СлСимв);
    Иначе
        ТипСлСимв = 2;
    КонецЕсли;
    Моде = ТипТекСимв;
    Если (ТипТекСимв = 3) и (ТипСлСимв = 3) тогда Моде = 3; КонецЕсли;
    
    //В выходную таблицу добавляем символ старта подсистемы

    ВыхТ.НоваяСтрока();
    ВыхТ.А = 102 + Моде;
    Вых = Симв(64 + Моде);    
    //Анализируем входные символы

    Для Сч = 1 по  Дл Цикл
        ТекСимв = КодСимв(Сред(Вход,Сч,1));
        Если ТекСимв > 127 тогда 
            Сообщить("Символ № "+Сч+ " со значением="+ ТекСимв+" не разрешен в штрихкоде");
            Продолжить;
        КонецЕсли;    
        ТипТекСимв = ТипСимв(ТекСимв);
        
        //Принимаем решение о смене подсистемы кодирования (моде).

        Если ТипТекСимв <> Моде тогда
            Если ТипТекСимв < 3 Тогда
                //Нужно менять моде либо с А на В, либо с В на А

                ВыхТ.НоваяСтрока();
                Если Моде = 1 тогда
                    ВыхТ.А = 100;  //Переключаемся из А в В

                Иначе    
                    ВыхТ.А = 101;    //Переключаемся из В в А

                КонецЕсли;
                Моде = ТипТекСимв;
            Иначе
                //Находимся в моде А или В, встретили цифру.

                //Прикидываем, стоит ли переключаться в МодеС

                //Смотрим на БазаМодеС знаков вперед. 

                //Оптимально, БазаМодеС = 6 (См. описание)

                ДлМ = ?(Дл < Сч+БазаМодеС-1, Дл, Сч+БазаМодеС-1);
                СчЦ = 0;
                Для СчМ = Сч по ДлМ Цикл
                    МодМ = ТипСимв(КодСимв(Сред(Вход,СчМ,1)));
                    
                    //Если цифра - смотрим дальше

                    Если МодМ = 3 тогда 
                        СчЦ = СчЦ+1;
                        Продолжить; 
                    Иначе
                        СчЦ = 0;
                        Прервать;
                    КонецЕсли;
                КонецЦикла;
                //Если нужно переключится в С

                Если СчЦ - БазаМодеС = 0 тогда
                    Моде = 3;
                    ВыхТ.НоваяСтрока();
                    ВыхТ.А = 99;  //Переключаемся из А или В в С

                КонецЕсли;
            КонецЕсли;        
        КонецЕсли;        
        
        //Добавляем очередной символ

        
        //Если символ в МодеС

        Если Моде = 3 тогда
            СлСимв  = КодСимв(Сред(Вход,Сч+1,1));
            ТипСлСимв = ТипСимв(СлСимв);
            //Если входная строка кончается на первой цифре, или 

            //конец входной строки цифра+не цифра

            Если (Сч = Дл) или (ТипТекСимв <> 3) или (ТипСлСимв <> 3) тогда
                //Переключаемся из режима С в режим В

                Моде = 2;
                ВыхТ.НоваяСтрока();
                ВыхТ.А = 100;   
            Иначе
                //Добавляем символ в МодеС

                Если (ТипТекСимв <> 3) или (ТипСлСимв <> 3) тогда 
                    Сообщить("Ош."+ Сч+" "+ ТекСимв+" "+СлСимв);
                Иначе    
                    ВыхТ.НоваяСтрока();
                    ВыхТ.А = Число(Симв(ТекСимв)+Симв(СлСимв));
                    Сч = Сч+1;
                    Продолжить;
                КонецЕсли;
            КонецЕсли;    
        КонецЕсли;
        
        //Добавляем символ в МодеА, или МодеВ

        ВыхТ.НоваяСтрока();
        Если Моде = 1 тогда
            ВыхТ.А = ТекСимв+64;
        Иначе
            ВыхТ.А = ТекСимв-32;
        КонецЕсли;    
    КонецЦикла;
    //Считаем контрольную сумму и формируем баркод

    ВыхТ.ВыбратьСтроки();
    Сум = 0;
    Ном = 0;
    Пока ВыхТ.ПолучитьСтроку() = 1 Цикл
        Если Ном > 0 тогда 
            Сум = Мод(Сум+ВыхТ.А*Ном,103);
            Вых = Вых+Сред(АскиБар,(ВыхТ.А+1)*3-2,3);
        Иначе    
            Сум = Мод(ВыхТ.А,103);
        КонецЕсли;
        Ном = Ном+1;
    КонецЦикла;
    Возврат(Вых+Сред(АскиБар,(Сум+1)*3-2,3)+"@");
КонецФункции
//*******************************************
   uno-group
 
9 - 14.03.18 - 17:54
Шрифт "Barcode"
БарКодСтр=БарКод(ШКод,6);
   tgu82
 
10 - 14.03.18 - 21:32
(9)Спасибо. разбираюсь.
(4) Ну вот префикс у меня не цифровые в документах хотя можно это дело и изменить
 
 Рекламное место пустует
   spectre1978
 
11 - 14.03.18 - 22:05
(0) EAN вам не нужен. Берете CODE128 и заполняете его чем хотите и как хотите, ограничения только физические на размер кода и используемые символы.
   mishaPH
 
Модератор
12 - 14.03.18 - 23:00
(10) (6) вы слишком загоняетесь. полно форматов кодов даже в шатном баркоде.. не понимаю, почему не использовать коде128 А,В,С он предназначен для этого по сути
   Злопчинский
 
13 - 15.03.18 - 01:49
   ADirks
 
14 - 15.03.18 - 08:15
(13) да ну, по моему вариант со справочником, который ты предложил, гораздо лучше. В тот же ЕАН13 можно запихать какую угодно информацию, и на всё хватит.

принцип такой: делаем справочник примерно такой структуры
 - ШК (или в код, или в наименование)
 - ссылка на документ
 - ссылка на фирму
 - ссылка на позицию
 - всё что угодно ещё

Для получения ШК добавляем запись в справочник, заполняем поля, а сам ШК генерим на основе ID элемента. ID в десятеричной системе можно выколупать из строки ЗначениеВСтрокуВнутр(спрШК.ТекущийЭлемент()).
Я ещё первые 2 цифры под префикс отвожу, по которму можно понять, чего это мы такое щас отсканировали. Но можно и без префикса, если получше подумать.
   dmitryds
 
15 - 15.03.18 - 08:57
(2) CODE128, потом для себя пишете, - первые 8 символов - это код склада, следующие 4 - это стеллаж и т.д. Можно завязаться на количество символов или на символ-разделитель (точка с запятой или другой символ).
Делается две функции, одна кодирует по параметрам шк, другая из шк возвращает список значений со всеми параметрами.
   tgu82
 
16 - 15.03.18 - 10:00
(15) Ну правильно, поставлю в свойствах code128 а дальше? Как кодировать чтобы сканер шк это понял. Вот в этом у меня проблема. Я так понимаю что ШК по code128 как-то структурирован и как-то по контрольным суммам проверяется. Чтоб потом я мог его распознанный сканером шк разузловать в список значений.
   Кирпич
 
17 - 15.03.18 - 10:01
ну прилепи два кода
   tgu82
 
18 - 15.03.18 - 10:02
(15) пусть код склада "00001444", стеллаж "0016". Как создать ШК по code128?
   Кирпич
 
19 - 15.03.18 - 10:02
сверху и снизу
   tgu82
 
20 - 15.03.18 - 10:03
(19) А можно подробнее. Никогда с таким не сталкивался. Интересно очень, два кода - это 20 свободных цифр - мне бы хватило с лихвой
   Кирпич
 
21 - 15.03.18 - 10:04
(20) подробнее нету. только что придумал.
   Кирпич
 
22 - 15.03.18 - 10:05
а сверху и снизу - это чтобы два раза один и тот же код не сканировали
   Кирпич
 
23 - 15.03.18 - 10:09
ну или побитно кодируй. первый бит - перемещение или нет и т.д.
два байта на год пойдет, например.
   Кирпич
 
24 - 15.03.18 - 10:10
короче всё влезет и так.
   Кирпич
 
25 - 15.03.18 - 10:28
1 байт - признак того что это перемещение, 1 байт - фирма (255 фирм), 2 байта - номер (65535 номеров), 1 байт год (255 лет), 1 байт - этаж (255 этажей)

6 байт. вроде всё влазит
   Кирпич
 
26 - 15.03.18 - 10:29
можно первые два байта в один запихнуть. у вас же не 255 фирм
   tgu82
 
27 - 15.03.18 - 10:30
(25) Да как сканер это поймет?
   Кирпич
 
28 - 15.03.18 - 10:32
(25) сканер то тут при чем. он число считывает и всё. а ты уже это число кодируй раскодируй как хочешь. можешь рядом со штрихкодом печатать человекочитаемое типа 1,2,56235,18,3
   tgu82
 
29 - 15.03.18 - 10:36
(28) А понял, ты имеешь в виду двоичное исчисление что ли?
   Кирпич
 
30 - 15.03.18 - 10:41
(29) ну типа того. 16 ричное наверное
например 1,2,56235,18,3 будет
01 02 DB AB 12 03
штрихкод будет 1111786983939
   mishaPH
 
Модератор
31 - 15.03.18 - 10:46
(18)
КОд будет такой
W00001444C0016

читаешь код что с W до C код склада, с С до.. след метки еще что то
   Злопчинский
 
32 - 15.03.18 - 10:48
(18) ШК = "00001444#0016"

и не мучай (зачеркунто)сношай нам мозги ;-0
засунь это обычным образом ТОЧНО ТАК ЖЕ КАК ЕАН13 в печатаемый штрихкод и все.
потом считаешь ШК по разделителю вытащишь части если они переменной длины.
   tgu82
 
33 - 15.03.18 - 10:48
(31) Спасибо А почему с W до C а если у меня еще 5 групп чисел - как тогда?
 
 
   Злопчинский
 
34 - 15.03.18 - 10:49
(27) сканеру похрен. он считал набор символов и отдал наружу. все. ему ничего никак понимать не надо. разбор шК сам делаешь
   mishaPH
 
Модератор
35 - 15.03.18 - 10:49
(33) ну разделяй буквами сколько угодно полей

W от слова склад на англ
   mishaPH
 
Модератор
36 - 15.03.18 - 10:50
коде128А это буквенно цифровая комбинация.
   Злопчинский
 
37 - 15.03.18 - 10:53
(33) у себя на складе на самописке я делал так: т.к. инвентаризация паллетных верхов - дело затратное, то на плановой инвентаризации паллеты с товаром считаем БЫСТРО
потому что медленно и тщательно считаем их заблаговременно: когда есть время едет штабелерщик со счетчиком, посчитали паллету, жмак, на принтере шк вылазит этикетка со всякой полезной инфой кто что когда и прочее и штрихкод в виде
АртикулТовара#ШКкороба#КоличествоБазовое. и все. лепят леблу на паллету. на плановой инвентаризации жмак по этому ШК, разобрал на части и зафиксировал
   tgu82
 
38 - 15.03.18 - 10:53
(34) Да не прав ты.
Сканер сканирует белые и черные полосы - так вот чтоб он сканировал ему надо такой ШК напечатать в этих полосах. Я использую для еан-13 и еан-8 баркоде и он мне в печатную форму выдает готовый к сканированию напечатанный штрихкод. И тут все понятно. А вот как баркоде поймет что то что я ему нарисовал - это штрихкод - большой вопрос. Если я неправильно формирую ШК то он просто ничего не напечатает
   tgu82
 
39 - 15.03.18 - 10:55
(37) И какой стандарт ШК ты используешь?
   Кирпич
 
40 - 15.03.18 - 11:01
(38) " Если я неправильно формирую ШК то он просто ничего не напечатает"
ну так ты формируй правильно
   tgu82
 
41 - 15.03.18 - 11:03
(40) Для того что формировалось правильно, должны при формировании соблюдены правила. Для ЕАН-13 и ЕАН-8 я их знаю. А для code128 я их не знаю.
   Кирпич
 
42 - 15.03.18 - 11:04
вот чо вычитал

Коды EAN-8 и EAN-13 используются не только изготовителями, но и продавцами для внутрифирменной маркировки. Особенностью такого кодирования является то, что считывание этих кодов осуществляется только при товародвижении внутри организации. В этом случае коды EAN-8 начинаются с нуля, а EAN-13 c двойки. Крупные торговые фирмы могут сами производить внутримагазинное кодирование.
   tgu82
 
43 - 15.03.18 - 11:05
(42) Спасибо. Да, я об этом знаю. Но с ЕАН-13 и ЕАН-8 нет проблем. Просто мне их длины не хватает, но сейчас я стал смотреть побитное кодирование
   Kondarat
 
44 - 15.03.18 - 11:09
(43) В (31) и (32) тебе уже все разжевали. Не надо тут ни какого побитного кодирования. А чтобы "А вот как баркоде поймет что то что я ему нарисовал - это штрихкод - большой вопрос. Если я неправильно формирую ШК то он просто ничего не напечатает" не случилось задавай своему баркоде правильный тип кода и полосочки он напечатает и сканер эти полосочки поймет.
   tgu82
 
45 - 15.03.18 - 11:14
(44) попробую. просто на еан-13 зациклился, много лет все пашет, а с code128 дел никогда не имел.
   Kondarat
 
46 - 15.03.18 - 11:16
(45) Расцикливайся, там все проще: буквы и цифры. Никаких тебе контрольных символов.
   tgu82
 
47 - 15.03.18 - 11:18
(46) Просто размер штрихкода получается большой, думаем вообще отдельно печатать его на принтере этикеток. ЕАН-13 же компактный
   Кирпич
 
48 - 15.03.18 - 11:26
а code128 может считываться с ошибками чтоли?
   tgu82
 
49 - 15.03.18 - 11:27
(48) А вот не знаю. Может может с ошибками если сильно длинный. Попробую скажу
 
 Рекламное место пустует
   Злопчинский
 
50 - 15.03.18 - 11:28
(39) CODE128 - в зависимости от ситуации A B C
code39 тоже юзаю, но он широкий
.
и нормально все считывается
   tgu82
 
51 - 15.03.18 - 11:33
(50) Что значит в зависимости от ситуации? От чего зависит тип ШК?
   tgu82
 
52 - 15.03.18 - 11:36
(50) Есть же просто code128 без a,b,c
   tgu82
 
53 - 15.03.18 - 12:02
(50) Ну да, понятно. мне бы хватило по идее цифрового кода безо всяких разделителей с фиксированной максимальной длиной
   Кирпич
 
54 - 15.03.18 - 12:07
(53) в EAN-13 не влазит всё таки?
   uno-group
 
55 - 15.03.18 - 12:14
Приведеный мной в 8 код кодирует английский алфавит и цыфры.
В один штрихкод я 25 знаков запихивал вообще непонимаю ваших проблем если место есть под штрих код хоть предложениями пишите.
   uno-group
 
56 - 15.03.18 - 12:19
Кинул в качестве параметра строку из 2 вывел штрих код напечатал отсканировался со всеми запятыми и цифрами. чем полемику разводить может проще попробывать за 2 минуты
   uno-group
 
57 - 15.03.18 - 12:21
по ширине занял 15 см тумаю вполне можно не снижая читабельности уменьшить до 8
   tgu82
 
58 - 15.03.18 - 12:25
(56) Ну да, запятые и не нужны, уж как-нибудь разберу шк
   dmitryds
 
59 - 15.03.18 - 13:18
(58) запятые и т.п. спецсимволы сильно упрощают дело... например сразу в список значений конвертнуть по разделителю... и все.. фиксированный номер элемента означает фиксированный тип значения и не надо заниматься подсчетом количества символов.
   Злопчинский
 
60 - 15.03.18 - 16:37
развели бодягу
   tgu82
 
61 - 16.03.18 - 09:31
(60) При чем тут бодяга? я всегда понимал так что штрихкод имеет контрольную цифру или что-то в этом роде. И если выбран тип шк и алгоритм его формирования неверен то никакогго ШК не будет напечатано а значит нечего и сканировать. Но вот да, с code128 все несколько по-другому получается
   Кирпич
 
62 - 16.03.18 - 09:41
(61) ага. в code128 можно стадо слонов запихать и ничего ему не будет
   Кирпич
 
63 - 16.03.18 - 09:45
Кстати. Вчера экспериментировал как всё запихать в 12 знаков для EAN13

&НаКлиенте
Функция Код(Зн,знач Байт)
    Р = DecToAny(Зн,16);
    Д = СтрДлина(Р);
    Байт = Байт * 2;
    Если Д < Байт Тогда
        Для а = 1 по Байт - Д Цикл
            Р = "0" + Р;
        КонецЦикла;
    КонецЕсли;
    возврат Р;
КонецФункции


&НаКлиенте
Функция Кодируй(ЭтоПеремещение,Фирма,Номер,Год,Этаж)
    П = ?(ЭтоПеремещение = 1,128,0);
    Р = Код(П + Фирма,1);
    Р = Р + Код(Номер,2);
    Р = Р + Код(Год,1);
    Р = Р + Код(Этаж,1);
    возврат AnyToDec(Р,16);
КонецФункции

&НаКлиенте
Функция ДеКодируй(знач Зн, ЭтоПеремещение,Фирма,Номер,Год,Этаж)
    Зн = Код(Зн,5);
    Б = AnyToDec(Сред(Зн,1,2),16);
    ЭтоПеремещение = ?(Б > 127,1,0);
    Фирма = ?(ЭтоПеремещение = 0,Б,Б-128);
    Номер = AnyToDec(Сред(Зн,3,4),16);
    Год = AnyToDec(Сред(Зн,7,2),16);
    Этаж = AnyToDec(Сред(Зн,9,2),16); 
    Возврат Зн;
КонецФункции
   Кирпич
 
64 - 16.03.18 - 09:46
   Кирпич
 
65 - 16.03.18 - 09:49
но думаю проще и правильнее использовать code128
   tgu82
 
66 - 16.03.18 - 09:51
(64) Спасибо. У меня ТИС 7.7 но в-принципе это не играет роли. Ну да, code128 удобнее намного при условии что он без ошибок читается сканером. Проверяю
   Кирпич
 
67 - 16.03.18 - 09:54
(66) ну в code128 прямо в картнке вставлены контрольные числа, а в EAN13 нужно самому вычислять контрольную цифру. так что всё путём.
   tgu82
 
68 - 16.03.18 - 10:02
(67) Объясни пожалуйста каким образом вставлены контрольные чиссла и что с ними делать. Для ЕАН-13 то все поняятно и работает много лет уже
   Кирпич
 
69 - 16.03.18 - 10:04
(68) ну в википедии всё написано вроде. да и нафиг оно тебе надо. всё работает. просто кодируй и печатай.
   tgu82
 
70 - 16.03.18 - 10:10
(69) Ну чтобы понимать что и почему а не быть бараном :)
   Кирпич
 
71 - 16.03.18 - 10:12
(70) хочешь собственным глазом научиться сканировать? круто.
   tgu82
 
72 - 16.03.18 - 10:19
(71) Да нет, ну есть же длл, значит есть алгоритм работы с ШК. Для ЕАН-13 все понятно, а с другими дела не имел, а теперьп получается понадобилось
   Кирпич
 
73 - 16.03.18 - 10:20
(72) ну как бы всё выяснили уже. какие проблемы то.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует