v77. Паинт

v77. 1С:Паинт 🙂
Такая вот игрушка. Без внешних компонент.

История этой игрушки вполне проффессиональная.

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

Могут быть полезными для разработчика присутствующие в модуле матфункции sin, cos и sqrt, написанные средствами только 1С (с применением рядов Тэйлора-Маклорена и последовательности Герона).

37 Comments

  1. serega3333

    только хотел написать «и не жалко времени только» а потом дочитал до конца =) клевый заказчик

    Reply
  2. item

    (1) serega3333,

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

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

    А времени все равно никогда не будет много.

    Reply
  3. smitti911

    С такими заказчиками времени точно никогда не будет много 🙂

    Reply
  4. item

    (3) smitti911,

    Конец этой истории был заранее ясен — тема закрылась за никому_на_практике_ненадобностью.

    А наработки остались.

    Вот, дарю людям улыбки.

    Reply
  5. TrinitronOTV

    русские забавы, однако

    Reply
  6. item

    (5) TrinitronOTV,

    Уточню: бело-русские )))

    Reply
  7. sCHTASS

    Забавна штука. За реализацию, однозначна, плюс!

    Reply
  8. pupkinSana

    Нифига не понял работает ли. Только если выбрать точку тогда двойным кликом появляется мелкий квадратик. А как круг нарисовать? Выбрал в радио окружность, чет никак не получается…

    Reply
  9. item

    (8) pupkinSana,

    Мышой обозначьте радиус и нажмите ENTER.

    Описание:

    Несколько специфическая платформа для паинта требует некоторого навыка рисования.

    Для вывода фигуры на поле необходимо мышкой выделить область для фигуры и нажать ENTER.

    Reply
  10. pupkinSana

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

    Reply
  11. Yury1001

    круто.

    спасибо за высшую математику.

    Reply
  12. item

    (10) pupkinSana,

    Мысль хорошая, но не уверен, что будет просто вычислить координаты ячейки.

    Reply
  13. item

    (11) Yury1001,

    Спасибо за отзыв, Юрий.

    Вот еще, если нужно, корень произвольной целочисленной степени и экспонента:

    //_____________________________________________________________________________
    Функция Pow(Знач Аргумент, Знач Степень = 1) //челочисленная степень, служебный для функции корня
    Результат = 1;
    Для А = 1 По Степень Цикл
    Результат = Результат*Аргумент;
    КонецЦикла;
    Возврат Результат;
    КонецФункции //Pow
    //__________________________________________________________­___________________
    Функция Root(Знач Аргумент, Знач Степень, Знач Точность = 0.000001)
    // х = ((n — 1)х + а/х#k8SjZc9Dxk(n — 1))/n;
    
    Результат = 1;
    РезультатХ = 1;
    ПредРезультат = 0;
    
    Шаг = 0;
    Пока 1 = 1 Цикл
    Шаг = Шаг + 1;
    
    РезультатХ = РезультатХ*Результат;
    
    ПредРезультат = Результат;
    Результат = (Результат*(Степень — 1) + Аргумент/Pow(Результат, Степень — 1))/Степень;
    
    Если Макс(Результат — ПредРезультат, ПредРезультат — Результат) <= Точность Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    //Сообщить(«Root(» +  Аргумент + «)=» + Результат + «,     за » + Шаг + » итераций»);
    Возврат Результат;
    КонецФункции //Root
    //__________________________________________________________­___________________
    Функция Exp(Знач Аргумент, Знач Точность = 0.000001)
    //exp(x) = 1 + x/1! + х#k8SjZc9Dxk2/2!+ x#k8SjZc9Dxk3/3!+ x#k8SjZc9Dxk4/4! -…  ряд Тэйлора-Маклорена
    Факт = 1; // факториал
    АргументХ = 1; // степень аргумента
    
    Результат = 1;
    ПредРезультат = 1;
    
    Шаг = 0;
    Пока 1 = 1 Цикл
    Шаг = Шаг + 1;
    Факт = Факт*Шаг;
    АргументХ = АргументХ*Аргумент;
    
    ПредРезультат = Результат;
    Результат = Результат + АргументХ/Факт;
    
    Если Макс(Результат — ПредРезультат, ПредРезультат — Результат) <= Точность Тогда
    Прервать;
    КонецЕсли;
    КонецЦикла;
    
    //Сообщить(«Exp(» +  Аргумент + «)=» + Результат + «,     за » + Шаг + » итераций»);
    Возврат Результат;
    КонецФункции //exp

    Показать

    Как нибудь доделаю инженерный калькулятор и выложу.

    Reply
  14. pupkinSana

    Да и еще можно руками сделать зерно ячейки меньше заявленного размера. Муторно долго, но можно.

    Reply
  15. item

    (14) pupkinSana,

    К сожалению, Александр, для всей таблицы это невозможно.

    Да и тормозить начнёт страшно.

    Reply
  16. Yury1001

    (14) (15) Значит будем записывать рисунок в bmp (помнится, когда то, чтение делал под DOS – не очень сложный формат) и тут же загружать его в картинку на форме. Только тогда придётся либо подключать ПриДвиженииМыши() как предложил (10) pupkinSana, либо рисовать командами как в автокад :))))))

    Reply
  17. Yury1001

    Шутки шутками, а вот так выглядит bmp картинка 16х16 256 цветов в hex виде

    Reply
  18. item

    (17) Yury1001,

    ))))

    Так недалеко и до 1С:Фотошопа дойти

    Reply
  19. nysysimara

    Прикольная задача, но реализация круче!

    А что задумывалось под снежинкой (Действие=7)?

    Reply
  20. item

    (19) nysysimara,

    Распылитель.

    Лень, однако.

    Reply
  21. Necytij

    Благодарю, за интересный свежачок, идея у заказчика была очень уже нетривиальная!.. ))

    В некоторых случаях слышал люди тоже в 7.7 рисовали, хотя там программа расчет делала раскроя и рисовал в итоге на форме сам алгоритм раскроя, а не человек сам рисовал.

    Reply
  22. arjuna

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

    Reply
  23. item

    (21) Necytij,

    … идея у заказчика была очень уже нетривиальная!.. ))

    Обычное дело. Директор у нас был тот ещё «паяльник», навешает на уши, дескать 1С — это всё,

    что хочешь мол, то и будет. Только купи, мол, сначала компов штук 50, сервер Dell хотя бы один, да сеть в пару километров протянем, да WiFi и GPS в каждый трактор, а потом придут наши хакеры-1с-ники и за недельку-другую всё это свяжут в одно ох.ительное счастье.

    Так что карты полей с диаграммами по бальности и урожайности, это — вообще не вопрос для обсуждения. 🙂

    Reply
  24. item

    (22) arjuna,

    Где смотреть-то?

    Reply
  25. nurislam

    Замечательно!

    Reply
  26. roa4ik

    Очень интересная вещь

    Reply
  27. soba

    До чего ж заказчики ушлые бывают 🙂 Нуда ладно- любой каприз за ваши деньги 🙂 Автор молодец!

    Reply
  28. serpisal

    Интересное решение, автору плюс! , также интересно, сколько еще версия 7.7. будет популярна, и сколько времени все возможные вещи для нее будут писать. Понимаю когда заказчику необходимо, но ради интереса ведь еще много всего делается для 7ки. НЕ представляю что будет, когда управляемые формы будут на пике популярности.)

    Reply
  29. Il

    За труды однозначно +

    Reply
  30. Seven2000

    А как же на практике? люди его реально применяли?

    Reply
  31. item

    (25) nurislam,

    (26) roa4ik,

    (27) soba,

    (28) serpisal,

    (29) Il,

    Спасибо, друзья, за высокую оценку.

    (30) Seven2000,

    До практики дело не дошло, осталось только в черновиках, да и то в другом варианте.

    Рабочий вариант предполагал сохранение/загрузку данных в справочник «поля» (неограниченную строку), где каждому элементу был назначен свой цвет, и выбор цвета для рисования был совмещен с выбором элемента из справочника.

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

    Reply
  32. Serj1C

    (17) в BMP сохранять не сложно. Вот пример на восьмерке http://infostart.ru/public/77713/

    он тоже паинт, только не интерактивный

    Reply
  33. hackerk700

    интересно . автору плюс

    Reply
  34. trioka

    жуть какая. мне бы так.!

    Reply
  35. alexpvs

    Плюс заочно, давно хотелось увидеть подобный функционал в 7.7!

    Reply
  36. yoyoman

    И правда очень любопытная обработочка) под 8-ку есть что-нибудь подобное?

    Reply
  37. item

    (36) yoyoman,

    у меня нету

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *