Создание собственной конфигурации в среде «1С:Предприятие 8.3» — это амбициозная задача, требующая не только знания синтаксиса языка, но и четкого понимания архитектуры метаданных. Часто разработчики, имеющие опыт работы с «обычными формами» (старые версии 8.2 или 7.7), сталкиваются с трудностями при переходе на управляемое приложение. В данной статье мы разберем по шагам, как подступиться к разработке, на какие грабли не наступить и какие инструменты использовать для создания качественного продукта.
Прежде чем открывать Конфигуратор, необходимо четко представить, какие бизнес-процессы будет обслуживать ваша программа. Как справедливо отмечено практикующими специалистами, начинать нужно с визуализации связей. Рассмотрим подробнее, как это сделать:
Контрагенты, Номенклатура, Склады или Подразделения. Важно понимать, какой объект является самостоятельным, а какой — подчиненным.Договоры должен иметь владельцем справочник Контрагенты.Справочники — это условно-постоянная информация, а Документы — это события, которые меняют состояние системы. Все изменения должны фиксироваться в Регистрах (накопления или сведений).Проанализируем типичную ошибку новичков: попытку хранить историю изменений или остатки прямо в реквизитах справочника. В 1С для этого предназначены РегистрыСведений и РегистрыНакопления соответственно. Справочник должен лишь описывать объект.
Для тех, кто начинает путь в разработке конфигураций с нуля, существует «золотой стандарт» обучения. Разберем основные источники:
Главное отличие современных конфигураций — жесткое разделение контекста. Выясним причину, почему код, работавший в «обычном» приложении, не будет работать здесь. В управляемом приложении есть Тонкий клиент и Сервер.
Рассмотрим пример правильного вызова процедуры из формы:
&НаКлиенте
Процедура КомандаВыполнить(Команда)
// На клиенте нельзя обращаться к данным базы напрямую
Результат = ВыполнитьРасчетНаСервере(Объект.Ссылка);
Сообщить(Результат);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВыполнитьРасчетНаСервере(СсылкаНаОбъект)
// Здесь мы имеем полный доступ к базе данных
Возврат СсылкаНаОбъект.Код + " обработан";
КонецФункции
Важно помнить: передача тяжелых объектов (например, всего объекта справочника) между клиентом и сервером замедляет работу. Старайтесь передавать только ссылки или простые типы данных.
Когда вы приступите к реализации справочников, обратите внимание на следующие механизмы платформы:
СерииНоменклатуры без самой Номенклатуры), всегда указывайте владельца на закладке «Владельцы». Это автоматически создаст нужные связи в формах выбора.МодульМенеджера используется для процедур, которые не привязаны к конкретному экземпляру данных (например, формирование печатной формы или заполнение списка выбора). В МодульОбъекта мы пишем логику, связанную с проверкой заполнения или обработкой событий перед записью конкретного элемента.Существует мнение, что для первой учебной конфигурации БСП — это слишком сложно. Однако для реального проекта использование Библиотеки стандартных подсистем обязательно. Разберем почему:
Во-первых, вам не нужно заново изобретать подсистему пользователей и прав доступа. Во-вторых, механизмы печати, версионирования объектов и присоединенных файлов уже написаны и отлажены специалистами 1С. Посмотрим на ситуацию здраво: написать свой «велосипед» полезно для обучения, но в промышленной разработке это неэффективно.
Проанализируем процесс создания нового функционала:
Рассмотрим пример безопасного получения данных элемента:
// Вместо обращения через точку (что вызывает неявный запрос ко всем полям)
Наименование = ОбъектСправочника.Наименование;
// Используйте выборку или метод ПолучитьОбъект() только когда это необходимо
// Для получения одного-двух полей эффективнее использовать запрос
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура ГДЕ Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", НужнаяСсылка);
Создание конфигурации «с нуля» — это процесс постоянного совершенствования. Не бойтесь того, что в начале получится «фигня» или «на коленке». Главное — следовать стандартам разработки 1С, изучать типовые решения и не пренебрегать классической литературой, такой как пособие Радченко. Постепенно вы перейдете от рисования связей на бумаге к архитектурно выверенным решениям на управляемых формах.