Помогаторы разработчика 1С

11.01.24

Разработка - Инструментарий разработчика

Всем привет. Данная статья написана по моему выступлению на Infostart Event 2022, на котором я рассказал об инструментах и «лайфхаках», которые использую в своей работе и которые, как мне кажется, помогают сделать работу разработчика 1С проще, удобнее, а главное, эффективней. Возможно, некоторые вещи покажутся вам очевидными или совсем простыми. Но часто я вижу, как разработчики пренебрегают ими, а ведь именно такие «мелочи» и делают нашу жизнь проще.

Кому больше нравится видео-формат, предлагаю посмотреть запись доклада:

 

 

Ну а любителем текста добро пожаловать под кат.

 

О чем статья?

Свой первый код за деньги на платформе 1С я написал в далеком 2008 году и вот уже 15 лет этим и продолжаю заниматься. За это время я побывал, как мне кажется, во всех состояниях типового 1С-ника: от программиста-стажера до начальника отдела разработки. Работал «инхаус» на предприятии, долго проработал в крупном интеграторе. А сейчас занимаюсь продуктовой разработкой.

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

И вот на каких-то таких рассуждениях и родилась идея данной статьи-доклада. Она ориентирована прежде всего на начинающих или, может быть, мидл-разработчиков. Но очень надеюсь, что и матерые зубры 1С-разработки тоже смогут для себя что-то почерпнуть или, более того, расскажут в комментариях о каких-то своих приемах. Итак, поехали!

 

Конфигуратор жив?

Современной и прогрессивной средой разработки в настоящее время считается 1С:EDT. И когда речь заходит про удобство разработки, чаще всего упоминается именно она.

Но и старый добрый конфигуратор все равно не стоит списывать со счетов. Поэтому, уж простите, но каких-то прорывных новых вещей в этой статье, увы, не будет.

Я работаю в том числе и в 1С:EDT, но, признаюсь честно, моим основным и любимым инструментом в работе все еще остается конфигуратор, как, наверное, и для подавляющего большинства разработчиков 1С.

Я всегда работал и работаю с большими конфигурациями типа 1С:ERP, 1С:УХ, 1С:ERPУХ. К сожалению, для них 1С:EDT проигрывает в скорости работы конфигуратору. Кроме того, по работе мне очень часто приходится разворачивать присланные «детешники», сравнивать конфигурации, быстро что-то править и объединять. И ключевое слово здесь «быстро».

Помимо GIT мы работаем и через хранилище конфигураций 1C – я работал в командах 20+ разработчиков, хранилище используем через сервер хранилища конфигураций, разработка идет плотная, каких-то особых проблем не наблюдаем.

Поэтому далее будет грустная статья (надеюсь, что нет) от старовера 1С-ника. Если кого-то разочаровал, прошу прощения.

 

Расширение конфигуратора 1С

Когда речь заходит про удобную работу в конфигураторе, часто вспоминают 2 проекта:

 

 

Первый из них – это Снегопат. Когда-то давно я пользовался им, покупал подписку. Но по ряду причин перестал. Во-первых, работая в интеграторе я 90% времени программировал на серверах клиентов. Там бывает проблематично вообще установить что-то, что не прошло проверку службой безопасности. Также непонятно, как в этом случае соблюдается условие лицензионного соглашения по использованию.

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

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

Но если у вас есть свое стабильное рабочее место, обратите внимание на эти расширения конфигуратора. TurboConf, кстати, работает и в 1С:EDT. У обоих продуктов есть триальные версии для ознакомления.

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

 

Запуск конфигуратора

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

 

 

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

 

 

/N"ОняновВВ" /P"Pass" /ConfigurationRepositoryF"tcp://server/repository" /ConfigurationRepositoryN"ОняновВВ" /ConfigurationRepositoryP"Pass" /TestManager

Можно добавить еще что-то, к примеру флаг TestManager, если вы занимаетесь автоматизированным тестированием. И все, забудем навсегда об этих назойливых окнах. Сохраним список баз и подключим его при входе.

Стоит однако отметить, что такой способ запуска годится только если вы работаете на своей машине, т. к. на терминальных серверах файл с настройками может быть прочитан даже если установить на него настройки безопасности. Но, что более важно, параметры запуска будут отображаться в диспетчере задач в колонке «Путь».

 

Настройка параметров конфигуратора

Итак, конфигуратор запустился. Сразу же переходим на закладу «Сервис» – «Параметры».

 

 

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

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

 

 

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

Многие разработчики пользуются отображением пробелов и табуляций. Тут уже по желанию, конечно. Я пользуюсь. Единственное, я меняю символ табуляции с «ёлочек» на символ «|».

Ну и чтобы не сильно напрягать глаза, ведь работаешь с текстом весь день, я ставлю бОльший шрифт текстов – обычно меняю на 12.

 

 

На вкладке «Модули» - «Редактирование» можно настроить свою цветовую схему для модулей, опять же с тем, чтобы минимизировать нагрузку на глаза.

 

 

Вот несколько примеров взятых из соответствующих статей.

 

 

Кто-то даже пытается использовать темные темы.

 

 

Но в конфигураторе, к сожалению, полностью темную схему сделать никак нельзя, так как все остальное у вас светлое, и это сильно контрастирует.

Многие разработчики используют известную в мире разработки цветовую схему «Solarized», она и вправду очень приятная для глаз. Попробуйте, вот она:

 

 

Но самые главные настрой цветов почему-то запрятаны и отключены.

Если установить цвета для «Текущего идентификатора» и «Выбранного идентификатора», например я ставлю серый и оранжевый:

 

 

То у нас в коде начнут подсвечиваться выбранные идентификаторы. Мне кажется, это есть в всех средах разработки всех языков. Почему у нас это по умолчанию отключено, я не знаю.

 

 

Затем идем в «Прочее» и устанавливаем для этих конструкций серый цвет.

 

 

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

 

 

Кроме того, на данной вкладке в поле «Автозамена» я ставлю «Включить». Как это используется покажу чуть позже. А также ставлю шрифт модулей побольше, также 12. С десяткой за день уж сильно глаза устают.

 

 

Здесь же переходим на вкладку «Группировка».

Наверняка вы знаете, что циклы и условия тоже можно группировать. И почему-то это тоже по умолчанию отключено. Ставим нужные флаги.

 

 

И теперь мы можем сворачивать и разворачивать циклы и условия в модулях. Кажется, что это очень удобно.

 

 

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

 

 

Вот примерно так это сразу выглядит:

 

 

Я этим давно пользуюсь, мне кажется, что так удобнее.

Переходим на закладку «Запуск 1С:Предприятие».

Не все знают, что если в параметрах запуска прописать «РежимОтладки», то там где должны запускаться фоновые задания, они запускаться не будут, а код будет выполняться в том же сеансе.

Это невероятно полезно при отладке, т. к. отладка фоновых заданий – то еще веселое мероприятие. А оказывается, что прописав здесь вот такое заклинание, отладка фоновых превращается… в обычную отладку. Ставлю сразу и навсегда.

 

Работает данный ключ только для фоновых заданий запущенных через подсистему "Длительные операции" БСП.

 

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

Когда-то давно, работая в поддержке мне приходилось часто обновлять доработанные конфигурации наших клиентов, и я пользовался бесплатной, но очень функциональной программной KDiff3. Не утверждаю, что она лучшая. Но по крайней мере она единственная из данного списка может выполнять автоматическое трехстороннее объединение. То есть при обновлении конфигурации поставщика вам вручную нужно будет обработать только конфликты, а все остальные модули объединятся автоматически.

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

 

 

 

Шаблоны текста

Параметры мы настроили, переходим к шаблонам текста. Про них все знают, но мало кто ими пользуется. Но это и понятно: на мой взгляд, шаблоны текста в конфигураторе сделаны крайне неудобно.

Во первых, вызываются шаблоны по не самой удобной комбинации Ctrl+Q. Но ладно, это мы победили поставив в параметрах автозамены значение включить. Теперь шаблоны вызываются сами автоматически после нажатия пробела.

 

 

Но стало не намного удобнее, т. к. теперь выскакивает какое-то окно, где надо что-то выбрать, потом еще одно окно, и еще одно. Эти окна куда-то все время съезжают, поле для ввода маленькое.

 

 

В общем, шаблоны больше бесят, чем помогают.

Я предлагаю в настройке шаблонов отключить совсем все стандартные шаблоны и добавить свои, аналогичные стандартным, но на свой вкус и цвет.

 

 

Это может работать, например, как-то так:

 

 

Горячие клавиши

