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