1С, arduino, http и никаких внешних компонент

26.04.15

Интеграция - Периферийные устройства

Подключение к 1С любого оборудования с помощью ардуины, по локальной сети. Отправка команды, её обработка и получения ответа по хттп.

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

Наименование Файл Версия Размер
1.rar
.rar 838,84Kb
19
.rar 838,84Kb 19 Скачать

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

Начнём, как обычно, с ардуины, нам понадобится:

1. Контроллер ардуино уно (мега, нано или другая), которую можно приобрести на ебее рублей за 500 или нелицензионный китайский аналог за 130 рублей, как у меня.

2. Сетевой шилд.

3. Периферия, в статье рассмотрим реле.

4. Среда разработки http://arduino.ru/Arduino_environment.

Для работы с сетью нам понадобится специальная библиотека. Не все библиотеки подходят ко всем шилдам, я подобрал самую универсальную, но с довольно скудным функционалом, нам его в принципе хватит (файл приложен к статье)

После распаковки, подключаем обе библиотеки (etherShield, ETHER_28J60) к нашей студии. У меня в версии 1.0.5 это делается через меню "Скетч". Способов связи по сети много, мы выберем самый простой, отправка запроса для загрузки сетевого ресурса. IP ардуины: 192.168.1.17 , запрос будет следующим: 192.168.1.17/1  - 1 это ресурс, который мы хотим загрузить, ардуина будет воспринимать его как команду (1- выключить, 2 - включить). В ответ на такой запрос сервер отправляет хтмль код страницы, код нашей страницы будет состоять из одной цифры (0,1 или 2) - 1С будет воспринимать его как ответ о выполнении.

После подключения библиотек прошиваем контроллер следующим скетчем:

#include "etherShield.h"  // подключаем библиотеки
#include "ETHER_28J60.h"
 
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x25}; // мак адрес устройства  
static uint8_t ip[4] = {192, 168, 1, 17};  // айпи адрес                    
static uint16_t port = 80;  //порт на котором ардуина ожидает наше подключение                                  
 
ETHER_28J60 ethernet; // создаём обект сервера
 
void setup()
{ 
  ethernet.setup(mac, ip, port); // инициализируем наш сервер
  pinMode(7, OUTPUT);             // к 7 пину подключено реле, назначаем его для вывода 
}
 
void loop()
{
  char* params;                              // переменная для хранения полученного запроса
  if (params = ethernet.serviceRequest())    //Если чтото пришло, то считываем и выполняем код
  {    
    if(params[0] == '1'){   // Если пришла команда 1 то ...
     digitalWrite(7, LOW);   // выключаем реле
    ethernet.print("1");   // отправляем ответ "1"
    }
    else if(params[0] == '2'){   // иначе если пришла команда 2 то...
     digitalWrite(7, HIGH);       // включаем реле 
    ethernet.print("2");         // отправляем ответ "2"
    }
    else{                        // если пришло чтото другое то...
    ethernet.print("0");           // отправляем ответ "0"
  }   
  
    ethernet.respond();           // отправляем
  }
  
}

Реле подключаем как видно на фото (Vcc - 5v, Gnd - gnd, ctr -7 пин), да чуть не забыл,  пины 4, 10, 11, 12, 13 используются контроллером для связи с сетевым шилдом, так, что ничего к ним не цепляем.

Наша ардуина готова, в браузере можно открыть пустую страницу, и набрать в адресной строке 192.168.1.17/2  - реле должно включиться и вернуть ответ "2", 192.168.1.17/1 - выключиться и вернуть ответ "1". 

 

Приступаем к 1С. Если на ардуине работа с сетью сложнее, чем с ком портом, то со стороны 1С наоборот - проще. Для связи будем использовать HTTPСоединение.

Синтаксис:

Новый HTTPСоединение(<Сервер>, <Порт>, <Пользователь>, <Пароль>, <Прокси>, <Таймаут>, <ЗащищенноеСоединение>)

