Любой специалист 1С выполняет некие задачи – программные, аналитические, технические, и тратит на это свои усилия, свое время, свои нервы. Есть довольно известное выражение, что «20% усилий дает 80% результата». Оставшиеся 80% усилий тратятся, в основном, на «шелуху» и «черную» работу. Постараемся же сэкономить на этих оставшихся 80% усилий! Мы, к сожалению, не можем в большинстве случаев контролировать поток задач, поступающих к нам на выполнение (когда, сколько, какие задачи придут). Но мы можем повлиять на то, КАК ИМЕННО, и С КАКОЙ ЭФФЕКТИВНОСТЬЮ эти задачи будем решать.
Путей повышения эффективности решения задач множество. Один из способов - попытаться стандартизировать свои однообразные (повторяющиеся) действия, лучше организовать свою работу, ускорить доступ к постоянно нужным нам инструментам. Ясно, что когда на «шелуху» или стандартные частые действия тратишь меньше времени, то и на работу «всего» уходит его заметно меньше.
Эйнштейн сказал: «Только дурак нуждается в порядке — гений господствует над хаосом». Мы не будем наводить порядок – мы будем с помощью нижеприведенных советов господствовать над хаосом задач. Ну или хотя бы этот хаос научим командам «Сидеть» и «Лежать». Не гении конечно, но тоже ничего… J
Автор этого текста попытался составить несколько простых советов по максимальному упрощению и стандартизации ряда действий в практике деятельности 1С-специалиста. Причем таких, которые бы позволили добиться максимальной пользы с минимумом затрат усилий и времени. Эти советы позволят сэкономить время, провести самоорганизацию работы, и сделать ее более удобной.
Здесь не будет рекламы новых «революционных» программных продуктов вроде «1С: Сделай Сам С УсамИ», или «сложных волшебных» методик вроде «Организуй работу методом задних рогов синего бегемота». Нет, все советы – из ежедневной практики, очень простые и очевидные, часто эмпирические, достигаются простейшими «ручными» действиями. Их цель – сделать ежедневную, порой монотонную, а порой наоборот, очень напряженную работу, немного быстрее и проще, добиться в ней большего порядка. Что конкретно я имею в виду, станет ясно уже через несколько минут.
Все идеи и советы структурированы и описаны ниже. В каждой описано – как это устроено, и обязательно – «что нам это даст», то есть, какие выгоды и удобства в повседневной работе это принесет.
Идея №1. Библиотека обновлений (шаблонов) конфигураций
В ежедневной практической работе фрилансера, аналитика или программиста 1С, довольно часто стоит вопрос обновления конфигураций, а иногда требуется не самая свежая версия для какой-то задачи. Бывает и то, что требуется «дообновить» очень старую базу, пропустившую 10-20 релизов. Почему бы не придать толику организованности этому процессу?
Для этого на жестком диске создаем особую папку, условно называем ее «Шаблоны». Именно в эту папку мы будем скачивать и разворачивать все обновления стандартных конфигураций. При развороте шаблона 1С (запуске файла «setup») он сам будет создавать подпапки с именами и версиями обновлений. Таким образом, у нас будет структурированная папка с обновлениями конфигураций. При обновлении базы через Конфигуратор нужно будет просто прописать путь к этой папке для поиска шаблонов обновлений.
Предвижу скепсис, мол, создание и хранение такой библиотеки обновлений потребует больших затрат времени и места на диске! Это верно, но не совсем так, простите за каламбур.
Во-первых, хранить все обновления всех конфигураций НЕ НУЖНО. Так, мы НЕ будем хранить те обновления, которые позволяют пропускать себя (например, в УПП можно обновиться с 1.3.121.1 сразу на 1.3.122.3, пропустив 6 или 7 промежуточных обновлений). Далее, хранить будем, конечно НЕ все конфигурации, а только самые распространенные, а еще лучше -только те, которые часто требуются нам в работе. Например, мне лично требуются часто ЗУП 3.1 и УПП. Библиотеки обновлений прочих конфигураций я пополняю только от случая к случаю.
Также полезно хранить «целые» конфигурации (а не только обновления), которые время от времени выкладывает 1С. Так при необходимости вы сразу сможете иметь готовую конфигурацию с демо-базой «из середины» списка релизов, не восстанавливая все версии с первой. В этом случае наиболее старые релизы (старее 2 лет) можно удалить, чтобы не занимали места.
Наконец, подобная коллекция шаблонов обновлений, если вы начнете ее вести, будет пополнятся «автоматически» в процессе выполнения вами задач – качать то обновления вы все равно будете? Будете. Так качайте их сразу в нашу папку «Шаблоны»!
Итак, что нам это даст:
Библиотека ключевых обновлений всех нужных нам конфигураций. При нужде в любой версии нужной нам конфигурации, или обновлении типовой конфигурации, мы лишь должны в Конфигураторе прописать путь к папке для поиска шаблонов обновлений.
Идея №2. Список активных демо-баз актуальных версий основных конфигураций
По сути это развитие предыдущей идеи, но в несколько ином ключе.
Различные задачи часто требуют срочно проверить «что-нибудь» на стандартном функционале, а для этого требуется не только иметь стандартную полную конфигурацию актуальной версии, но и демо-базу. На случай таких задач мы будем иметь в списке баз 1С несколько развернутых демо-баз основных конфигураций (например, УПП, ERP, БУХ, ЗУП, УТ), которые мы, конечно, регулярно обновляем до актуальных версий (используя, в том числе, шаблоны из предыдущей идеи).
У вас возникла задача воспроизвести ошибку заказчика, в том числе, после обновления? Нужно проверить новый функционал? Требуется демо-база для демонстрации и обучения? Во всех этих случаях, у нас всегда будет под рукой нужная база с «демкой» нужной нам конфигурации из списка самых популярных (например, УПП, ERP, БУХ, ЗУП, УТ), да еще актуального релиза. Предыдущей нашей идее эта не противоречит, и более того – их стоит использовать вместе.
Итак, что это нам даст:
Активные демо-базы актуальных версий основных конфигураций. Возможность оперативного получения нужной конфигурации, или отработки чего-либо на стандартном функционале.
Идея №3. Библиотека трафаретов (заготовок) форм и отчетов. Расширенный список шаблонов кода.
Совет, более приближенный к практике программирования. Идея родилась на основе использования стандартного механизма шаблонов в 1С, как его развитие и дополнение.
Суть идеи в том, что большинство задач программисту на создание новых отчетов, печатных форм и документов, при всей своей внешней разнообразности, в начале процесса выполнения на самом деле типичны. Я говорю о том, что в начале почти любой такой задачи вы должны выполнять «грязную» работу по «набивке» стандартных реквизитов и обработчиков, структурированию кода. Так зачем делать одно и тоже вручную каждый раз? Давайте хотя бы немного стандартизируем этот процесс!
От нас потребуется держать «под рукой» в виде почти «пустых» обработок, своеобразные трафареты (заготовки) для самых распространенных вещей: внешних отчетов (для СКД и «жесткого» макета), внешних печатных форм. Можно пойти дальше – держать «шаблоны» и заготовки форм документов с самыми распространенными реквизитами (организация, период и т.п.), с уже «навешанными» на них обработчиками стандартных действий (например, изменения месяца, кнопка подбора сотрудников, или еще что-нибудь в этом роде), а также заготовки стандартных процедур модуля менеджера и объекта (обработка печати, например).
Каких-то строгих критериев тут нет, все зависит от практической работы. Например, одно время мне постоянно требовалось делать новые печатные формы двух или трех почти одинаковых форматов. В итоге я сделал для них 2 своеобразные «заготовки» (файлы EPF), и при задании сделать новую форму, брал эту «заготовку», где заранее были прописаны в коде такие вещи, как получение макета, вывод областей, проверки на вывод, заготовка для запроса, вспомогательные функции возврата нужных значений и т.п. Макет уже имел области для вывода (я лишь подставлял текст на вывод в макет и менял параметры, причем использовал одни и те же параметры по имени – которые обрабатывались в коде).
Повторюсь, это развитие идеи шаблонов в 1С. Вообще говоря, почему-то огромное количество людей об этой стандартной функции текстового редактора в Конфигураторе не в курсе, или не пользуются ей. Шаблон, напомню, это заготовка («рыба») самых распространенных программных конструкций (например, запроса с обработкой результат). Шаблон в Конфигураторе 1С можно создать и свой, но в шаблон заносится только код. Я же веду речь о том, чтобы кроме использования шаблонов (а их нужно использовать!), использовать и заготовки форм, и более сложных обработчиков. Ну или по крайней мере, основательно поработать с библиотекой шаблонов, добавить новых шаблонов «под себя».
Итак, что нам это даст:
Расширенная библиотека шаблонов кода, а также заготовки форм и программных конструкций. При создании нового отчета, программирования формы документа, печатной формы и т.п. – мы берем или готовый шаблон кода, или «копипастой» вставляем код в форму (модуль объекта), или используем заготовку формы.
Идея №4. Набор готовых алгоритмов действий, схемы и шаблоны для "непрограммной" работы
Несколько более общий совет, относящийся к аналитикам, или тем, кто занимается исправлением ошибок, настройкой и сервисом баз 1С. Тем не менее, и он полезен.
Суть совета – иметь для самых распространенных ситуаций в работе (не связанной с программированием напрямую) некие наработанные заготовки, списки вопросов, схемки-памятки, «рыбы» для инструкций, шаблоны для написания технических заданий (ТЗ).
Например, у меня имеется нечто вроде набора пунктов и вопросов, если нужно произвести обследование нового клиента (для составления ТЗ): вопросы про тип и количество баз, версии конфигураций, обмены, количество персонала, наличие технических специалистов в штате, род деятельности и т.п.
Если требуется провести экспресс-аудит базы (обычно я в силу специализации, делаю это по блокам зарплаты и управления персонала), то опять-таки, есть почти формальный перечень моих действий (проверить тот справочник, посмотреть в те документы, проверить те настройки и т.п.)
Если нужно разобрать какую-то ошибку, то мои первые вопросы к клиенту (как правило, в телефонном режиме) будут абсолютно одинаковы, и зависеть в основном от типа ошибки. Я спрошу его о версии конфигурации, в какой момент ошибка возникает («опишите ваши точные действия»), были ли ошибки ранее, только у него или у других и т.д.
Другой вопрос, что постепенно все эти «памятки» и наборы действий я просто запоминаю наизусть. Ну а если этим долго не заниматься, или нужно обучить этому коллегу? Наконец, не обязательно прямо все иметь в распечатанном виде и красиво клеить на стенку. Но составьте их хотя бы на первый раз. Такой более формализованный подход позволяет в конечном итоге повысить самодисциплину при работе, и натренировать память и внимание.
Итак, что нам это даст:
Набор готовых алгоритмов действий, схемы, памятки и шаблоны для непрограммной работы. В практической работе позволяет сэкономить время на поиск ошибок, опрос заказчика, или не забыть то или иное действие.
Идея №5. Простейшее структурированное хранение (организация) задач
Абсолютно тривиальный и очевидный совет – хотя бы немного организовать работу с задачами, но из практики наблюдения, минимум половина специалистов этим занимается чуть реже, чем никогда.
Будь вы фрилансером, программистом (аналитиком) «штатного» отдела предприятия, или специалистом фирмы-франчайзи, но зачастую у вас может быть в работе не 1, не 2, а много задач. Какие-то из них срочные, какие-то нет, какие-то сделаны частично, какие-то ожидают тестирования или проверки… Да мало ли! Все мы люди, легко что-то забыть, упустить. Да и хранить статус задач в памяти не стоит. Конечно, первая мысль – использовать программы для хранения (организации) задач.
Если вы работаете на более-менее крупном предприятии, то у них чаще всего уже будет нечто подобное, наверняка одна из систем класса ServiceDesk (в просторечии «СервисДеск» или «ХелпДеск»). Специальных программ такого толка множество, автор специально не будет рекомендовать никакой, хотя в свое время попробовал несколько, от «Наумен» и «ИнфраМенеджера», до «Битрикса».
Правда, тут есть оговорка, даже две. Первая – такие «СервисДески» обычно внедрены «сверху», т.е. по инициативе руководства, и призваны организовать ваше время и контролировать вас, а также наладить взаимодействие с другими сотрудниками (а мы говорим в рамках данного текста об самоорганизации). Вторая – все зависит от количества задач и уровня их контроля. В большинстве случаев, если мы говорим об самоорганизации, а специальной программы учета задач в вашей организации нет, достаточно самых простейших инструментов.
Приведу пример из собственного опыта, который позволит понять простейший вариант такой организации. По роду моей работы, у меня в среднем бывает от 1 до 10 задач одновременно, все они на разной степени выполнения, актуальности, важности, приходят от разных заказчиков. Поскольку выполнение задач связано, в том числе, с перепиской с заказчиками, а сами задачи часто приходят по электронной почте, то первый участок организации задач – сама электронная почта. Папка «Входящие» разбита на подпапки по заказчикам (проектам), есть отдельная папка «В работе», куда помешаются те задачи, которые «делаются прямо сейчас» (после выполнения они уходят в папки по заказчикам). Также есть папка «Архив», куда я перемещаю папки с завершенными проектами. Активно используется система флажков и статусов (доступна в Outlook, например), ими можно помечать актуальные, срочные, выполненные задачи через письма.
Второй уровень учета и организации задач – простая таблица, я веду ее в Excel. Повторюсь, этого достаточно мне, кому-то может потребоваться более мощный инструмент. В этой таблице хранится дата задачи (когда начата), заказчик, сама задача (буквально в виде 1 предложения), время, потраченное на выполнение. Цвета заливки строк также говорят о срочности (красный), статусе (желтый – в процессе, зеленый – выполнено до этапа сдачи), полном выполнении задачи (голубой) и т.д. и т.п..
Если задача требует работы в течении нескольких дней, или должна прерваться и продолжится, скажем, через неделю – то строку с ней «закрашиваем», и создаем новую с датой следующего этапа. Четких правил тут нет. Задача, которую требуется сделать завтра-послезавтра – заранее создаем для нее строку с будущей датой, и красим в красный. В итоге мы имеем и «напоминалку», и знаем какие задачи делаем, и какие уже сделали.
Главное здесь – не ленится, и тратить время на ведение этой таблицы, сортировку писем в почте и т.п. Делаем все оперативно: получили задачу – сразу ее в таблицу, а письмо в папку «В работе». Выполнили задачу – сразу ее «красим» в таблицу, а задачу в папку по клиентку. Больше, чем 10-20 минут в день это не занимает. Хотя это покажется кому-то лишней тратой времени, на практике это экономит вам время и облегчает работу вашей памяти. В суматохе большого количества задач легко забыть, что вы что-то должны сделать завтра, или над какой задачей работали вчера.
Кому-то такой вариант покажется примитивным, но зачем мне стрелять из базуки по тушканчикам? На всякую работу должен быть адекватный инструмент.
Итак, что это нам дает:
Простейшая организация задач в таблице и в почте. Таким образом налажена организация параллельной работы над множеством задач без слова «забыл». В любой момент времени мы способны сказать: когда и с каким заказчиком на какой задаче работаем, и на каком этапе, или работали, даже если это было год или два назад.
Бонусные идеи.
На закуску упомяну о некоторых стандартных «фишках» кодинга 1С. Почему-то на практике немало программистов, особенно начинающих, об этих функциях не знают, или знают, но не хотят ими пользоваться.
Шаблоны кода. О них уже говорилось выше. Напоминаю, что эта довольно удобная в целом функция редактора кода (вызывается CTLR + SHIFT + T), которая позволяет хранить и быстро использовать самые распространенные конструкции кода, например, заготовку функции или запроса. В нее можно добавлять свои шаблоны кода. Также в разделе «Шаблоны текста» можно быстро получить код с перечислением, функциональной опцией и д.р.
Рефакторинг. На практике много раз сталкивался с тем, что многие программисты или плохо помнят, или не пользуются этой фишкой. Напомню, что в реалиях 1С, это чаще всего «вынос» части кода в отдельную процедуру, и, по совести, этому учат на первом курсе любого факультета программирования. Легендарное «и так сойдет!» - для ленивых и неаккуратных. А люди «вручную» выносят повторяющийся код в процедуры.
Конструктор форматной строки. Опять таким им часто пренебрегают – но для создания корректного вывода числа или особенно даты, он чрезвычайно удобен. Все помнят прямо так наизусть как «Отче наш», сколько там «ДД» или «гг» надо ставить для вывода даты в нужном вам формате? Вот то-то и оно.
Установить / Снять закладку. Прекрасная функция в разделе «Текст» Конфигуратора позволяет ставить «флажки»-закладки в огромном коде, а затем перемещаться между ними. А то судорожно помнить, что «там», а что «здесь» за конструкция – это конечно круто, но зачем?