Повышение удобства разработки в среде 1С:Предприятие 8

Статьи, публикации, блоги, обсуждения, линки, которые помогают в разработке для 1С 8

Разработка в среде 1С:Предприятие 8 состоит из нескольких частей (весьма упрощенная градация):

1. Разработка архитектуры решения в режиме Конфигуратор — метаданные, связи и т.п.

2. Непосредственное кодирование в режиме Конфигуратор или Предприятие

3. Внесение исправлений в данные в режиме Предприятие

4. Тестирование и проверка

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

 


1. Разработка архитектуры решения в режиме Конфигуратор — метаданные, связи и т.п. 

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

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

Часть этих методик я описал в части 2, см.чуть ниже.

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

 


2. Непосредственное кодирование в режиме Конфигуратор или Предприятие

 

  1. Главный и мощнейшний помощник для работы в Конфигураторе — Снегопат
    Много писать о нем не буду. Это проект от автора проектов OpenConf + Telepat Александра Орефкова (orefkov).
    Фактически Снегопат также очень сильно «модернизирует» Конфигуратор, добавляя объектную модель и давая возможность добавлять сторонние скрипты для расширения возможностей Конфигуратора.
    Рекомендую начать знакомство с ним со страницы Возможности, где отлично описаны некоторые возможности Снегопата. На странице есть даже несколько простых видео-примеров, которые помогут лучше понять работу в Конфигураторе.

    Есть маленькое НО — проект стал платным (в районе 4 тыс.руб), но я считаю, что он полностью оправдывает свою цену. 
    Но у Снегопата есть вполне рабочая Демо-версия для бесплатного ознакомления — ее ограничения: иногда недоступны подсказки + поддерживаются только 3 релиза (правда, ИМХО самые основные и более стабильные!)

    Все остальные примочки все-таки не так  полезны и расширяемы, как Снегопат!

  2. Маленькая хитрость при кодировании поможет частично решить проблемы с контекстной подсказкой, той самой, что идет после нажатия точки.
    .
  3. Шаблоны для Конфигуратора от ndm или от GROOVY также очень хорошо помогают в разработке, т.к. упрощают ввод многих конструкций, как простых типа Если/Тогда/КонецЕсли, так и намного более сложных алгоритмов и целых блоков кода.
    .
  4. Отличный проект v8.1 + autohotkey = mini OpenConf также помогает в навигации по коду.Рекомендую скрипт «Вызов списка процедур с фильтрацией наименований методов при наборе текста», мы его развиваем еще со времен 77. ИМХО Все, кто юзал Телепат и Svcsvc, без этого фильтра уже не могут обойтись. Также удобны переходы в стиле Опенконф — переход в процедуру (ctrl+enter), возврат на предыдущую позицию (как в OpenConf? — alt+{left})
    Внедрение проекта весьма несложно.
    .
  5. Довольно часто приходится создавать печатные формы к различным объектам конфигураций. Для этого очень удобно использовать специальную технику создания внешних печатных форм в типовых конфигурациях.
    Очень удобное описание данной методики есть у автора poppy в целом цикле статей
    Внешние печатные формы в восьмерке
    Внешние печатные формы в восьмерке II
    и готовая обработка для тестирования собственных печатных форм без постоянного добавления обработки в справочник «Внешних отчетов/обработок»
    Обработка для тестирования внешних печатных форм в восьмерке

    Также довольно интересную методику с минимальной переделкой типового кода для небольшого исправления типовых печатных форм выложил yku.
    А alexk-is на базе этой обработки и типовых печатных форм сделал свои шаблоны для создания внешних печатных форм.
    .

  6. Также в своих типовых конфах 1С сделала довольно удобную работу с табличными частями объектов, использую внешние обработки заполнения табличных частей.
    У того же автора poppy существует еще статья 
    Заполнение табличных частей документов в восьмерке (внешние обработки)
    и готовая обработка Обработка для тестирования внешних обработок изменения табличных частей
    .
  7. Очень часто при написании кода, еще со времен 77, лично я использую так называемые TODO-списки.
    В более удобных средах разработки давным-давно есть TODO-списки, формируемые этой средой автоматически, что позволяет легко ими управлять, искать и т.д.
    Суть TODO — в комментарий добавляется ключевое слово TODO, после чего следует сам комментарий. В подобный комментарий можно писать пометки для себя или других специалистов — например, о каких требованиях, ограничениях, не до конца сделанной работе или отложенной на какое-то время проблеме.
    В нужных случаях можно просто выполнить глобальный поиск по сочетанию «TODO» и легко найти необходимые комментарии.
    Очень часто я использую следущие варианты дополнительно к простому TODO : 
    TODO_МЕТАДАННОЕ — в комменте описываю изменения, который я вносил в метаданные типовой конфы, например, движения по доп.регистрам 
    TODO_ФОРМА 
    TODO_ИНТЕРФЕЙС 
    TODO_ПРАВА 
    и т.д. 
    это очень удобно при анализе изменений в типовых конфах.
    Или //TODO_УДАЛИТЬ код после разработки 
    .
  8. Удобный конструктор внешних отчетов для СКД очень сильно помогает в быстром создании собственных отчетов на базе настройки СКД.
    Сначала в режиме 1С с помощью Универсальной консоли создается нужная настройка СКД, а далее можно сгенерить уникальный (это важно для настроек) отчет на базе своей настройки и выбранного шаблона для СКД (можно юзать любой шаблон, их сделано уже немало).
    .
    продолжение следует…