Из всех возможностей нам понадобится только Сервер и Таймаут, Сервер - наш айпи адрес и порт (192.168.1.17:80), Таймаут - время ожидания ответа (в секундах), проще говоря, сколько секунд будет висеть 1С, если с сетью что-то случится  и ответа не будет.

Код функции 1С:

        АП = "192.168.1.17:80"; // Наш IP адрес и порт, если порт 80 то можно не указывать
	Команда = 1 // команда 1 - выключить, 2 - включить	
	
	Соединение = Новый HTTPСоединение(АП,,,,,3);  // Цифра 3 - таймаут
	Заголовки = Новый Соответствие();
	Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=Windows-1251");
	Запрос = Новый HTTPЗапрос("/" + Команда , Заголовки);
	ОтветСервера = Соединение.Получить(Запрос);          // Ответ от контроллера
	Ответ = ОтветСервера.ПолучитьТелоКакСтроку();    // переводим в строку и получаем код странички

Вот и всё, теперь мы можем управлять устройствами, находящимися где угодно.

Ооо, под рукой у меня оказался ещё ультразвуковой датчик расстояния... ну что ж,  дополним наш скетч работой с ним. На стороне 1С ничего не изменится, только появится новая команда "3" - для измерения расстояния.

УЗ подключаем так: vcc - 5 пин(Либо к 5 вольтам), Gnd - Gnd, Trig - 2 пин, Echo - 3 Пин.

Всё, что я добавил в скетч, пометил // !!!!!!!!!!!!!!!!!!!!!!!!!. Теперь он может работать и с реле, и с УЗ датчиком расстояния

#include "etherShield.h"  // подключаем библиотеки
#include "ETHER_28J60.h"

  const int Trig = 2; // !!!!!!!!!!!!!!!!
  const int Echo = 3;  // !!!!!!!!!!!!!!!!!
   unsigned int time_us=0;  // !!!!!!!!!!!!!!!!!
   unsigned int distance_sm=0;  // !!!!!!!!!!!!!!!!!
   
static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x25}; // мак адрес устройства  
static uint8_t ip[4] = {192, 168, 1, 17};  // айпи адрес                    
static uint16_t port = 80;  //порт, на котором ардуина ожидает наше подключение                                  
 
ETHER_28J60 ethernet; // создаём объект сервера
 
void setup()
{ 
  ethernet.setup(mac, ip, port); // инициализируем наш сервер
  pinMode(7, OUTPUT);             // к 7 пину подключено реле, назначаем его для вывода 
  // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  pinMode(5, OUTPUT);   // так как на уно 5 вольтовый пин один и он занят реле, а УЗ потребляет мало  
  digitalWrite(5, HIGH);// назначаем 5 пин  для постоянной подачи 5 вольт
  pinMode(Trig, OUTPUT); 
 pinMode(Echo, INPUT); 
 //!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
 
void loop()
{
  char* params;                              // переменная для хранения полученного запроса
  if (params = ethernet.serviceRequest())    //Если чтото пришло, то считываем и выполняем код
  {    
    if(params[0] == '1'){   // Если пришла команда 1 то ...
     digitalWrite(7, LOW);   // выключаем реле
    ethernet.print("1");   // отправляем ответ "1"
    }
    else if(params[0] == '2'){   // иначе если пришла команда 2 то...
     digitalWrite(7, HIGH);       // включаем реле 
    ethernet.print("2");         // отправляем ответ "2"
    }
    // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    else if(params[0] == '3'){   // Если получили команду "3" то ....  
       digitalWrite(Trig, HIGH); // Подаем сигнал на выход микроконтроллера
      delayMicroseconds(10); // Удерживаем 10 микросекунд
      digitalWrite(Trig, LOW); // Затем убираем
      time_us=pulseIn(Echo, HIGH); // Замеряем длину импульса
      distance_sm=time_us/58; // Пересчитываем в сантиметры
      ethernet.print(distance_sm); // возвращаем расстояние в сантиметрах
    }
     // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    else{                        // если пришло чтото другое то...
    ethernet.print("0");           // отправляем ответ "0"
  }   
  
    ethernet.respond();           // отправляем
  }
  
}

