03.12 22:16
Привет, гость
 

Ускоряем разработку в «1C»

28.05.2013, 04:03
В статье описаны некоторые приемы, применение которых позволит в разы ускорить разработку прикладных решений на платформе «1C».

В бизнесе существует известная формула «Эффективность = Результат/затраты». Хорошие разработчики понимают потребности бизнеса и ориентируются на достижение поставленных целей, получение желаемого результата. При этом они очень часто забывают о втором компоненте данной формулы - затраты. На вопрос «почему?» можно отвечать достаточно долго, и вряд ли удастся сформулировать однозначное понимание. Вполне вероятно, существенное влияние оказывает воздействие «Школы 1С:Франчайзи», через которую проходит большинство разработчиков «1C». Внедренцы нередко никак не мотивированы на получение результата в кратчайшие сроки - деньги ведь им платят за отработанные часы. Разработчики, которые не обучались в данной школе, могут просто не сталкиваться с задачами, требующими высокой скорости разработки, либо не иметь достаточной квалификации.

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

Совет 1. Не пишите код, который уже написан

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

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

Кажется, я говорю об очевидных вещах: редко кто-либо дублирует код. Но на практике все абсолютно не так. Для начинающего разработчика совсем не очевидно, что он пишет программный код, имеющийся даже в том же прикладном решении, которое он дорабатывает. «Более продвинутый» разработчик уже не повторяет существующие разработки, но вполне может не догадаться перенести код из другого прикладного решения «1C». Даже гуру может не знать какого-либо решения, в котором механизм, им разрабатываемый, уже реализован. Так что же можно сделать, чтобы избежать по возможности лишнего копирования кода? Я бы посоветовал несколько действий:

Изучите хотя бы основные типовые решения «1C» (УПП, УТ, БП, ЗУП, КА, УНФ). Если вам жалко времени, то ознакомьтесь как минимум с Руководством пользователя и потратьте несколько часов на то, чтобы посмотреть на конфигурацию.

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

Все прикладные решения необходимо иметь на рабочем месте (рабочий или домашний ПК), Сотрудников «1С:Франчайзи» в данном случае очень выручают NFR-версии прикладных решений, которые практически бесплатны для использования внутри компании. Остальным придется самостоятельно позаботиться об этом.

Если вы все это проделали, то при разработке перед тем, как решать какую-либо задачу, нужно задуматься, в каких прикладных решениях данный функционал уже реализован. Какой функционал можно использовать? Как правило, 90% задач уже решались ранее другими разработчиками. На этом этапе вы уже найдете большую часть функционала, который вам было необходимо реализовать. Далее останется только интегрировать его в свое прикладное решение. В «1C» открытый исходный код различных прикладных решений - традиционная практика. Это и «готовая библиотека», и «учебник по разработке». Не использовать такую массу наработок просто преступление.

Пример

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

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

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

Совет 2. Изучите функционал БСП

БСП - Библиотека стандартных подсистем. БСП - это некий «шаблон» прикладных решений на платформе «1C».

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

Большая часть стандартных действий (управление доступом, работа с журналом регистрации, фоновыми заданиями, управление пользователями и т.п.) является частью БСП. Эту функциональность просто нужно уметь использовать в своих прикладных решениях, ни в коем случае не дублировать. Код БСП написан таким образом, чтобы не было необходимости его части переписывать заново или модифицировать существующие. Точно так же, как любой разработчик C++ должен знать STL для использования ее функций или MFC в случае разработки GUI под Windows (либо VCL, если выбрали Borland), разработчик «1C» должен знать БСП. Очень плохо, что БСП появилась совсем недавно, но хорошо, что она в принципе появилась.

Совет 3. Создайте свою библиотеку литературы разработчика и держите ее всегда под рукой

Библиотека должна включать как «базовые» источники информации (известные официальные книги), так и «специфичные» (форумы) - для решения конкретных проблем.

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

Книга (по факту сейчас уже две книги немаленького размера) объединяет большую часть имеющейся сегодня литературы по «1С:Предприятию 8». Начинается она с ответа на вопрос: «Что такое конфигуратор и что такое «1С:Предприятние»?» - и заканчивается «оптимизацией запросов на уровне MS SQL». Я бы отнес данную литературу к разряду Must have. Стоимость двух томов на момент написания данной статьи составляет 3500 руб. Но книга стоит этих денег. Впрочем, к книге прилагается диск, на котором размещено много всего полезного, но главным образом - электронная версия книги в формате PDF.

