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

29.01.15

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

Статьи, публикации, блоги, обсуждения, линки, которые помогают в разработке для 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 я выложил в форуме данной разработки, в дальнейшем этот список будет обновляться.


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

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    121609    670    389    

711

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7262    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3507    11    1    

33

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177726    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99338    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18102    6    8    

39

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28096    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23596    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. WKBAPKA 214 10.02.10 15:14 Сейчас в теме
надо сказать, что №1 на серверном варианте 1С периодически вешает сервер 1С, причем так жестко, что его можно только отключить... шо там такое инициализируется и конфликтует - Х.Е.З
2. artbear 1448 10.02.10 17:02 Сейчас в теме
(1) Откуда подобная инфа, что виноват именно №1 ?
у меня сервер падает, конечно, иногда, но совсем не уверен, что виноват №1.
Дашь более подробную инфу?
13. WKBAPKA 214 11.02.10 10:14 Сейчас в теме
2(2): ну когда прикрутил к конфигурации заказчика, падать сервер стал регулярно при инициализации обработки
Обработки.ирПлатформа.Создать()

я ее закоментировал в модуле приложения, инициализацию "повесил" на кнопку, и достаточно часто после ее инициализации подвисает 1С даже в файловом варианте...
15. tormozit 7136 11.02.10 19:50 Сейчас в теме
(13) Думаю, виновато антивирусное ПО. Попробуйте его отключить или сменить. И такие вопросы всем полезнее обсуждать в соответствующем форуме.
16. artbear 1448 12.02.10 11:17 Сейчас в теме
(13) нет, подобных проблем не было никогда, работает на разных машинах, в разных сетях/доменах.
18. lustin 12.02.10 12:00 Сейчас в теме
(13) я тут некоторые свои наблюдения написал в http://infostart.ru/public/15126/
чтобы здесь не обсуждать ;)
3. NDM 703 10.02.10 17:54 Сейчас в теме
(1) использую ИР на клиент-серверной архитектуре, проблем с зависанием сервера нет.
6. artbear 1448 10.02.10 18:53 Сейчас в теме
(1) Напиши, плиз, в авторской ветке об этом, обсудим.
Очень интересная инфа.
4. NDM 703 10.02.10 17:56 Сейчас в теме
в пункт 2 думаю можно добавить шаблоны для конфигуратора Шаблоны для конфигуратора 8.1
5. artbear 1448 10.02.10 18:52 Сейчас в теме
(4) Да, обязательно.
Добавил еще пару линков по кодированию, чьи работы использую.
7. artbear 1448 10.02.10 19:09 Сейчас в теме
Для всех открыл форум и блог, независимо от участия в группе пользователей публикации.
Так что можно постить ветки по теме прямо в форуме и блоге
8. larisab 160 10.02.10 19:35 Сейчас в теме
Замечательная затея, подписалась.
9. Душелов 4013 10.02.10 20:09 Сейчас в теме
Я, кстати, хотел с выкладыванием очередной универсальной обработки для 8.2 собрать аналогичные для этой платформы в той же публикации.
10. larisab 160 10.02.10 20:27 Сейчас в теме
(9) Да, желательно 8.1 и 8.2 сделать в разных "корзинах" - в 8.2 чисто под управляемые формы.
11. artbear 1448 11.02.10 08:09 Сейчас в теме
(10) Пока я не разделяю работы по 8.1 и 8.2 - система разработки не так сильно меняется
12. Арчибальд 2706 11.02.10 08:29 Сейчас в теме
Очень нужно и полезно! 8-)
Но как же геморно... ;)
14. WKBAPKA 214 11.02.10 10:16 Сейчас в теме
из за чего, х.е.з. в основном работаю с консолями... есть подозрения на политики безопасности у клиента, но чего у меня дома вешается иногда, не знаю, будет время в отладчике поколупаюсь, попробую найти участок кода, что вешает систему...
17. WKBAPKA 214 12.02.10 11:59 Сейчас в теме
ну я написал, с чем столкнулся...
вот у одних клиентов установлен мой программный продукт, так вот, на открытии одного вида документа программа сваливается... у меня работает нормально... грешил на SQL, потратил несколько часов, смотрел в отладчике, в итоге, все до чего докопался, так это то, что сваливается при открытии формы... изменил, на открыть модально, открывается... больше не у кого с таким не сталкивался...
19. lustin 12.02.10 12:22 Сейчас в теме
Артур, кстати вопрос, если можно
а проект miniOpenConf http://www.1cpp.ru/forum/YaBB.pl?num=1227553473/120 ты не хочешь добавить в инструменты непосредственного кодирования - или оно не надо?

