Разработка и доработка конфигурации, которая уже запущена в эксплуатацию — это ответственный процесс, напоминающий замену колес у движущегося автомобиля. Рассмотрим, как организовать этот процесс правильно, чтобы не потерять данные и обеспечить стабильную работу пользователей. Мы разберем по шагам все этапы: от подбора лицензий до технических нюансов переноса кода.
Прежде чем приступать к доработкам, проанализируем лицензионную политику. Для компании с 5–10 рабочими местами и потребностью в программировании стандартная «Базовая» версия 1С:УНФ не подойдет. Выясним почему:
Конфигуратор не требуется — программист просто занимает одну из имеющихся клиентских лицензий в локальной сети.Проанализируем ситуацию: вносить изменения напрямую в «боевую» (рабочую) базу категорически запрещено. Рассмотрим классическую схему разработки, которая гарантирует сохранность данных:
Разберем по шагам процесс переноса: мы пишем код в Dev, выгружаем файл конфигурации (расширение .cf), загружаем его в Test, проводим тестирование и только после этого повторяем загрузку в Prod.
Выясним, как технически происходит перенос объектов, не затирая данные пользователей. Для этого в 1С существует механизм «Сравнение и объединение конфигураций». Посмотрим на алгоритм действий в Конфигуратор:
Конфигуратор.1cv8.cf, подготовленный в тестовой базе.Помните: Добавление новых реквизитов, справочников или документов никогда не приводит к удалению существующих данных. Данные могут пропасть только в двух случаях: если вы удалили объект из конфигурации или изменили его тип (например, превратили Число в Строка).
Рассмотрим вопрос, поднятый в теме: стоит ли использовать расширения или менять конфигурацию напрямую. Существует миф, что 20 расширений — это предел стабильности. На самом деле, современная платформа 8.3.15+ легко справляется с десятками расширений.
Преимущества расширений:
Главный плюс в том, что основная конфигурация остается на «поддержке». Это позволяет обновлять 1С:УНФ до новых релизов от фирмы «1С» в автоматическом режиме. Если же вы «снимете с поддержки» объект (например, измените модуль формы документа ЗаказПокупателя напрямую), то при каждом обновлении вам придется вручную сравнивать свой код с кодом вендора.
Когда использовать расширения:
&После, &Вместо или &Перед).Когда менять основную конфигурацию: Если доработки фундаментальны и затрагивают структуру регистров, которые еще плохо поддерживаются расширениями, или если вы создаете огромный кусок функционала, который проще поддерживать как единое целое.
Проанализируем понятие «динамическое обновление». В сообществе его часто называют «демоническим». Рассмотрим, почему это опасно:
Динамическое обновление позволяет нажать «Принять изменения», когда пользователи находятся в системе. Однако это часто приводит к ошибкам кэша, когда у одних пользователей работает старый код, а у других — новый.
Рекомендация: Всегда обновляйте структуру базы данных (кнопка F7), когда в системе нет активных сеансов. Для этого используйте Консоль кластера серверов, чтобы принудительно завершить работу пользователей, если кто-то забыл выйти из программы на ночь.
Иногда просто добавить реквизит недостаточно, его нужно заполнить историческими данными. Рассмотрим пример: мы добавили в справочник Номенклатура реквизит ТипОборудования и хотим заполнить его для всех существующих позиций. Для этого мы создаем внешнюю обработку.
Посмотрим на пример кода для такой обработки:
Процедура ЗаполнитьРеквизитыНаСервере()
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатура = Выборка.ПолучитьОбъект();
Если ОбъектНоменклатура.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
// Логика заполнения
ОбъектНоменклатура.ТипОборудования = Перечисления.ТипыОборудования.Стандарт;
Попытка
ОбъектНоменклатура.Записать();
Исключение
Сообщить("Ошибка при записи: " + Выборка.Ссылка);
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Такие обработки запускаются один раз сразу после обновления конфигурации. Это позволяет корректно внедрить новый функционал, не нарушая целостность управленческого учета.
Подводя итог, зафиксируем основные правила совместной работы над проектом:
1С:УНФ в разделе Еще больше возможностей. Программа крайне гибкая, и многие функции (например, учет по проектам или характеристики) просто выключены по умолчанию.