Разработка в среде 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 думаю можно добавить шаблоны для конфигуратора
(4) Да, обязательно.
Добавил еще пару линков по кодированию, чьи работы использую.
(1) Напиши, плиз, в об этом, обсудим.
Очень интересная инфа.
Для всех открыл форум и блог, независимо от участия в группе пользователей публикации.
Так что можно постить ветки по теме прямо в форуме и блоге
Замечательная затея, подписалась.
Я, кстати, хотел с выкладыванием очередной универсальной обработки для 8.2 собрать аналогичные для этой платформы в той же публикации.
(9) Да, желательно 8.1 и 8.2 сделать в разных «корзинах» — в 8.2 чисто под управляемые формы.
(10) Пока я не разделяю работы по 8.1 и 8.2 — система разработки не так сильно меняется
Очень нужно и полезно! 😎
Но как же геморно… 😉
2(2): ну когда прикрутил к конфигурации заказчика, падать сервер стал регулярно при инициализации обработки
Обработки.ирПлатформа.Создать()
я ее закоментировал в модуле приложения, инициализацию «повесил» на кнопку, и достаточно часто после ее инициализации подвисает 1С даже в файловом варианте…
из за чего, х.е.з. в основном работаю с консолями… есть подозрения на политики безопасности у клиента, но чего у меня дома вешается иногда, не знаю, будет время в отладчике поколупаюсь, попробую найти участок кода, что вешает систему…
(13) Думаю, виновато антивирусное ПО. Попробуйте его отключить или сменить. И такие вопросы всем полезнее обсуждать в соответствующем форуме.
(13) нет, подобных проблем не было никогда, работает на разных машинах, в разных сетях/доменах.
ну я написал, с чем столкнулся…
вот у одних клиентов установлен мой программный продукт, так вот, на открытии одного вида документа программа сваливается… у меня работает нормально… грешил на SQL, потратил несколько часов, смотрел в отладчике, в итоге, все до чего докопался, так это то, что сваливается при открытии формы… изменил, на открыть модально, открывается… больше не у кого с таким не сталкивался…
(13) я тут некоторые свои наблюдения написал в
чтобы здесь не обсуждать 😉
Артур, кстати вопрос, если можно
а проект miniOpenConf ты не хочешь добавить в инструменты непосредственного кодирования — или оно не надо?
(19) Хороший вопрос, я про этот проект и забыл 🙂
Как раз сижу, думаю, что еще нужно включить из инструментов, к которым уже настолько привык, что не замечаешь и не помнишь про них.
Обновил разработку, подробности в новостях (блог)
тоже покопался в своих инструментах
Enterprise Integrator
использую активно 😀
P.S. Это уже дайджест получается…
(22) Да, я и планирую стиль публикации в виде некоего дайджеста.
У меня с ЕИ как-то не очень заладилось — трассировка что-то так и не получилась 🙂
Использую намного реже, чем первые две разработки из 3 раздела.
Хотя также планировал добавить его в 3-й раздел.
Еще что есть? 🙂
(23) остальное все либо мелкое, либо является частью уже озвученных инструментов, либо в виде идей (а идей много у всех)
так что из серьезных инструментов вроде все уже здесь описано…
кроме 😉 — Uzhast продолжает свою деятельность.
ЗЫ Я Yoksel использую и как быстрый «просмотрщик» mxl-лей так и как dll
ЗЫЫ Больше вроде ничего нету (не считая проектов в работе).
Тестирование выделил в отдельный/большой раздел №4
Рекомендую так же обратить внимание на специальную раскладку клавиатуры для программистов 1С от Павла Чистова (GROOVY)
(26) Да, раскладка очень удобна.
(26) Да, когда-то давно юзал, а потом со сменой компа потерял 🙂
Добавлю, спасибо!
2artbear
Может ссылку на альфу снегопата добавить уже в статью?
(29) Наконец-то я добавил маленькое описание Снегопата 🙂
Всем рекомендую.
Сам пользуюсь постоянно еще со времен 77.
(31)
Хотелось бы только добавить, что у Снегопата есть и для бесплатного ознакомления.
А с контролем версий все так же грустно, или это я просто не нашел пока ничего интересного? Хранилище по многим причинам не устраивает, и самая первая — это скорость работы.
(34) byte.mdfab, смотря что вы хотите от контроля версий:
1. Дерево конфигурации в файловой системе и рядышком лежит cf или epf и нормальный diff (можно сделать)
2. Дерево конфигурации в читаемом формате + полноценный merge + после merge собираем обратно cf или epf.
Первый вариант можно автоматизировать, второй насколько понимаю пока нет.
Коллеги, пишите, какие еще инструменты вы считаете полезными и активно используете при разработке/тестировании 1С, при администровании ИБ 1С, при развертывании.
Возможно, я смогу включить описание использование предложенного вами и забытого мной 🙂 инструмента на моем выступлении на сентябрьском Инфостарте
Побольше расскажи в докладе про портативные инструменты разработчика. Очень интересный и полезный продукт. Еще он постоянно развивается и хочет продвижения и рекламы. А главное — бесплатный.
Да, про портативные обязательно расскажу, я именно в таком виде и юзаю ИР последние годы.