20. artbear 1448 12.02.10 13:34 Сейчас в теме
(19) Хороший вопрос, я про этот проект и забыл :)
Как раз сижу, думаю, что еще нужно включить из инструментов, к которым уже настолько привык, что не замечаешь и не помнишь про них.
21. artbear 1448 12.02.10 15:07 Сейчас в теме
Обновил разработку, подробности в новостях (блог)
22. lustin 12.02.10 15:30 Сейчас в теме
тоже покопался в своих инструментах

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

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

P.S. Это уже дайджест получается...
23. artbear 1448 12.02.10 15:45 Сейчас в теме
(22) Да, я и планирую стиль публикации в виде некоего дайджеста.
У меня с ЕИ как-то не очень заладилось - трассировка что-то так и не получилась :)
Использую намного реже, чем первые две разработки из 3 раздела.
Хотя также планировал добавить его в 3-й раздел.

Еще что есть? :)
24. lustin 12.02.10 16:42 Сейчас в теме
(23) остальное все либо мелкое, либо является частью уже озвученных инструментов, либо в виде идей (а идей много у всех)

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

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

ЗЫ Я Yoksel использую и как быстрый "просмотрщик" mxl-лей так и как dll
ЗЫЫ Больше вроде ничего нету (не считая проектов в работе).
25. artbear 1448 13.02.10 22:34 Сейчас в теме
Тестирование выделил в отдельный/большой раздел №4
26. ll13 1047 15.02.10 11:57 Сейчас в теме
Рекомендую так же обратить внимание на специальную раскладку клавиатуры для программистов 1С от Павла Чистова (GROOVY) http://chistov.spb.ru/publ/2-1-0-12
fzt; Totoro; artbear; +3 Ответить
27. tormozit 7136 15.02.10 12:21 Сейчас в теме
(26) Да, раскладка очень удобна.
28. artbear 1448 15.02.10 13:08 Сейчас в теме
(26) Да, когда-то давно юзал, а потом со сменой компа потерял :)
Добавлю, спасибо!
29. orefkov 1152 09.03.11 12:47 Сейчас в теме
2artbear
Может ссылку на альфу снегопата добавить уже в статью?
artbear; kote; +2 Ответить
31. artbear 1448 09.12.11 09:24 Сейчас в теме
(29) Наконец-то я добавил маленькое описание Снегопата :)
Всем рекомендую.
Сам пользуюсь постоянно еще со времен 77.
32. orefkov 1152 09.12.11 10:44 Сейчас в теме
(31)
Хотелось бы только добавить, что у Снегопата есть и Демо-версия для бесплатного ознакомления.
30. пользователь 13.11.11 19:47
Сообщение было скрыто модератором.
...
33. Модератор раздела 09.12.11 10:56 Сейчас в теме
orefkov пишет: Демо

Сейчас поправлю
34. byte.mdfab 21.12.11 11:20 Сейчас в теме
А с контролем версий все так же грустно, или это я просто не нашел пока ничего интересного? Хранилище по многим причинам не устраивает, и самая первая - это скорость работы.
35. pumbaE 31.01.12 11:54 Сейчас в теме
(34) byte.mdfab, смотря что вы хотите от контроля версий:
1. Дерево конфигурации в файловой системе и рядышком лежит cf или epf и нормальный diff (можно сделать)
2. Дерево конфигурации в читаемом формате + полноценный merge + после merge собираем обратно cf или epf.

Первый вариант можно автоматизировать, второй насколько понимаю пока нет.
36. artbear 1448 06.09.17 13:44 Сейчас в теме
Коллеги, пишите, какие еще инструменты вы считаете полезными и активно используете при разработке/тестировании 1С, при администровании ИБ 1С, при развертывании.

Возможно, я смогу включить описание использование предложенного вами и забытого мной :) инструмента на моем выступлении на сентябрьском Инфостарте https://event.infostart.ru/2017/#section-28396
37. tormozit 7136 06.09.17 15:28 Сейчас в теме
Побольше расскажи в докладе про портативные инструменты разработчика. Очень интересный и полезный продукт. Еще он постоянно развивается и хочет продвижения и рекламы. А главное - бесплатный.
38. artbear 1448 06.09.17 15:42 Сейчас в теме
Да, про портативные обязательно расскажу, я именно в таком виде и юзаю ИР последние годы.
Оставьте свое сообщение