Следующая, опять таки, всем известная и очевидная вещь – горячие клавиши.

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

Первое время возможно будет неудобно, но со-временем вы выучите все основные комбинации, и работа станет сильно комфортнее.

 

 

В меню есть не все комбинации клавиш, все описаны в справке в соответствующем разделе.

 

 

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

Ну и кроме стандартных для редактора текста комбинаций, про которые тоже не все знают или знают, но не используют, есть и некоторые уникальные, типа Ctrl+«-», Ctrl+Alt+P и т. д.

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

 

Слепой метод печати

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

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

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

 

 

Мультибуфер

Еще один крутой инструмент, который сильно помогает в работе – это мультибуфер. Когда-то я пользовался внешними программами для мультибуфера, их много разных. Но когда данная функция появилась в Windows 10, перешел на нее. Вполне себе удобно.

Называется функция «Журнал буфера обмена», включается в настройках.

 

 

Либо при первом нажатии на комбинацию Win+V. И теперь при нажатии той же комбинации Win+V, появляется окошко, где перечислены 25 последних сохраненных в буфер значений.

 

 

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

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

 

 

Использование внешних обработок

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

Но ведь решается это довольно просто. Практически любую разработку чего-то более-менее серьезного я делаю во внешних обработках.

Достаточно в коде в нужном месте сделать небольшую вставку. Перед этим в редактируемом модуле нажимаем Ctrl+A, Ctrl+C, вставляем весь текст текущего модуля в модуль обработки «ОбработкаДляРазработки.epf» и все, дальше спокойно разрабатываете во внешней обработке. Причем тестируете также все в интерфейсе, но оно сразу же работает с учетом внесенных изменений. Метод подходит для общих модулей, моделей всех объектов, да чего угодно.

Функция РассчитатьПоЗначениямИзмененныхПоказателей(ПараметрыРасчета) Экспорт
	
	//++ Вызов внешней обработки
	Обработка = ВнешниеОбработки.Создать("D:\Temp\ОбработкаДляРазработки.epf");
	Возврат Обработка.РассчитатьПоЗначениямИзмененныхПоказателей(ПараметрыРасчета);
	//--
	
	//...
	
КонецФункции

Даже формы объектов можно разрабатывать во внешних обработках. Тут кода правда чуть-чуть побольше.

&НаКлиенте
Процедура ОткрытьОбраоботку(Команда)
	
	ПараметрыОткрытия = Новый Структура;
	ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтаФорма, ПараметрыОткрытия);
	НачатьПомещениеФайлаНаСервер(ОписаниеОповещения,,,,"D:\Temp\ОбработкаДляРазработки.epf");
	
КонецПроцедуры
	
&НаКлиенте
Процедура ПослеПомещенияФайла(ОписаниеПомещенногоФайла, ПараметрыОткрытия) Экспорт
	
	ИмяОбработки = ПолучитьИмяВнешнейОбработки(ОписаниеПомещенногоФайла.Адрес);
	ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма", ПараметрыОткрытия);
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьИмяВнешнейОбработки(Адрес)
	
	Возврат ВнешниеОбработки.Подключить(Адрес);
	
КонецФункции

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

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

 

Внешние инструменты

Однажды в одном из 1С-ных каналов был опрос среди разработчиков, кто какую консоль запросов использует. И я был очень удивлен увидев, что почти 40% разработчиков используют типовую консоль с диска ИТС. Ведь есть и поудобнее инструменты. Кроме того, помимо консоли запросов есть еще и консоль СКД, обозреватель и редактор объектов, консоль кода и т. д.

И логично, что сообщество разработчиков для себя любимых создало очень много довольно таки удобных инструментов вместо и в дополнении к типовым с ИТСа.

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

 

 

Но у инструментов разработчика есть один существенный минус – ими просто неудобно пользоваться на управляемых формах. Некоторые все же продолжают, но я в какой-то момент начал искать альтернативные инструменты, собирать к себе в папочку какие-то интересные обработки с Инфостарта. В качестве консоли запросов я какое-то время пользовался «Запросником» на управляемых формах. Даже дорабатывал его немного под себя.

 

 

На Инфостарте также есть доработанные версии с раскраской запросов и кода.

 

 