Готово, отправив команду 3, получим расстояние в сантиметрах. Команду также можно отправить из браузера (192.168.1.17/3).

К статье прикладываю библиотеки, внешнюю обработку и драйвер (CH341SER) для дешёвых китайских контроллеров как у меня, для официальной ардуины он установится вместе со студией. К сожалению, дать бесплатный доступ для скачивания файлов сайт не позволяет, поэтому кто не имеет премиум акк - гуглит на хабре в интернете по ключевым словам для поиска этой статьи в другом месте :).

 

ПС: Часть материалов взята с просторов интернета.

ардуина arduino 1С подключение оборудования 1С и Ардуина http никаких внешних компонент

См. также

Распознавание номеров автомашин с ip - камер, видео, фото

Распознавание документов и образов Периферийные устройства Автомобили, автосервисы Россия Платные (руб)

Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.

20400 руб.

31.05.2023    3802    2    1    

3

Получение изображения с веб-камеры с возможностью его кадрирования по произвольной области

Инструментарий разработчика Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Внешняя обработка получения изображения с веб-камеры с возможностью его кадрирования по произвольно выделенной области. Использует собственную внешнюю компоненту на основе библиотеки AForge. Содержит примеры интерактивного взаимодействия с полем HTML.

20.03.2024    324    1    AndSem    1    

3

У.дача каждому 1С-нику или Умный дом для ленивых (зачеркнуто) пытливых

Робототехника и умный дом (Arduino, NFC, RFID) Бесплатно (free)

Обладая минимальными навыками инженера, вполне можно сделать «умными» относительно недорогие устройства, и управлять всей логикой на 1С. Возможности огромны: управление светом, включением-выключением розеток, автополив, сигнализация и т.д. О самостоятельной реализации в 1С нестандартной логики управления устройствами пойдет речь в статье.

29.02.2024    1937    atland    6    

25

Прямая печать на принтерах TSC из 1С

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Прямая печать на принтерах TSC из 1С при вызове с сервера позволяет печатать из тонкого клиента, мобильного клиента и веб-клиента. Потребуется установка драйвера и библиотеки для отправки команд на этот драйвер.

1 стартмани

19.02.2024    533    3    realslavyan    0    

5

HotKeys на Python для 1С

Периферийные устройства Конфигурации 1cv8 Бесплатно (free)

Недавно прочитал статью на Инфостарте о KeyPad и вначале захотел себе такой, но через какое-то время я понял, что дополнительная даже маленькая клавиатура занимает место, и нужно все время держать ее под рукой. Это все создает дополнительные неудобства.

20.12.2023    4931    John_d    25    

70

Очистка очереди печати конкретного принтера

Периферийные устройства Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Очистка очереди печати выбранного принтера, перезапуск службы печати, вывод списка системных принтеров, открытие свойств принтера из 1С.

1 стартмани

07.11.2023    1257    1    vsnazarov    1    

26

Печать этикеток на DYMO LabelManager 280 через DYMO Connect Web Service

Периферийные устройства WEB-интеграция Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

На сайте производителя принтера DYMO LabelManager 280 вместе с драйвером поставляется пакет DYMO Connect, который предлагает функционал вёрстки этикеток в фирменном формате и отправки их напрямую на принтер. Так же в этом пакете есть веб-сервис для взаимодействия с принтером через HTTP-запросы, о котором и пойдет речь в этой статье.

29.08.2023    1459    GeraltSnow    0    

