Персональный блог Игоря Антонова aka "spider_net"

Программирование

Подписаться на эту рубрику по RSS

Анонс! Новая статья. Правильная доработка типовых решений от 1С

Анонс! Новая статья. Правильная доработка типовых решений от 1С

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

Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript


Рубрика: Программирование -> JavaScript
Метки: | |
Просмотров: 997
Fuse. Библиотека для реализации неточного поиска на ванильном JavaScript

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

Читать дальше

clipboard.js. Как скопировать текст в буфер обмена без помощи Flash


Рубрика: Программирование -> JavaScript
Метки: | | |
Просмотров: 1541
clipboard.js. Как скопировать текст в буфер обмена без помощи Flash

Иногда возникает необходимость реализовать в web-приложении возможность копирования определенного текста в буфер обмена. Например, вы делаете какой-нибудь форматтер текста (вроде jsonformatter) и хотели бы чуточку облегчить вашему пользователю жизнь, позволив путем нажатия одной кнопки, поместить результат преобразования в буфер обмена. Согласитесь, отличный кейс?! Подобные задачи периодически возникают, но не всегда их удается быстро решить. Для ускоренного внедрения возможности работы с буфером обмена, Zeno Rocha создал замечательный модуль clipboard.js.

Читать дальше

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Не удаляются помеченные на удаление объекты. Ошибка «DeleteObjects(RemovedList, True, FindedItems)».

Продолжаем на работе внедрять новую типовую конфигурацию и столкнулись со странной проблемой. Пометили несколько десятков документов на удаление и решили их полностью удалить. Открываем стандартную обработку (встроенную в платформу) «Удаление помеченных объектов» («Все функции» -> «Стандартные» -> «Удаление помеченных объектов»), выбираем полное удаление и вместо сообщения об успешном удалении получаем ошибку «DeleteObjects(RemovedList, True, FindedItems); по причине «Нарушение прав доступа!».

Типовая конфигурация состоит из нескольких подсистем, разрабатываемыми независимыми компаниями, поэтому первым делом я подумал, что причина в отсутствии прав на удаление определенных объектов. Проверил учетную запись «Администратор» - все роли были назначены, следовательно, проблема не в этом.

Читать дальше

Борьба с медленными запросами в 1С. Типичные проблемы

Борьба с медленными запросами в 1С. Типичные проблемы

На работе часто приходится проводить ревью кода и разбираться с проблемами в стиле «почему же тормозит запрос». Проблемы подобных тормозов чаще всего вызваны не оптимальными запросами к базе. Так уж получилось, что код нашей конфигурации разрабатывается почти 9 лет и за этот внушительный промежуток времени накопились запросы, которые нужно переписать. Они превосходно решают задачи, но при нынешнем объеме базы данных работают не так быстро, как хотелось бы.

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

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

Читать дальше

Испытал matreshka.js в маленьком проекте


Рубрика: JavaScript -> Программирование
Метки: | | | | |
Просмотров: 943
Испытал matreshka.js в маленьком проекте

Как-то я уже рассказывал о JavaScript фреймворке с необычным названием – matreshka.js. Я даже брал большое интервью у автора этого проекта (см. Интервью с автором matreshka.js). С тех пор ничего об этом фреймворке не писал, но это не означает, что я его не использую. Матрешка (так писать проще) хороша там, где нужна легкость и скорость.

Недавно у меня была задача разработать простенький front для мобильного кабинета курьеров. По факту нет ничего сложного, главные требования от заказчика были: сделать быстро и качественно, работать должно шустро даже на не сильно производительных смартфонах. Первую версию я запилил достаточно быстро на ванильном JavaScript. Все протестировали, посмотрели производительность и ко второй версии (потребовалось добавить ряд интересных фич) решил перевести проект на метрешку.

Читать дальше

Не начинайте изучать JavaScript с фреймворков


Рубрика: Программирование -> JavaScript
Метки: | | |
Просмотров: 1815
Не начинайте изучать JavaScript с фреймворков

Сегодня получил письмо от читателя блога с просьбой [strong]посоветовать «хороший» фреймворк для изучения JavaScript[/strong]. Письмо было достаточно длинным, но суть такая: парень не пытался изучать ванильный JavaScript, имеет базовые знания по применению библиотеки jQuery и хочет «прокачать» свои скиллы, изучив один из «крутых» фреймворков. Я начал набивать текст ответа - с подобными вопросами обращались уже неоднократно, но потом решил, что проще ответить сразу всем.

Начну с главного – нельзя стать хорошим разработчиком, начав изучать язык с фреймворка/библиотеки. Первым делом надо изучить сам язык: синтаксис, преимущества, недостатки, проблемы и т.д. Чтобы прочувствовать все выше перечисленное, недостаточно просто прочитать чью-то умную статью. Желательно познакомиться со всем на практике, т.е. выполняя реальные проекты. Пусть это будут маленькие, но все же проекты, решающую реальную задачу. Таким образом, вы сразу сможете понять, какие проблемы решаются выбранным языком программирования наиболее комфортно, а какие нет.

Читать дальше