Повышение удобства разработки в среде 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) остальное все либо мелкое, либо является частью уже озвученных инструментов, либо в виде идей (а идей много у всех)

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

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

    ЗЫ Я 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 не будет опубликован. Обязательные поля помечены *