3
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. delete 253 26.04.15 06:48 Сейчас в теме
Крутизна!
Осталось придумать как это использовать)
Можете подкинуть примеров?
DrAku1a; sasha777666; +2 Ответить
2. sasha777666 321 26.04.15 09:46 Сейчас в теме
(1) delete, Автоматизировать систему въезда на склад, клиент подъехал - показал накладную сканеру - 1с обработала, если пустить то - включила лампочку возле специально обученного человека, который нажмёт кнопку открытия ворот.
3. TODD22 18 26.04.15 12:46 Сейчас в теме
(2) и в чём тут автоматизация?
Подъехала машина. Показала бумажку специально обученному человеку. Он её отсканировал, 1С показала что всё нормально. Он проехал на склад.
Зачем промежуточное звено в виде ардуины и лампочки?
4. sasha777666 321 26.04.15 13:28 Сейчас в теме
(3) TODD22, Специально обученному человеку необязательно быть компетентным в области 1С... загорелась зелёная лампочка - нажал кнопку открыть ворота, красная - кнопку закрыть!
13. dddxddd 28.04.15 10:41 Сейчас в теме
(3) TODD22, У того кто нажимает кнопку для проезда на склад, по определению не должно быть 1С. Вот вам и ответ.
19. allegrosoft 52 29.04.15 09:35 Сейчас в теме
(1) Вот поделка на ардуино http://www.youtube.com/watch?v=vCrjyyXMd58, если это еще совместить с 1С, может получиться интересный продукт.
25. spectre1978 60 04.10.20 17:51 Сейчас в теме
(1) "Чистую" ардуину в основном можно применять только чтобы смакетировать что-то. Потому как нет корпуса, нет работы с промышленными низковольтными напряжениями, такими как 24В, нет оптической развязки входов-выходов и они даже не подтянуты на землю там где надо. Все придется колхозить самостоятельно на соплях, это не промышленная система. Если есть желание делать что-то реальное именно с применением ардуиновских скетчей, то гуглите Controllino (controllino.biz, inoplk.ru/info/).
Но это все мелочи. Автору однозначный плюс, потому что тема связи 1С со сторонним оборудованием освещена не очень хорошо и любая статья на эту тему достойна похвалы.
user1464234; +1 Ответить
5. flyer 231 26.04.15 18:12 Сейчас в теме
вот пример можете обсудить:

делал прогу для бильярдной. попросили доработать возможность включения света над столом в момент его бронирования. но времени не было что то придумать а с ардуино можно что то предложить им.
eugeniezheludkov; sasha777666; +2 Ответить
6. TODD22 18 26.04.15 20:58 Сейчас в теме
(5) flyer, как то сталкивался с задачей управления подачей воды и света в сауны. Оплаченное время вышло отключалась подача воды и освещение переключалось на дежурное. Но для этого купили уже готовую систему. Но как вариант можно было и на ардуино сделать. Но раз есть готовая то не стали изобретать велосипед.
7. sasha777666 321 27.04.15 00:31 Сейчас в теме
(6) TODD22, во сколько обошлась готовая? кран с сервоприводом включайющий/выключающий стоит от 300 руб... за 1000 можно взять с возможность регулирования напора
8. TODD22 18 27.04.15 05:53 Сейчас в теме
(7) Не я закупал. Цен точно не скажу. Но этот вариант явно лучше чем пилить свои костыли на ардуинах, контроллерах и тд. Там уже всё в сборе, всё готовое.
Я сам электронщик по образованию. Но заниматься изобретательством времени нет. Тут всё готовое, подключай и настраивай.
9. sasha777666 321 27.04.15 06:34 Сейчас в теме
(8) TODD22, Это уже дело каждого, что использовать, ты сэкономил время, другой бы сэкономил финансы организации)) Своя система всегда более совместима, так, что в части "Костыли" не согласен.
10. TODD22 18 27.04.15 07:19 Сейчас в теме
(9) Учи экономику организации!!!!
Если сэкономил финансы организации значит ты это сделал за свой счет. Это напоминает "велосипедистов" которые всё пишут сами вместо того что бы купить готовый продукт.

