Как правильно перенести остатки товаров и цены в 1С:Розница 2.2 из нетиповой 1С 7.7?

Программист 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Переход со старых версий программного обеспечения на новые стандарты учета — всегда ответственный и трудоемкий процесс. Особенно часто с трудностями сталкиваются при миграции с платформы 1С 7.7 (в особенности если конфигурация была существенно доработана или написана с нуля) на современную конфигурацию 1С:Розница 2.2 (или её развитие 2.3).

В этой статье мы подробно разберем, как правильно организовать перенос справочников, остатков ТМЦ и цен, выясним, почему в Рознице 2.2 нет специализированного документа «Ввод начальных остатков» для товаров, и разберем наиболее эффективные сценарии загрузки данных.

---

Особенности архитектуры 1С:Розница 2.2: куда пропал «Ввод начальных остатков»?

При первом знакомстве с конфигурацией «1С:Розница» редакции 2.2 многие пользователи и даже опытные внедренцы безуспешно пытаются найти в интерфейсе документ с названием «Ввод начальных остатков». Логика подсказывает, что для старта системы должен быть предусмотрен специализированный инструмент, как это сделано, например, в «1С:Бухгалтерии» или «1С:Управлении нашей фирмой» (УНФ), а также в более поздней редакции «1С:Розница 3.0».

Однако в архитектуре 1С:Розница 2.2/2.3 разработчиками штатно заложено иное проектное решение. Роль документа ввода остатков здесь выполняет стандартный складской документ ОприходованиеТоваров (находится в разделе Склад — Складские операции). Именно он формирует необходимые движения по количественным и стоимостным регистрам учета.

---

Зачем указывать цену в документе «Оприходование товаров»?

Часто возникает вопрос: почему при проведении документа ОприходованиеТоваров программа настойчиво требует заполнить цену номенклатуры, если этот документ, казалось бы, фиксирует только физическое наличие товара на складе? Разберем причины более детально:

  1. Формирование себестоимости (цены закупки): В 1С:Розница 2.2 ведется полноценный стоимостный учет. Цены, указанные в оприходовании, ложатся в основу себестоимости ваших запасов.
  2. Расчет финансового результата и валовой прибыли: Если вы решите обойти это требование и укажете условную цену (например, 1 рубль) или проведете документ с нулевой стоимостью, то в будущем при продаже этих товаров программа покажет некорректные отчеты по прибыли. Рентабельность окажется искусственно завышенной, так как себестоимость товаров будет стремиться к нулю.
  3. Синхронизация с «1С:Бухгалтерия» (БП): При обмене данными с бухгалтерской базой документ оприходования переносится в БП и формирует проводку Дт 41.01 - Кт 91.01 (прочие доходы). Бухгалтерский учет не терпит отсутствия суммовой оценки — без цен документ просто не проведется на стороне бухгалтерии.

Поэтому фиксация реальной закупочной цены в оприходовании — это обязательное условие для ведения корректного учета.

---

Метод №1. Классический перенос остатков через «Оприходование товаров» и Excel

Поскольку исходная база 1С 7.7 является нетиповой (самописной), воспользоваться встроенными стандартными правилами обмена (например, для конфигурации «Торговля и склад 9.2») напрямую не удастся. Рассмотрим по шагам универсальный и наиболее надежный способ загрузки данных через промежуточные файлы формата Excel.

Шаг 1. Подготовка данных в 1С 7.7

В исходной базе 7.7 необходимо сформировать и выгрузить в таблицу Excel ведомость остатков. Для этого можно написать простейший отчет или воспользоваться универсальной обработкой выгрузки табличных частей. Нам понадобятся следующие колонки:

Шаг 2. Первоначальная настройка 1С:Розница 2.2

Перед загрузкой данных обязательно настройте структуру предприятия в новой базе:

Шаг 3. Загрузка справочника «Номенклатура»

Для импорта самих позиций воспользуемся стандартной обработкой «Загрузка данных из табличного документа» (ее можно открыть через главное меню: Все функции — Обработки или настроить доступ через администрирование).

Проанализируем процесс настройки:

  1. Открываем обработку, выбираем режим загрузки в справочник Номенклатура.
  2. Копируем подготовленные строки из Excel в табличное поле обработки.
  3. На вкладке «Настройка параметров» сопоставляем колонки файла с реквизитами справочника в 1С (Наименование, Артикул, Единица измерения).
  4. Выполняем загрузку. На этом этапе создаются сами карточки товаров. При наличии штрихкодов аналогичным образом через эту же обработку загружаем данные в регистр сведений ШтрихкодыНоменклатуры.

