Разработка в среде 1С:Предприятие 8 состоит из нескольких частей (весьма упрощенная градация):
1. Разработка архитектуры решения в режиме Конфигуратор - метаданные, связи и т.п.
2. Непосредственное кодирование в режиме Конфигуратор или Предприятие
3. Внесение исправлений в данные в режиме Предприятие
Я постараюсь в данной публикации собрать ссылки и описания на публикации и разработки, которыми сам пользуюсь в реальной работе и которые сам считаю очень удобными и полезными.
1. Разработка архитектуры решения в режиме Конфигуратор - метаданные, связи и т.п.
Очень часто при реализации различных проектов по доработке типовых конфигураций, как маленьких, так и больших проектов, достаточно важным становится требование облегчения выполнения обновления на следующие релизы типовой конфигурации. Опытный специалист, который сопровождает и дорабатывает типовые конфы, всегда должен помнить об этом.
Для этого могут помочь внешние печатные обработки и отчеты, а также специальные методики, которые в разы могут облегчить подобные обновления.
Например, я использую внешние обработки для создания печатных форм объектов, обработки для заполнения табличных частей документов, TODO-списки для описания изменений и дальнейшего их поиска перед обновлением, и т.п.
Часть этих методик я описал в части 2, см.чуть ниже.
Вопрос минимизации трудоемкости обновлений очень хорошо проанализирован в разработке Использование свойств объектов при доработке типовых конфигураций автор poppy
я также использую подобную методику.
2. Непосредственное кодирование в режиме Конфигуратор или Предприятие
- Главный и мощнейшний помощник для работы в Конфигураторе - Снегопат
Много писать о нем не буду. Это проект от автора проектов OpenConf + Telepat Александра Орефкова (orefkov).
Фактически Снегопат также очень сильно "модернизирует" Конфигуратор, добавляя объектную модель и давая возможность добавлять сторонние скрипты для расширения возможностей Конфигуратора.
Рекомендую начать знакомство с ним со страницы Возможности, где отлично описаны некоторые возможности Снегопата. На странице есть даже несколько простых видео-примеров, которые помогут лучше понять работу в Конфигураторе.
Есть маленькое НО - проект стал платным (в районе 4 тыс.руб), но я считаю, что он полностью оправдывает свою цену.
Но у Снегопата есть вполне рабочая Демо-версия для бесплатного ознакомления - ее ограничения: иногда недоступны подсказки + поддерживаются только 3 релиза (правда, ИМХО самые основные и более стабильные!)
Все остальные примочки все-таки не так полезны и расширяемы, как Снегопат! - Маленькая хитрость при кодировании поможет частично решить проблемы с контекстной подсказкой, той самой, что идет после нажатия точки.
. - Шаблоны для Конфигуратора от ndm или от GROOVY также очень хорошо помогают в разработке, т.к. упрощают ввод многих конструкций, как простых типа Если/Тогда/КонецЕсли, так и намного более сложных алгоритмов и целых блоков кода.
. - Отличный проект v8.1 + autohotkey = mini OpenConf также помогает в навигации по коду.Рекомендую скрипт "Вызов списка процедур с фильтрацией наименований методов при наборе текста", мы его развиваем еще со времен 77. ИМХО Все, кто юзал Телепат и Svcsvc, без этого фильтра уже не могут обойтись. Также удобны переходы в стиле Опенконф - переход в процедуру (ctrl+enter), возврат на предыдущую позицию (как в OpenConf? - alt+{left})
Внедрение проекта весьма несложно.
. - Довольно часто приходится создавать печатные формы к различным объектам конфигураций. Для этого очень удобно использовать специальную технику создания внешних печатных форм в типовых конфигурациях.
Очень удобное описание данной методики есть у автора poppy в целом цикле статей
Внешние печатные формы в восьмерке
Внешние печатные формы в восьмерке II
и готовая обработка для тестирования собственных печатных форм без постоянного добавления обработки в справочник "Внешних отчетов/обработок"
Обработка для тестирования внешних печатных форм в восьмерке
Также довольно интересную методику с минимальной переделкой типового кода для небольшого исправления типовых печатных форм выложил yku.
А alexk-is на базе этой обработки и типовых печатных форм сделал свои шаблоны для создания внешних печатных форм.
. - Также в своих типовых конфах 1С сделала довольно удобную работу с табличными частями объектов, использую внешние обработки заполнения табличных частей.
У того же автора poppy существует еще статья
Заполнение табличных частей документов в восьмерке (внешние обработки)
и готовая обработка Обработка для тестирования внешних обработок изменения табличных частей
. - Очень часто при написании кода, еще со времен 77, лично я использую так называемые TODO-списки.
В более удобных средах разработки давным-давно есть TODO-списки, формируемые этой средой автоматически, что позволяет легко ими управлять, искать и т.д.
Суть TODO - в комментарий добавляется ключевое слово TODO, после чего следует сам комментарий. В подобный комментарий можно писать пометки для себя или других специалистов - например, о каких требованиях, ограничениях, не до конца сделанной работе или отложенной на какое-то время проблеме.
В нужных случаях можно просто выполнить глобальный поиск по сочетанию "TODO" и легко найти необходимые комментарии.
Очень часто я использую следущие варианты дополнительно к простому TODO :
TODO_МЕТАДАННОЕ - в комменте описываю изменения, который я вносил в метаданные типовой конфы, например, движения по доп.регистрам
TODO_ФОРМА
TODO_ИНТЕРФЕЙС
TODO_ПРАВА
и т.д.
это очень удобно при анализе изменений в типовых конфах.
Или //TODO_УДАЛИТЬ код после разработки
. - Удобный конструктор внешних отчетов для СКД очень сильно помогает в быстром создании собственных отчетов на базе настройки СКД.
Сначала в режиме 1С с помощью Универсальной консоли создается нужная настройка СКД, а далее можно сгенерить уникальный (это важно для настроек) отчет на базе своей настройки и выбранного шаблона для СКД (можно юзать любой шаблон, их сделано уже немало).
.
продолжение следует...
3. Внесение исправлений непосредственно в данные в режиме Предприятие
Подобные изменения можно вносить как с помощью специализированных разработок, сделанные под какие-то конкретные задачи, так и с помощью универсальных средств, позволяющих задавать различные алгоритмы для разных задач.
Две главнейших разработки, без которых я просто не мыслю свою работу, работа просто не будет столь эффективной:
Автор tormozit
Это подсистема, которую нужно объединять со своей конфигурацией. Подключение к своей конфигурации очень просто.
Возможностей подсистемы очень много - 3 мощнейших консоли (запросов, построителей, системы компоновки данных, удобная работа с подзапросами и временными таблицами), произвольные алгоримы, универсальные обработки (поиск и замена, универсальный подбор и обработка, поиск ссылок и т.д.), универсальный редактор, универсальный список и т.д. и т.п.
2. Универсальная консоль отчетов
Автор Evg-Lylyk
Это внешняя универсальная обработка со своими дополнительными модулями в виде внешних обработок, можно использовать без изменения своей конфигурации, т.е. буквально сразу же.
Возможностей подсистемы также очень много - совместная работа с 3 видами консолей (запросов, построителей, СКД), возможность сравнения как результатов запросов, так и текстов запросов, удобная работа с параметрами запросов, возможность формирования собственных отчетов СКД на базе файлов-шаблонов (в поставке есть куча шаблоново) и своей настройки СКД, мощнейшая возможность генерации кода 1С для создания запроса, установки параметров, его выполнения, и получения результатов, и многое другое.
В разработке данной обработки я участвую :) - так что старался, чтобы было удобно.
Универсальная консоль отчетов и Подсистема "ИР" могут решать задачи по внесению изменений в данные как на базе данных запросов, так и в произвольной форме
Также можно использовать различные консоли кода
продолжение следует...
Практически ни один разработчик/программист не считает работу над разработкой или проектом или простым фрагментом кода, не проверив перед этим их работоспособность (исключение составляют слишком небрежные либо слишком самоуверенные разработчики).
Проверять данные и свой проект можно в ручном режиме (подавляющее большинство разработчиков так и работают :( ), или в автоматическом/полуавтоматическом режиме.
ИМХО наиболее удобно все-таки автоматическое тестирование.
Очень часто при разработке я применяю юнит-тестирование и функциональное тестирование.
В качестве среды для создания тестов я использую собственную систему тестирования функциональных тестов Functest.v8 - например, с ее помощью удобно отлаживать код создания печатных форм, движений документов, запросов, правильность и неизменность данных (бухгалтерских через простые отчеты типа ОСВ, пользовательских через спец.запросы и т.п.)
Для юнит-тестирования я, в основном, применяю общий модуль утверждений типа ( артТесты.ПроверитьРавенство(ЗначениеИзКода, НужноеТестовоеЗначение, СообщениеОбОшибкеДляУдобстваИзученияОшибки =- "") ) и т.п.
Полезные ссылки по тестированию в 1С 8 я выложил в форуме данной разработки, в дальнейшем этот список будет обновляться.
Хотелось бы обсудить, какие еще средства улучшения разработки я упустил, их плюсы/минусы, возможное сопоставление