Ну вот прикинь несколько человек затратили много человеко часов на создание программы(системы и тд не столь важно). Затем они проводили опытную эксплуатацию выявляли ошибки, делали доработки. Повышали качество, производительность, улучшали функциональность. И теперь продают свой продукт за n рублей.

Если ты садишься делать всё сам то ты должен затратить очень много времени. Ну если есть желание работать много и бесплатно то можешь и сэкономить финансы.
А так твою работу то же нужно оплачивать. И затратишь ты не мало времени. К тому же никто не застрахован от выбора неверного пути реализации. И потом придётся переделывать.

Я так предполагаю ты не работал над системами сложнее соединения ардуино и 1С. Когда поработаешь над чем то более сложным. Состоящим не из 100 строк кода и китайской ардуины приходи делись опытом. Подискутируем на эту тему.

Своя система всегда более совместима, так, что в части "Костыли" не согласен.

Совместима с чем? С водопроводной трубой?

И если следовать твоей логике то и ардуино нужно не покупать, а спаять самостоятельно из деталей.
Vasvas05; pashoid; vasyak319; Рамзес; Mortiferus; 13jaguar; hrip; John_d; ololoanonim; zqzq; +10 5 Ответить
11. sasha777666 321 27.04.15 07:26 Сейчас в теме
(10) TODD22, :) это тебе не игровой форум с школьниками... на этом подытожим дискуссию.
12. eugeniezheludkov 43 28.04.15 01:35 Сейчас в теме
(10) TODD22, Иногда велосипедостроение это хорошо!
Плюсы:
+ это альтернативное решение
+ в итоге увеличивает конкуренцию, а значит снижает цену и повышает качество в этой (скудной) нише на рынке
+ в велосипеде есть возможность обхода некоторых подводных камней если иметь опыт работы с конкурентами, и реализовать некоторые блоки быстрее выше сильнее
+ если компания поверила в вас и доверила вам создание велосипеда, вы прокачиваете свой опыт, что в дальнейшем сказывается и на вашей прибыли.
Минусы:
- необходимо напарываться на те же грабли, что и предшественники.
- время - это очень важный ресурс для компаний (даже больше чем финансы). велосипед строится дольше чем интегрируется готовое решение (если нет четкого ТЗ конечно же)

ПС: а если по теме то я б использовал ESP8266: плата меньше по размерам, цена всего 1$ если заказать оптом. есть встроенный wifi,linux,lua,nodejs + arduino ide уже их поддерживает как родные т.е проекты с ардуинки можно просто перекомпилить.
pwn; volokitinac; Maxilucky; DanMan; RomanMartynenko; fire1306; allegrosoft; dddxddd; +8 Ответить
14. dddxddd 28.04.15 10:47 Сейчас в теме
(10) TODD22, Своя система всегда лучше совместима с требованиями бизнеса для которого она делалась, правда только в том случае, если эта система была доведена до нормального рабочего состояния.
Ну и потом, никто не доказал, что покупные изделия, не страдают болезнями недоделок и не штатной работы...
myjob1c; RomanMartynenko; Tavalik; 13jaguar; sasha777666; +5 Ответить
15. TODD22 18 28.04.15 11:10 Сейчас в теме
(14) dddxddd,
Своя система всегда лучше совместима с требованиями бизнеса для которого она делалась, правда только в том случае, если эта система была доведена до нормального рабочего состояния.

Разговор в первую очередь начался с "экономии финансов".

Вот я когда такое слышу у меня сразу возникает вопрос: "Тогда за чей счёт делаем?" Где экономия?
Труд разработчика то же нужно оплатить. Это же затраты времени. Хорошо когда есть тот кто сделает всё бесплатно.

Но последнее время что то таких всё меньше и меньше... За бесплатно только студенты работают... что бы опыт получить. Но качество, сроки и функциональность того что они делают оставляет желать лучшего.
16. friend0 28.04.15 16:07 Сейчас в теме
(15) TODD22, если человек сидит на окладе, то оплата одинаковая независимо от того что он делает или не делает. А вот как получить от этой оплаты максимум "пользы" для бизнеса - это отдельная тема. И я вполне допускаю, что всякие мелочи типа ардуины могут быть локальным максимумом.