Но уже года два как я плотно перешел на Инфостарт Тулкит. Это набор очень полезных инструментов в одном расширении. Здесь и консоль запросов, СКД, кода, редактор объектов, анализ прав и т. д. Все в одном месте, мне нравится. Это как набор ключей для автомеханика. Или как стиральная машина автомат – быстро привыкаешь, ее не замечаешь, но без нее уже никак. У Инфостарт Тулкит один минус – инструмент сильно платный, но, мне кажется, что своих денег стоит.

 

 

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

Вот список интересных на мой взгляд инструментов:

 

Скриптовые движки

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

Даже в нашем первом примере с запуском конфигуратора – можно пойти дальше и написать скрипт, который запустит конфигуратор, обновит конфигурацию из хранилища, обновит конфигурацию базы данных, запустит предприятие сразу в режиме отладки. И, например, поставить это все в Планировщик заданий Windows где-нибудь на 8 утра. Пришел на работу, а тебя уже ждет открытый обновленный конфигуратор. Можно и дальше продолжить мечтания об автоматизации каких-то рутинных действий, но в этом случае перед разработчиком 1С встает вопрос: а на чем делать всю эту оптимизацию? И у нас есть 2 скриптовых движка: это OneScript и 1С:Исполнитель.

 

 

OneScript замечателен тем, что его синтаксис почти полностью совпадает с синтаксисом платформы 1С:Предприятие 8. Он с такой парадигмой и создавался. Для него и на нем написано множество библиотек и даже готовых инструментов, есть активная поддержка сообщества. Я давно и плотно на нем «сижу».

Ну а 1С:Исполнитель использует язык разработки новой платформы от фирмы 1С – 1С:Элемент. Я, если честно, его не пробовал. Но возможно стоит, чтобы сразу приобщиться к будущим технологиями от фирмы 1С.

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

 

Проверка кода

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

Наверное лучший помощник в этом - это твой же сосед–программист. Я много раз говорил о важности и полезности рецензирования кода. Если ваш код не рецензируют, попросите коллегу сделать это. Это полезно не только из-за того, что другой человек своим свежим взглядом может увидеть то, что вы не заметили. Но и тем, что когда ты знаешь, что твой код будет прорецензирован, ты априори стараешься писать его более качественно, а потом это входит в привычку.

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

Для этого есть специальная конфигурация 1С:АПК от фирмы 1С. Очень советую вам использовать АПК в своей работе. Благодаря ей вы довольно быстро освоите основные стандарты разработки, соберете свою коллекцию шаблонов под эти стандарты, избежите неизбежных опечаток, научитесь оформлять свой код как в типовых решениях. Может не все правила из большого набора типовой поставки АПК вам подойдут, но тут можно договориться с командой и какие-то правила отключить или наоборот, добавить свои. Логика проверки здесь пишется на том же языке платформы 1С, это удобно. Есть плагин АПК-2 и для 1С:EDT.

Ну и стоит сказать, что для решения этой же задачи уже есть несколько плагинов для проверки 1С-ного кода на платформе SonarQube. Можно найти несколько публикаций на эту тему. Правда порог входа, как мне кажется, здесь уже повыше. А новые правила пишутся на языке Java.

Эти два инструмента - плагины для SonarQube и 1С:АПК, не заменяют друг друга, а скорее дополняют, т. к. для 1С-ного сонара имеющиеся наборы правил несколько отличаются от АПК-шных.

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

 

 

Физическая культура

Ну а от культуры написания кода мы внезапно переходим к культуре физической.

Наша профессия вроде как не считается вредной (всего 2-ой класс), однако все мы знаем, к чему приводит долгое сидение за компьютером.

Это и проблемы с сердечно-сосудистой системой, со зрением, боли в спине и суставах (те же колени), лишний вес. Там же плохое подавленное настроение и проблемы со сном. Да вы и так все это знаете.

 

 

Но мы с вами здесь же говорим про разработку и продуктивность, так? Есть куча исследований о том, как качество нашего отдыха влияет на нашу продуктивность следующего дня. А хуже отдыха, чем проводить время опять за компьютером, для программиста придумать сложно. Да это и не отдых строго говоря. Из-за венозного застоя в шейных позвонках в течении дня мозг и так не получает достаточного питания тем же кислородом, продолжая активно работать. И вместо восстановления вы его вечером добиваете. Это приводит к мигреням, утомляемости, раздражительности, плохому настроению, проблем со сном и питанием. То же самое про другие органы. А дальше все это катится как снежный ком.

 

 