3. Внесение исправлений непосредственно в данные в режиме Предприятие

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

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

  1.  Подсистема «Инструменты разработчика» v1.93

Автор tormozit

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

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

2. Универсальная консоль отчетов

Автор Evg-Lylyk

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

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

В разработке данной обработки я участвую 🙂 — так что старался, чтобы было удобно.

Универсальная консоль отчетов и Подсистема «ИР» могут решать задачи по внесению изменений в данные как на базе данных запросов, так и в произвольной форме

Также можно использовать различные консоли кода

продолжение следует…


4. Тестирование и исправление 

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

ИМХО наиболее удобно все-таки автоматическое тестирование.

Очень часто при разработке я применяю юнит-тестирование и функциональное тестирование.
В качестве среды для создания тестов я использую собственную систему тестирования функциональных тестов Functest.v8 — например, с ее помощью удобно отлаживать код создания печатных форм, движений документов, запросов, правильность и неизменность данных (бухгалтерских через простые отчеты типа ОСВ, пользовательских через спец.запросы и т.п.)

Для юнит-тестирования я, в основном, применяю общий модуль утверждений типа ( артТесты.ПроверитьРавенство(ЗначениеИзКода, НужноеТестовоеЗначение, СообщениеОбОшибкеДляУдобстваИзученияОшибки =- «»)  ) и т.п.

Полезные ссылки по тестированию в 1С 8 я выложил в форуме данной разработки, в дальнейшем этот список будет обновляться.


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