По части же готовых решений (особенно когда касается 1С) зачастую то что есть пересекается с тем что нужно весьма слабо, да и то что есть "сделано студентами".
13jaguar; sasha777666; +2 Ответить
18. dddxddd 29.04.15 09:03 Сейчас в теме
(15) TODD22,
Разговор в первую очередь начался с "экономии финансов".

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

Но последнее время что то таких всё меньше и меньше... За бесплатно только студенты работают... что бы опыт получить. Но качество, сроки и функциональность того что они делают оставляет желать лучшего

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

(4) Спасибо за идею, вот прямо сейчас, по вашей статье, студент лепит на ардуино, временную замену сгоревшему "фирменному" контроллеру шлагбаума и той самой ЛАМПОЧКЕ, которую тоже надо зажигать в нашем случае.
Умение нестандартно мыслить и использовать совместно два продукта, вроде как друг для друга не предназначенные - умение, доступное не каждому.
20. karapuzzzz 63 29.04.15 10:18 Сейчас в теме
(10) TODD22, Вор с этим выражением вообще не согласен:
Если сэкономил финансы организации значит ты это сделал за свой счет.

Сэкономить можно:
    На бренде
    На лишнем функционале готового решения
    На заложенной в стоимость гиперприбыли как желания разработчиков
    На необходимости все-равно тратить время на работу напильником. Дешевле сделать ремонт, имея голые стены
    На необходимости тратить время на поиск поставщиков, проведение тендеров, тестирование экземпляров

А нормальное руководство часть сэкономленных средств выдает отличившемуся сотруднику в виде премии.
22. vic_ol 29.04.15 23:49 Сейчас в теме
(10) TODD22, Линус Торвальдс тогда тоже "велосипедист". И что этот студент, и к тому же бесплатно, стал 25 лет назад разрабатывать свою ОС, когда можно было купить что-нибудь из *nix-ов или Windows(Dos)? ( без пафоса и аналогий, просто вспомнилось)
Автору спасибо! Статья из категории - "это именно то что мне нужно. Просто и удобно. И как я сам до такого не додумался... "
17. yermak 51 29.04.15 09:00 Сейчас в теме
Если бы изготовление вещей на Ардуинке занимало много времени, я бы еще понял весь этот флейм, но там всем очень просто и делается достаточно быстро, причем граблей не так уж и много. Автора однозначно поддерживаю за идею, а в его защиту так же могу сказать следующее:
1. своя разработка всегда более точно удовлетворяет потребности
2. найти стороннюю разработку бывает достаточно трудно, не говоря уже о организации которая ее внедрит, и стоить это может намного дороже.
voneska7; sasha777666; fire1306; dddxddd; +4 Ответить
21. dim369 29.04.15 17:33 Сейчас в теме
Всем привет!
Я поражаюсь узколобости некоторых товарищей.

Вы не допускаете мысли, что на форуме могут быть профессиональные разработчики систем контроля доступа? Или систем управления электропитанием? Да чем угодно, что нужно подключать к периферийному оборудованию.

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

Почему бы таким разработчикам не воспользоваться данной методикой?

Автору респект!
RustIG; mkhm1968; yarsort; RomanMartynenko; +4 Ответить
23. yarsort 140 30.04.15 15:46 Сейчас в теме
(21) dim369, Я тоже так считаю. Иногда даже такие простые решения кому-нибудь могут сєкономить время и деньги, особенно если лень углублятся в тонкости разработки сложного ПО. Мне понравилось. Возьму на заметку... Автору спасибо!
24. galich 162 10.07.15 13:30 Сейчас в теме
Ура! ) давно мечтал сделать молоточек, нависающий над пользователем и стукающий по макушке, когда в пятнадцатый раз не то вводит )))
TreeDogNight; +1 Ответить
Оставьте свое сообщение