Что делать – известно. Все мы слышали про рекомендации делать перерывы в работе и зарядку для глаз. Есть специальные программы-напоминалки и все такое. Но когда я погружен в работу, мне все это только мешает и раздражает. Сколько не пробовал – ничего не прижилось.

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

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

Ну и раз уж мы заговорили про сон.

 

Сон

Я считаю сон – чуть ли не главным «помогатором» разработчика. У нас сейчас культ работы и какой-то личной продуктивности, и все это часто в ущерб сна. И это большая проблема, т. к. недостаток сна очень сильно сказывается на нашем здоровье и той самой продуктивности.

 

 

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

 

 

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

 

 

Какими бы крутыми инструментами вы не запаслись, какой бы удобной не была ваша IDE, если вы пришли на работу не выспавшимся зомби, рабочий день считай пропал. О какой-то эффективности или продуктивности тут говорить вообще не приходится.

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

Возможно вот эта литература сможет вам помочь.

  • Мэттью Уолкер – «Зачем мы спим. Новая наука о сне и сновидениях»

  • Шон Стивенсон – «Здоровый сон. 21 шаг на пути к хорошему самочувствию»

  • Андрей Курпатов – «10 рецептов хорошего сна»

 

Состояние потока

Ну и наконец, переходим к TOП 1 моего списка.

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

Уже позже я узнал, что данный феномен известен и изучен. Называется он «Состояние потока». Этот термин ввел американский психолог Михай Чиксентмихайи еще в далеком 1975 году. Самая известная книга на эту тему у него же так и называется – «Поток».

 

 

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

И, оказывается, что и для решения рабочих задач (да и вообще любых), с некоторой успешностью можно научиться входить в это состояние и оставаться в нем довольно продолжительное время показывая какую-то супер продуктивность и ощущая настоящее счастье от работы. По мнению автора, счастье – это и есть нахождение «в потоке», чем бы вы ни занимались. Научиться этому - большая работа, которой можно и нужно заниматься всю жизнь.

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

 

 

Почитайте о состоянии потока у данного или других авторов, есть несколько книг на эту тему.

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

  1. Быстрый запуск конфигуратора

  2. Настроенная под меня среда разработки

  3. Мои любимые шаблоны текста

  4. Горячие клавиши

  5. Слепой метод печати

  6. Мультибуфер

  7. Разработка во внешних обработках без лишних ненужных ожиданий и отвлечений

  8. Прочие удобные внешние инструменты

  9. Различные скриптовые движки, которые делают за меня всю рутинную работу

  10. Красивый код, который не стыдно показать и легко поддерживать

  11. Бодрящая физнагрузка

  12. Столь необходимый нам всем здоровый сон

  13. И то волшебное чувство счастья, творчества и продуктивности, которое я ощущаю находясь в состоянии потока

 

 

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

А у меня все. Спасибо тем, кто дочитал до конца.

См. также

SALE! %

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    161230    892    399    

872

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    8548    65    29    

76

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 руб.

06.10.2023    15675    38    8    

73

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

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

9360 руб.

17.05.2024    23835    70    45    

119

SALE! %

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

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

15000 10000 руб.

10.11.2023    10655    38    27    

63

SALE! %

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

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

4800 3840 руб.

14.01.2013    188477    1142    0    

913

SALE! %

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 15000 руб.

07.10.2021    17552    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7829    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Tahallus 441 28.12.23 23:16 Сейчас в теме
Есть бесплатный аналог Infostart Toolkit это https://github.com/cpr1c/tools_ui_1c
improg; DABadyanov; +2 Ответить
2. tormozit 7238 29.12.23 00:21 Сейчас в теме
(1) Про него даже в этом же докладе написано (Универсальные инструменты 1С) и он давно опубликован тут https://infostart.ru/1c/tools/1178280/
DimaP; Demetry2000; Tavalik; +3 Ответить
3. tormozit 7238 29.12.23 00:56 Сейчас в теме
Кстати, платный Турбоконф 6-ая сильно улучшенная версия сегодня вышла и вместе с ней ИР адаптер. Поэтому теперь большинство функций ИР доступны прямо из конфигуратора.
SagittariusA; m.bolsun; adapter; fancy; Tavalik; +5 Ответить
4. sandr13 35 29.12.23 07:16 Сейчас в теме
Очень полезная статья, особенная благодарность за РежимОтладки!
Andrekaa; dimankz; adhocprog; NeLenin; fancy; maksa2005; +6 Ответить
5. tormozit 7238 29.12.23 07:50 Сейчас в теме
(4)
РежимОтладки

