← Назад к вопросам

Опиши свою первую сложную задачу

1.0 Junior🔥 191 комментариев
#Опыт и софт-скиллы

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Моя первая сложная задача в 1С

Контекст: развёртывание 1С УПП для сети магазинов

Это было в 2013 году, когда я только начинал работать 1С разработчиком. Компания владела сетью из 8 розничных магазинов и решила внедрить 1С:Управление производством и персоналом (УПП) вместо традиционной системы учёта на основе Excel.

Суть проблемы

Исходное состояние:

  • В каждом магазине свой Excel с данными о товарах, остатках и продажах
  • Базы данных несогласованы: один товар может быть с разными артикулами в разных магазинах
  • Нет единой системы учёта, постоянны расхождения
  • Руководство требовало консолидированное видение остатков и продаж по всей сети в реальном времени

Мне поставили задачу:

  1. Развернуть 1С:УПП на сервере
  2. Мигрировать исторические данные из 8 Excel-файлов
  3. Синхронизировать номенклатуру (привести 8 разных справочников товаров в единый)
  4. Обеспечить обмен данными между центром и магазинами (выгрузка ТТН со склада, загрузка продаж из кассы)
  5. Создать отчёты для руководства по выполнению плана продаж

Что было непростым

Проблема 1: Хаос в номенклатуре

В файле магазина №1:

  • Товар "Молоко Домик" с артикулом 001, цена 80 руб
  • В файле магазина №2: "Молоко ДОМИК" артикул DOmik_001, цена 85 руб
  • В файле магазина №3: "МОЛОКО" артикул МЛК-ЧМ, цена 80 руб

Это один и тот же товар, но представлен трёхкратно с разными реквизитами. Ручная стандартизация была невозможна — товаров 5000+.

Проблема 2: Исторические остатки

Было непонятно, какой остаток был точным на дату начала работы системы. Excel-файлы содержали:

  • Текущие остатки (точно неизвестно, на какую дату)
  • Списание товара (просто удалены строки, истории нет)
  • Учёт в натуральных единицах ("2 коробки" вместо "24 штуки")

Проблема 3: Обмен данных между филиалами

Магазины должны были:

  • Получать приказы на отпуск со склада
  • Передавать документы учёта (кассу, инвентаризацию)
  • Работать в режиме "онлайн" или "оффлайн" с последующей синхронизацией

А в 2013 году VPN и облака были дорогим удовольствием.

Мой подход к решению

Этап 1: Нормализация номенклатуры

Я создал обработку на 1С, которая:

// Загружает все 8 файлов
// Проверяет каждый товар по трём критериям:
// 1. Наименование (с игнорированием регистра и пробелов)
// 2. Примерное совпадение (Левенштейна расстояние < 3)
// 3. Цена (если цены совпадают, вероятно один товар)

// Результат: список вероятных дубликатов
// Пользователь вручную проверял и подтверждал объединение
// Система создавала единый справочник Товаров

Эта обработка сэкономила месяцы ручной работы. Хотя пришлось проверять вручную, компьютер указал на 90% дубликатов.

Этап 2: Установка начальных остатков

Я создал документ-обработку "Инвентаризация на начало периода":

// Для каждого товара в каждом магазине
// Создавал строку движения в регистр "ТоварыНаСкладах"
// С датой 01.01.2013 и регистратором = инвентаризация

Движение.Период = "2013-01-01";
Движение.Склад = Склад;
Движение.Номенклатура = Товар;
Движение.Количество = КоличествоИзExcel;

// Это позволило в любой момент узнать, какие были остатки на эту дату

Этап 3: Реплика-схема обмена данными

Для синхронизации между магазинами я реализовал простой, но эффективный обмен:

// На сервере центра: таблица "РегистрДокументовНаОтправку"
// где хранятся все созданные в центре приказы и рассчеты

// У магазина: таблица входящих документов
// 1. Каждый вечер магазин скачивает новые документы со склада
// 2. Загружает их в свою БД
// 3. Загружает свои кассовые чеки и инвентаризации на сервер

// При наличии интернета — в реальном времени
// Без интернета — синхронизация по расписанию

Я использовал встроенные возможности 1С — обмен через XML-файлы и регламентные задания.

Этап 4: Отчёты для руководства

Создал три ключевых отчёта:

// 1. Остатки товаров по магазинам (в реальном времени)
//    - показывает низкие остатки (красным)
//    - позволяет видеть дисбаланс между магазинами

// 2. Выполнение плана продаж
//    - сравнивает плановые цифры с фактическими
//    - показывает тренд по дням и неделям

// 3. Аналитика: какие товары продаются лучше всего
//    - помогает принимать решения о переброске товара между магазинами

Чему я научился

Из технического:

  1. Обработка и нормализация грязных данных — это половина успеха проекта
  2. История данных критична — нужно всегда знать, когда и что изменилось
  3. Синхронизация между несколькими БД — одна из сложнейших задач в 1С
  4. Тестирование на реальных данных — никогда не верь, что «в боевой системе это не произойдёт»

Из организационного:

  1. Вовлечение пользователей на каждом этапе — их мнение о том, какой товар это всё же один товар, было решающим
  2. Пилотный запуск — сначала мы запустили один магазин, нашли все ошибки, потом масштабировали
  3. Документирование процесса — чтобы другие мог поддерживать систему после моего отъезда

Результат

Через 4 месяца интенсивной работы система заработала. Руководство получило:

  • Единую номенклатуру по сети
  • Реальное видение остатков
  • Возможность быстро находить товары в разных магазинах
  • Данные для анализа продаж

Эта задача научила меня думать системно — не просто кодить, а понимать, как инструмент решает бизнес-проблему.

Опиши свою первую сложную задачу | PrepBro