Для чего книга по «основам» нужна профессиональному разработчику? Занимаясь 10 лет разработкой, он же ее знает вдоль и поперек. Я еще таких разработчиков не встречал.

Конечно, расчетные и бухгалтерские задачи большинство знает достаточно хорошо, вряд ли для этого нужна книга. А вот если требуется посчитать «управленческую» зарплату по достаточно сложному механизму? Или сложные периодические расчеты, с которыми еще не сталкивались. А функционал «Анализ данных»? Редкий разработчик знает его хорошо, а в прикладных решениях приходится применять. Можно, конечно, набрать в Google и получить множество ссылок на форумы, разработки, статьи по отдельным вопросам. Вот только все это не слишком хорошо подходит для первого знакомства с каким-либо инструментом. Первый раз лучше прочитать базовый труд.

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

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

Совет 4. Изучите основные возможности конфигуратора «1C»

Этот совет я хотел разбить на несколько частей.

Совет 4.1. Изучите и активно пользуйтесь «горячими клавишами» «1C»

Как показывает практика, даже гуру «1C» зачастую используют не все возможности базового средства разработки - конфигуратора «1C». Конечно, есть справка, но кто ее читает?

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

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

Совет 4.2. Настройте командные панели конфигуратора «под себя»

Конфигуратор - обычное по сути своей Windows-приложение. Настраиваемые командные панели появились уже давно. Ничем особенным они не отличаются. «Горячие клавиши» - это, конечно, хорошо, но, правда, не все из них вы сразу запомните и начнете активно использовать. Некоторые не слишком нужно запоминать как «горячие клавиши», но на панели видеть бы хотелось. Я, к примеру, всегда располагаю панель «Текст» в нижней части окна конфигуратора .

Переходом к строке или увеличением отступа я пользуюсь достаточно редко для «хоткея» (хотя что-то засомневался в этом), но достаточно часто для использования панели.

Совет 4.3. Используйте «закладки»

Как раз те, что приведены на рисунке выше. Разработчик, не использующий закладки при работе, абсолютно точно
и однозначно теряет много времени. Разработчик «1C» редко пишет код полностью линейно «с чистого листа». Задачи в большинстве своем заключаются в доработке существующего кода, вернее, отдельных его кусков. Как в этом случае можно обойтись без закладок?

Совет 5. Научитесь пользоваться шаблонами

На рис. 2 представлены окно шаблонов (стандартных в данном случае) и окно редактирования текста шаблона.

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

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

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

Совет 6. Создайте собственную библиотеку функций

В процессе профессиональной деятельности у вас будут накапливаться готовые решения некоторых задач, не решенных в типовых конфигурациях (по разным причинам). Этот код нужно сохранять отдельно, где - не важно, пусть даже в обычном Word-файле. Я бы рекомендовал внешнюю обработку.

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

Материалы по теме
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Ускоряем разработку в «1C»

Ускоряем разработку в «1C»
03.12.2024


Ноябрь 2024 (5)
Октябрь 2024 (6)
Сентябрь 2024 (1)
Август 2024 (1)
Июль 2024 (1)
Июнь 2024 (4)
ГБАО, ДТП, Душанбе, Китай, Культура, Куляб, МВД, МВД Таджикистана, Мегафон, Навруз, Президент, Рахмон, Рогун, Россия, США, Согд, Таджикистан, Узбекистан, Хорог, Худжанд, Эмомали Рахмон, авто, бензин, бизнес, выставка, дети, конкурс, мигранты, миграция, налоги, политика, праздник, пытки, сотрудничество, спорт, суд, туризм, фестиваль, футбол, экономика

Показать все теги


© 2011-2023 «Независимое мнение». Таджикский агрегатор новостей. Все новости Таджикистана на одном сайте.
Любое использование материалов приветствуется при гиперссылке.

Экспорт новостей Наши новости в Twitter Мы ВКонтакте Страница на Facebook

Ключевые слова: новости Таджикистана, Таджикистан новости сегодня, Таджикистан новости 2012, последние новости Таджикистана, новости дня Таджикистана, новости, Таджикистан сегодня, независимое мнение, экономика Таджикистана, политика Таджикистана, общество Таджикистана, депутаты, журналисты, СМИ