Кстати очень важный факт про этот параметр не указан. Этот параметр опознается только механизмом запуска фоновых заданий БСП.
Sla; improg; sandr13; fancy; +4 Ответить
6. Tavalik 3412 29.12.23 09:06 Сейчас в теме
(5)
Спасибо за дополнение. Правда не очень представляю, кто и зачем будет делать фоновые задания не через стандартную подсистему.
7. dhurricane 29.12.23 09:32 Сейчас в теме
(6) Разработчики ERP запускают закрытие месяца платформенным методом "ФоновыеЗадания.Выполнить". Это ответ на вопрос "кто". Ответа на вопрос "зачем" у меня, к сожалению, нет. :-)
user2041697; SagittariusA; Sla; asupsam; TimkoNzt; +5 Ответить
14. nicxxx 255 29.12.23 20:59 Сейчас в теме
(6) Например, когда надо запустить 1000 фоновых заданий, но не сразу, а партиями, по 20. И подождать, пока очередная двадцатка завершится, перед запуском следующей. Или не ждать, когда завершатся все, а добавлять новые, когда предыдущие завершаются. Балансировка нагрузки, одним словом. Код показать?
17. dhurricane 31.12.23 00:35 Сейчас в теме
(14) Чем в этом сценарии не подошли БСП-шный методы?
27. nicxxx 255 05.01.24 23:47 Сейчас в теме
23. Serg2000mr 691 05.01.24 07:08 Сейчас в теме
(5) И надо учесть, что индикатор прогресса выполнения с ним работать не будет.
8. John_d 5893 29.12.23 10:53 Сейчас в теме
Век живи - век учись. Отдельное спасибо за "Текущий идентификатор". Я обычно делаю "Границы блока" зелеными, а не как по умолчанию серые, ели видно.
VyacheslavShilov; Tavalik; +2 Ответить
9. Tavalik 3412 29.12.23 11:10 Сейчас в теме
(8) Спасибо. Поэкспериментировал с "Границы блока", оставил в итоге серый (192, 192, 192), как и Текущий идентификатор. Тоже добавил в копилочку. =)
VyacheslavShilov; +1 Ответить
10. maksa2005 551 29.12.23 12:15 Сейчас в теме
Спустя 10 лет свои практики начал использовать подсветку синтекса) Благодарю. видел у коллеге как делал, но не решался)
11. Imv 29.12.23 12:44 Сейчас в теме
Режим отладки. А чем отличается от правки реестра с ключом -debug ?!
12. Vo-Va 881 29.12.23 16:46 Сейчас в теме
(11) Это вообще не связанные вещи. Режим отладки заставляет выполняться фоновые задания в том же сеансе без запуска отдельного фонового сеанса, что соответственно упрощает отладку. Но ключ -debug при этом конечно нужен.
13. support 4453 29.12.23 17:50 Сейчас в теме
Виталий, добавь, пожалуйста, шаблоны свои с бесплатным доступом. Можно даже в комментарии, мы переместим в публикацию.
15. ovasiliev 6 30.12.23 18:01 Сейчас в теме
«РежимОтладки»...... Ставлю сразу и навсегда.

... и получаем, что при запуске пользовательский режим зависает на приличное время, пока не отработают все фоновые задания, коих сонм при старте.
18. dhurricane 31.12.23 00:37 Сейчас в теме
(15) Второй шаг после установки "РежимОтладки" это удаление всех форм с начальной страницы.
svezr; SagittariusA; +2 Ответить
19. ovasiliev 6 31.12.23 00:39 Сейчас в теме
(18) Если не запускать 1С - тогда вообще никаких проблем. Сидим спокойно, ждём зарплату.
С наступающим.
16. user897851 30.12.23 21:32 Сейчас в теме
Более темной темы никак не хватает в основном интерфейсе 1С
20. Xershi 1557 31.12.23 01:25 Сейчас в теме
Я уже думал что за 2 года уи в тулкит преобразились, а нет. Спасибо! Но я перешёл на использование ИР через расширение.
Внешняя обработка не может словить на сервере запрос.
Недавно открыл для себя автозамену с типовыми шаблонами. Удобнее чем самому писать.
Подсветка меня и так устраивает. Но может подумаю удобнее. Статью плюсую!
24. Serg2000mr 691 05.01.24 07:26 Сейчас в теме
(20)
Внешняя обработка не может словить на сервере запрос.