Шаг 4. Оприходование остатков с ценами закупки

Создаем новый пустой документ ОприходованиеТоваров. Нам необходимо заполнить его табличную часть товарами, количеством и ценами закупки из нашего Excel-файла.

Для автоматизации этого процесса в документе предусмотрена кнопка «Заполнить — Загрузить из внешнего файла» (или мы можем снова использовать универсальную обработку «Загрузка данных из табличного документа», выбрав в качестве цели загрузки табличную часть созданного документа оприходования).

После успешного заполнения табличной части проводим документ. С этого момента на складе числится товар по соответствующей себестоимости.

Шаг 5. Установка розничных (продажных) цен

Чтобы начать продажи на кассах, нам нужно зарегистрировать розничные цены. На основании проведенного документа ОприходованиеТоваров создаем документ УстановкаЦенНоменклатуры.

Если в оприходовании были указаны цены закупки, а в правилах ценообразования настроена автоматическая наценка, программа сама рассчитает розничные цены. Если же розничные цены в вашей старой базе были произвольными и не подчинялись единому правилу наценки, загрузите их напрямую из сохраненного Excel-файла в документ установки цен, используя поиск по артикулу или штрихкоду.

---

Метод №2. Альтернативный обходной путь через «Поступление товаров»

Среди практикующих специалистов по внедрению 1С очень популярен альтернативный метод ввода остатков, который позволяет значительно сократить количество кликов и исключить путаницу с последовательностью проведения документов. Рассмотрим эту схему подробнее.

Вместо складского оприходования используется документ ПоступлениеТоваров:

  1. В справочнике «Контрагенты» создается служебный (фиктивный) поставщик, например, с наименованием «Ввод начальных остатков (технический)».
  2. Создается документ ПоступлениеТоваров от имени этого контрагента на нужный склад.
  3. В табличную часть загружаются товары, их количество и реальные закупочные цены.
  4. Главный плюс метода: Прямо из формы проведенного поступления по одной кнопке «Создать на основании» создается документ УстановкаЦенНоменклатуры. Программа автоматически подтянет все цены закупки и позволит мгновенно рассчитать и зафиксировать розничные цены для кассовых узлов.
  5. Возникающая техническая задолженность перед фиктивным поставщиком в конце процедуры просто списывается документом КорректировкаДолга или игнорируется, если расчеты с поставщиками в Рознице вести не планируется.

---

Программный перенос данных (для разработчиков)

Если позиций в базе много (десятки тысяч) и ручной перенос через Excel занимает слишком много времени, оптимальным решением будет написание правил обмена в среде «1С:Конвертация данных 2.0» или создание небольшой внешней обработки для прямого COM-соединения с базой 1С 7.7.

Рассмотрим пример кода на встроенном языке 1С, который иллюстрирует программное создание документа оприходования и заполнение его табличной части из внешнего источника данных:


// Создание документа Оприходование товаров
НовыйДок = Документы.ОприходованиеТоваров.СоздатьДокумент();
НовыйДок.Дата = КонецДня(ТекущаяДата() - 86400); // Вводим остатки вчерашним днем
НовыйДок.Организация = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7700000000");
НовыйДок.Магазин = Справочники.Магазины.НайтиПоНаименованию("Основной магазин");
НовыйДок.Склад = Справочники.Склады.НайтиПоНаименованию("Торговый зал");

// Предположим, у нас есть ТЗДанных, полученная из 1С 7.7
Для Каждого СтрокаДанных Из ТЗДанных Цикл
    НоваяСтрока = НовыйДок.Товары.Добавить();
    НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", СтрокаДанных.Артикул);
    НоваяСтрока.Количество = СтрокаДанных.Количество;
    НоваяСтрока.Цена = СтрокаДанных.ЦенаЗакупки;
    НоваяСтрока.Сумма = СтрокаДанных.Количество * СтрокаДанных.ЦенаЗакупки;
КонецЦикла;

Попытка
    НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
    Сообщить("Документ оприходования успешно проведен!");
Исключение
    НовыйДок.Записать(РежимЗаписиДокумента.Запись);
    Сообщить("Не удалось провести документ: " + ОписаниеОшибки());
КонецПопытки;

---

Какие еще остатки необходимо перенести при старте?

Успешный запуск магазина не ограничивается только товарами. Проанализируем, какие еще данные обязательно нужно внести в систему перед началом работы торговой точки:

Используя предложенные методики и подходы, вы сможете перенести все необходимые данные из старой нетиповой конфигурации 1С 7.7 в 1С:Розница 2.2 максимально быстро, избежав при этом критических ошибок в учете себестоимости и ценообразовании.

← На главную