36 Comments

  1. WKBAPKA

    надо сказать, что №1 на серверном варианте 1С периодически вешает сервер 1С, причем так жестко, что его можно только отключить… шо там такое инициализируется и конфликтует — Х.Е.З

    Reply
  2. artbear

    (1) Откуда подобная инфа, что виноват именно №1 ?

    у меня сервер падает, конечно, иногда, но совсем не уверен, что виноват №1.

    Дашь более подробную инфу?

    Reply
  3. NDM

    (1) использую ИР на клиент-серверной архитектуре, проблем с зависанием сервера нет.

    Reply
  4. NDM

    в пункт 2 думаю можно добавить шаблоны для конфигуратора Шаблоны для конфигуратора 8.1

    Reply
  5. artbear

    (4) Да, обязательно.

    Добавил еще пару линков по кодированию, чьи работы использую.

    Reply
  6. artbear

    (1) Напиши, плиз, в авторской ветке об этом, обсудим.

    Очень интересная инфа.

    Reply
  7. artbear

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

    Так что можно постить ветки по теме прямо в форуме и блоге

    Reply
  8. larisab

    Замечательная затея, подписалась.

    Reply
  9. Душелов

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

    Reply
  10. larisab

    (9) Да, желательно 8.1 и 8.2 сделать в разных «корзинах» — в 8.2 чисто под управляемые формы.

    Reply
  11. artbear

    (10) Пока я не разделяю работы по 8.1 и 8.2 — система разработки не так сильно меняется

    Reply
  12. Арчибальд

    Очень нужно и полезно! 😎

    Но как же геморно… 😉

    Reply
  13. WKBAPKA

    2(2): ну когда прикрутил к конфигурации заказчика, падать сервер стал регулярно при инициализации обработки

    Обработки.ирПлатформа.Создать()

    я ее закоментировал в модуле приложения, инициализацию «повесил» на кнопку, и достаточно часто после ее инициализации подвисает 1С даже в файловом варианте…

    Reply
  14. WKBAPKA

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

    Reply
  15. tormozit

    (13) Думаю, виновато антивирусное ПО. Попробуйте его отключить или сменить. И такие вопросы всем полезнее обсуждать в соответствующем форуме.

    Reply
  16. artbear

    (13) нет, подобных проблем не было никогда, работает на разных машинах, в разных сетях/доменах.

    Reply
  17. WKBAPKA

    ну я написал, с чем столкнулся…

    вот у одних клиентов установлен мой программный продукт, так вот, на открытии одного вида документа программа сваливается… у меня работает нормально… грешил на SQL, потратил несколько часов, смотрел в отладчике, в итоге, все до чего докопался, так это то, что сваливается при открытии формы… изменил, на открыть модально, открывается… больше не у кого с таким не сталкивался…

    Reply
  18. lustin

    (13) я тут некоторые свои наблюдения написал в http://infostart.ru/public/15126/

    чтобы здесь не обсуждать 😉

    Reply
  19. lustin

    Артур, кстати вопрос, если можно

    а проект miniOpenConf http://www.1cpp.ru/forum/YaBB.pl?num=1227553473/120 ты не хочешь добавить в инструменты непосредственного кодирования — или оно не надо?

    Reply
  20. artbear

    (19) Хороший вопрос, я про этот проект и забыл 🙂

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

    Reply
  21. artbear

    Обновил разработку, подробности в новостях (блог)

    Reply
  22. lustin

    тоже покопался в своих инструментах

    Enterprise Integrator

    http://code.google.com/p/enterprise-integrator/

    использую активно 😀

    P.S. Это уже дайджест получается…

    Reply
  23. artbear

    (22) Да, я и планирую стиль публикации в виде некоего дайджеста.

    У меня с ЕИ как-то не очень заладилось — трассировка что-то так и не получилась 🙂

    Использую намного реже, чем первые две разработки из 3 раздела.

    Хотя также планировал добавить его в 3-й раздел.

    Еще что есть? 🙂

    Reply
  24. lustin

    (23) остальное все либо мелкое, либо является частью уже озвученных инструментов, либо в виде идей (а идей много у всех)

    так что из серьезных инструментов вроде все уже здесь описано…

    кроме 😉 YokselUzhast продолжает свою деятельность.

    ЗЫ Я Yoksel использую и как быстрый «просмотрщик» mxl-лей так и как dll

    ЗЫЫ Больше вроде ничего нету (не считая проектов в работе).

    Reply
  25. artbear

    Тестирование выделил в отдельный/большой раздел №4

    Reply
  26. ll13

    Рекомендую так же обратить внимание на специальную раскладку клавиатуры для программистов 1С от Павла Чистова (GROOVY) http://chistov.spb.ru/publ/2-1-0-12

    Reply
  27. tormozit

    (26) Да, раскладка очень удобна.

    Reply
  28. artbear

    (26) Да, когда-то давно юзал, а потом со сменой компа потерял 🙂

    Добавлю, спасибо!

    Reply
  29. orefkov

    2artbear

    Может ссылку на альфу снегопата добавить уже в статью?

    Reply
  30. artbear

    (29) Наконец-то я добавил маленькое описание Снегопата 🙂

    Всем рекомендую.

    Сам пользуюсь постоянно еще со времен 77.

    Reply
  31. orefkov

    (31)

    Хотелось бы только добавить, что у Снегопата есть и Демо-версия для бесплатного ознакомления.

    Reply
  32. byte.mdfab

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

    Reply
  33. pumbaE

    (34) byte.mdfab, смотря что вы хотите от контроля версий:

    1. Дерево конфигурации в файловой системе и рядышком лежит cf или epf и нормальный diff (можно сделать)

    2. Дерево конфигурации в читаемом формате + полноценный merge + после merge собираем обратно cf или epf.

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

    Reply
  34. artbear

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

    Возможно, я смогу включить описание использование предложенного вами и забытого мной 🙂 инструмента на моем выступлении на сентябрьском Инфостарте https://event.infostart.ru/2017/#section-28396

    Reply
  35. tormozit

    Побольше расскажи в докладе про портативные инструменты разработчика. Очень интересный и полезный продукт. Еще он постоянно развивается и хочет продвижения и рекламы. А главное — бесплатный.

    Reply
  36. artbear

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

    Reply

Leave a Comment

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