Если внешнюю обработку подключать правильно, то отладка в ней работает.

&НаКлиенте 
Процедура ОткрытьОбработку(Команда)        
        АдресХранилища=""; 
        Результат= ПоместитьФайл(АдресХранилища,ПутьКФайлуОбработкиНаКлиенте,,Ложь, УникальныйИдентификатор);

        ПолноеИмяОбработки = ПодключитьОбработку(АдресХранилища);

        ПараметрыФормы = Новый Структура("Контрагент", Контрагент);
        ОткрытьФорму("ВнешняяОбработка.ИмяОбработки.Форма", ПараметрыФормы);
КонецПроцедуры

&НаСервере 
Функция ПодключитьОбработку(АдресВХ) 
	ПутьКФайлу = ПолучитьИмяВременногоФайла("epf"); 
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВХ); 
	ДвоичныеДанные.Записать(ПутьКФайлу); 
	Обработка = ВнешниеОбработки.Создать(ПутьКФайлу, БезопасныйРежим()); 
	Возврат СокрЛП(Обработка); 
КонецФункции
Показать
25. Xershi 1557 05.01.24 13:00 Сейчас в теме
(24) вы не поняли. Внешняя обработка ир не может словить запрос на сервере из-за галочек компиляции модуля.
А расширение ир ловит. Да плюс ко всему оно видно только первому админу, который вошёл в программу, т.е. только нам.
26. Serg2000mr 691 05.01.24 14:06 Сейчас в теме
(25)
Ну тогда переадресую код автору статьи.
(0)
Через Подключить не работает отладка внешней обработки, а через Создать - работает.
29. Sidon45 15.01.24 20:58 Сейчас в теме
(26) Что-то и так не взлетает, даже на файловой базе
30. Sidon45 16.01.24 07:33 Сейчас в теме
(24) Через создание временного файла не получилось отладку запустить, так работает:

&НаКлиенте
Процедура ОткрытьОбработку(Команда)

     ПолноеИмяОбработки = ПодключитьОбработку();

     ПараметрыФормы = Новый Структура("Контрагент", Контрагент);
    ОткрытьФорму("ВнешняяОбработка.ИмяОбработки.Форма", ПараметрыФормы);
КонецПроцедуры

&НаСервере
Функция ПодключитьОбработку()
    Обработка = ВнешниеОбработки.Создать("D:\Temp\ОбработкаДляРазработки.epf", БезопасныйРежим());
    Возврат СокрЛП(Обработка);
КонецФункции 
Показать
21. gubanoff 63 02.01.24 18:31 Сейчас в теме
За слепую печать отдельное спасибо, плюсую.
22. unichkin 1579 04.01.24 06:01 Сейчас в теме
Добрый день, спасибо за статью. Пару замечаний \ мыслей хотел бы добавить:
1) Не Снегопа*д*, а Снегопа*т*
2) В разделе "Запуск конфигуратора" я бы упомянул StartManager
3) Мультибуфер - попробуйте бесплатный ClipDiary. По сравнению с виндовым это как word vs wordpad...
4) ИР только в ОФ - ничего подобного, весьма удобно ими пользоваться и в управляемом режиме, как расширением. Все есть, все работает - отложенная отладка запросов / схем компоновки, с последующим анализом через разбивку запроса на отдельные подзапросы и т.п. Здесь ложка дегтя в том, что требуется поддержка толстого клиента конфой. Многие на него забивают, поэтому с ИР дружить не выходит. А лучше действовать по стандартам, корректно настраивая / оформляя модули: тогда и код становится более простым, и толстый клиент доступен. Кроме того так попросту интереснее.
5) Запуск с параметром "РежимОтладки" - спорная на самом деле вещь.. Активно использую именно фоновый запуск при разработке, потому что это (внезапно) удобно. Если стартануть долгий \ ресурсоемкий по своей природе алгоритм, то его можно легко и просто скинуть после достижения цели отладочного запуска. А при запуске непосредственном придется прерывать рантайм, т.е. перезапускать базу - такое себе.. Особенно при разработке, когда надо часто перезапускать отладку. Уточню - речь о перезапуске внешних отчетов / обработок. Понятно, что при доработке конфы рантайм все-равно придется прерывать для принятия изменений. Но если действовать по алгоритму разработки встроенных модулей через внешние - хотя бы так, как это описано в текущей статье - то можно все делать в текущем сеансе, без перезапуска ИБ. Главное не забыть потом избавится от отладочного кода) Но это прям тема для отдельного обсуждения.
Без особых проблем анализировал фоновое обновление ключей в "производительном" RLS - с моей т.з. удобнее именно через фон это смотреть. Потому что в том же сеансе если нужно процесс скинул, и без перезапуска базы снова запустил.
Минусы такой отладки есть, но все решаемо:
- мерцание при наличии параллельно работающих ФЗ - если речь о разработке в копии - отключаем все регламенты
- мерцание из-за параллельно работающего глобального обработчика ожидания - бывает что вместо останова в нужном месте останавливается где-то в модуле длительных операций. Бывает не так часто, надо продолжить отладку (F5), и если точка останова уже в задании пройдена - то перезапустить исполнение.
34. Serg2000mr 691 31.03.24 17:07 Сейчас в теме
(22)
А при запуске непосредственном придется прерывать рантайм, т.е. перезапускать базу - такое себе..


