Разработка в среде 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 я выложил в форуме данной разработки, в дальнейшем этот список будет обновляться.
Хотелось бы обсудить, какие еще средства улучшения разработки я упустил, их плюсы/минусы, возможное сопоставление
надо сказать, что №1 на серверном варианте 1С периодически вешает сервер 1С, причем так жестко, что его можно только отключить… шо там такое инициализируется и конфликтует — Х.Е.З
(1) Откуда подобная инфа, что виноват именно №1 ?
у меня сервер падает, конечно, иногда, но совсем не уверен, что виноват №1.
Дашь более подробную инфу?
(1) использую ИР на клиент-серверной архитектуре, проблем с зависанием сервера нет.
в пункт 2 думаю можно добавить шаблоны для конфигуратораШаблоны для конфигуратора 8.1
(4) Да, обязательно.
Добавил еще пару линков по кодированию, чьи работы использую.
(1) Напиши, плиз, вавторской ветке об этом, обсудим.
Очень интересная инфа.
Для всех открыл форум и блог, независимо от участия в группе пользователей публикации.
Так что можно постить ветки по теме прямо в форуме и блоге
Замечательная затея, подписалась.
Я, кстати, хотел с выкладыванием очередной универсальной обработки для 8.2 собрать аналогичные для этой платформы в той же публикации.
(9) Да, желательно 8.1 и 8.2 сделать в разных «корзинах» — в 8.2 чисто под управляемые формы.
(10) Пока я не разделяю работы по 8.1 и 8.2 — система разработки не так сильно меняется
Очень нужно и полезно! 😎
Но как же геморно… 😉
2(2): ну когда прикрутил к конфигурации заказчика, падать сервер стал регулярно при инициализации обработки
Обработки.ирПлатформа.Создать()
я ее закоментировал в модуле приложения, инициализацию «повесил» на кнопку, и достаточно часто после ее инициализации подвисает 1С даже в файловом варианте…
из за чего, х.е.з. в основном работаю с консолями… есть подозрения на политики безопасности у клиента, но чего у меня дома вешается иногда, не знаю, будет время в отладчике поколупаюсь, попробую найти участок кода, что вешает систему…
(13) Думаю, виновато антивирусное ПО. Попробуйте его отключить или сменить. И такие вопросы всем полезнее обсуждать в соответствующем форуме.
(13) нет, подобных проблем не было никогда, работает на разных машинах, в разных сетях/доменах.
ну я написал, с чем столкнулся…
вот у одних клиентов установлен мой программный продукт, так вот, на открытии одного вида документа программа сваливается… у меня работает нормально… грешил на SQL, потратил несколько часов, смотрел в отладчике, в итоге, все до чего докопался, так это то, что сваливается при открытии формы… изменил, на открыть модально, открывается… больше не у кого с таким не сталкивался…
(13) я тут некоторые свои наблюдения написал вhttp://infostart.ru/public/15126/
чтобы здесь не обсуждать 😉
Артур, кстати вопрос, если можно
http://www.1cpp.ru/forum/YaBB.pl?num=1227553473/120 ты не хочешь добавить в инструменты непосредственного кодирования — или оно не надо?
а проект miniOpenConf
(19) Хороший вопрос, я про этот проект и забыл 🙂
Как раз сижу, думаю, что еще нужно включить из инструментов, к которым уже настолько привык, что не замечаешь и не помнишь про них.
Обновил разработку, подробности в новостях (блог)
тоже покопался в своих инструментах
Enterprise Integrator
http://code.google.com/p/enterprise-integrator/
использую активно 😀
P.S. Это уже дайджест получается…
(22) Да, я и планирую стиль публикации в виде некоего дайджеста.
У меня с ЕИ как-то не очень заладилось — трассировка что-то так и не получилась 🙂
Использую намного реже, чем первые две разработки из 3 раздела.
Хотя также планировал добавить его в 3-й раздел.
Еще что есть? 🙂
(23) остальное все либо мелкое, либо является частью уже озвученных инструментов, либо в виде идей (а идей много у всех)
так что из серьезных инструментов вроде все уже здесь описано…
кроме 😉Yoksel — Uzhast продолжает свою деятельность.
ЗЫ Я Yoksel использую и как быстрый «просмотрщик» mxl-лей так и как dll
ЗЫЫ Больше вроде ничего нету (не считая проектов в работе).
Тестирование выделил в отдельный/большой раздел №4
Рекомендую так же обратить внимание на специальную раскладку клавиатуры для программистов 1С от Павла Чистова (GROOVY)http://chistov.spb.ru/publ/2-1-0-12
(26) Да, раскладка очень удобна.
(26) Да, когда-то давно юзал, а потом со сменой компа потерял 🙂
Добавлю, спасибо!
2artbear
Может ссылку на альфу снегопата добавить уже в статью?
(29) Наконец-то я добавил маленькое описание Снегопата 🙂
Всем рекомендую.
Сам пользуюсь постоянно еще со времен 77.
(31)
Демо-версия для бесплатного ознакомления.
Хотелось бы только добавить, что у Снегопата есть и
А с контролем версий все так же грустно, или это я просто не нашел пока ничего интересного? Хранилище по многим причинам не устраивает, и самая первая — это скорость работы.
(34) byte.mdfab, смотря что вы хотите от контроля версий:
1. Дерево конфигурации в файловой системе и рядышком лежит cf или epf и нормальный diff (можно сделать)
2. Дерево конфигурации в читаемом формате + полноценный merge + после merge собираем обратно cf или epf.
Первый вариант можно автоматизировать, второй насколько понимаю пока нет.
Коллеги, пишите, какие еще инструменты вы считаете полезными и активно используете при разработке/тестировании 1С, при администровании ИБ 1С, при развертывании.
Возможно, я смогу включить описание использование предложенного вами и забытого мной 🙂 инструмента на моем выступлении на сентябрьском Инфостартеhttps://event.infostart.ru/2017/#section-28396
Побольше расскажи в докладе про портативные инструменты разработчика. Очень интересный и полезный продукт. Еще он постоянно развивается и хочет продвижения и рекламы. А главное — бесплатный.
Да, про портативные обязательно расскажу, я именно в таком виде и юзаю ИР последние годы.