Есть лайфхак, как быстро прервать любой затянувшийся процесс.
В конфигураторе Отладка - Остановить. Процесс приостанавливается в любом месте. Ищем по строкам вниз любую объектную переменную, например Массив. Через Вычислить выражение присваиваем ей значение " ". И запускаем Продолжить отладку (F5). Процесс тут же останавливается с исключением.
35. unichkin 1579 31.03.24 17:18 Сейчас в теме
(34) знаю, еще до того как в платформе сделали возможность изменять локальные переменные для такого использовалась отладочная функция ДУ (https://kb.mista.ru/article.php?id=105)
Но можно вот так забивать себе голову продумывая "что-же там обнулить, чтобы процесс прервать". А можно сделать фоновый запуск и нажать "Отмена" в режиме предприятия, и не мучиться лишний раз. И запрос к БД например через изменение переменной не прервешь.
Тут кстати еще момент - если в коде допущен контекст невосстановимой ошибки, то это приведет к выбросу рантайма. При фоновом запуске - к завершению только ФЗ, причем зачастую с записью стека в журнал регистрации.
Serg2000mr; +1 Ответить
37. Serg2000mr 691 31.03.24 18:38 Сейчас в теме
(35) Да, очень полезная функция, до сих пор ДУ использую. Например когда нужно выполнить процедуру в окне отладки. Или вызвать остановку по ошибке до самой ошибки (стандартная "Остановка по ошибке" не всегда подходит)
28. echo77 1907 09.01.24 08:27 Сейчас в теме
/ConfigurationRepositoryF
/ConfigurationRepositoryN
/ConfigurationRepositoryP

К сожалению, эти ключи устанавливают параметры подключения для всех хранилищ, к которым подключена конфигурация разработчика. Таким образом, если база подключена так же к хранилищу расширения, то эти ключи только мешают.
31. user763700 19.01.24 11:12 Сейчас в теме
А параметры конфигуратора можно каким то образом сохранять и восстанавливать в другой базе ?
33. WrongLane 4 29.03.24 10:01 Сейчас в теме
Заинтересовала возможность работы с заменой текста.
Как можно получить файл Шаблоны_Tavalik.st?
36. unichkin 1579 31.03.24 17:32 Сейчас в теме
(33) Вот такие еще есть https://chistov.pro/utilities/st83/ - там прям с описанием и инструкцией по установке.
VyacheslavShilov; svezr; +2 Ответить
38. freemaestro 22 22.06.24 23:23 Сейчас в теме
Даже формы объектов можно разрабатывать во внешних обработках. Тут кода правда чуть-чуть побольше.


Добрый день!

Хотел уточнить - что здесь имеется в виду - разрабатывать формы объектов во внешних обработках ?

Например, есть задача - доработать форму документа или справочника? И как это сделать во внешней обработке?
39. svezr 5 03.07.24 21:03 Сейчас в теме
Особенно плюсую за "Соло". Лет 15 уже доволен как слон, проходил несколько раз.
Оставьте свое сообщение