Как правильно перенести остатки, цены и взаиморасчеты в чистую базу «1С:Управление торговлей 10.3»?

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

При долгой работе в программе «1С:Управление торговлей 10.3» (особенно если учет ведется более 10 лет) база данных неизбежно разрастается. Увеличивается время резервного копирования, замедляется проведение документов, а в справочниках накапливается огромное количество неактуальной номенклатуры. Стандартная свертка базы далеко не всегда проходит гладко из-за накопившихся ошибок ведения учета. В таких ситуациях оптимальным решением становится перенос актуальных остатков, цен и взаиморасчетов в чистую базу. Разберем подробно, как выполнить эту процедуру самостоятельно, не прибегая к дорогостоящим услугам программистов.

Выясняем причину: почему при вводе остатков на основании инвентаризации заполнилось мало строк?

Рассмотрим частую ошибку начинающих специалистов. При попытке перенести остатки стандартным путем через цепочку документов «Инвентаризация товаров на складе» и «Оприходование товаров» многие сталкиваются с тем, что в оприходование переносится лишь малая часть номенклатуры (например, 226 строк из 2500).

Проанализируем логику работы этих документов в конфигурации «Управление торговлей 10.3». Документ ИнвентаризацияТоваровНаСкладе сам по себе не делает никаких движений по регистрам учета — он лишь фиксирует разницу между учетным количеством в базе и фактическим количеством на складе. Когда мы создаем документ ОприходованиеТоваров на основании инвентаризации, система автоматически переносит туда исключительно излишки (позиции, у которых фактическое количество превышает учетное). Соответственно:

  1. Те строки, где учетное количество совпало с фактическим, в оприходование не попадают.
  2. Те строки, где выявлена недостача, должны списываться отдельным документом СписаниеТоваров, который также создается на основании этой инвентаризации.

Если вы делаете инвентаризацию в старой рабочей базе, программа сопоставляет реальные остатки с текущим учетом и выявляет лишь небольшую долю излишков. Чтобы перенести абсолютно все остатки через инвентаризацию, этот документ следовало бы создавать и заполнять уже в новой, чистой базе, где учетные остатки равны нулю. В таком случае программа посчитает весь объем товаров излишками и полностью перенесет его в оприходование. Однако существует гораздо более простой и надежный способ переноса данных, исключающий рутинные операции.

Пошаговый алгоритм переноса остатков через табличный документ

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

Разберем весь процесс по шагам.

Шаг 1. Подготовка чистой базы и перенос справочной информации

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

  1. В конфигураторе старой рабочей базы сохраняем конфигурацию в файл (меню Конфигурация -> Сохранить конфигурацию в файл...).
  2. Создаем новую пустую базу данных и загружаем в нее сохраненную конфигурацию.
  3. Для переноса справочной информации в старой базе переходим в меню Сервис -> Универсальные обмены -> Выгрузка данных в идентичную конфигурацию.
  4. Отмечаем для выгрузки все необходимые справочники (номенклатура, контрагенты, договоры, склады, организации), планы видов характеристик и константы. Документы выгружать не нужно.
  5. Выгружаем данные в файл и загружаем их в новую чистую базу через аналогичную обработку загрузки.

Шаг 2. Формирование таблицы остатков в старой базе

Теперь подготовим данные по остаткам товаров на складах. Нам потребуется выгрузить их в формат Excel.

  1. В старой базе открываем отчет «Ведомость по товарам на складах» (или «Остатки товаров на складах») на планируемую дату переноса остатков.
  2. Настраиваем группировки отчета. Нам обязательно понадобятся поля: Номенклатура.Код (или Артикул), Номенклатура, Склад и показатель КоличествоОстаток. Использование кодов или артикулов критически важно, так как по ним мы будем сопоставлять номенклатуру, что исключит появление дублей.
  3. Сформированный отчет сохраняем в формате Excel (*.xls или *.xlsx).

Для продвинутых пользователей альтернативным решением может стать использование консоли запросов. Мы можем написать простой запрос для получения остатков товаров в разрезе складов вместе с актуальными ценами номенклатуры:


ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад КАК Склад,
    ТоварыНаСкладахОстатки.Номенклатура.Код КАК КодНоменклатуры,
    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Количество,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    ТоварыНаСкладахОстатки.КоличествоОстаток * ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Сумма
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура

Результат выполнения данного запроса также выгружаем в табличный документ Excel.

Шаг 3. Загрузка остатков товаров в новую базу

Переходим к непосредственной загрузке остатков в чистую информационную базу.

  1. В новой базе создаем новый документ ОприходованиеТоваров. Указываем в нем организацию, склад и статью доходов. Записываем документ, но пока не проводим.
  2. Открываем внешнюю обработку «Загрузка данных из табличного документа».
  3. В поле «Режим загрузки» выбираем значение «Загрузка в табличную часть».
  4. В качестве ссылки на объект выбираем наш созданный документ ОприходованиеТоваров, а в поле «Табличная часть» указываем значение «Товары».
  5. На вкладке «Таблица импорта» открываем ранее сохраненный файл Excel с остатками товаров.
  6. На вкладке «Настройка параметров» сопоставляем колонки из Excel с реквизитами табличной части документа:
    • Для реквизита Номенклатура устанавливаем режим поиска «По коду» или «По артикулу» (в зависимости от того, какое поле вы выгрузили).
    • Сопоставляем колонки количества, цены и суммы.
  7. Нажимаем кнопку «Загрузить». Обработка автоматически заполнит табличную часть документа всеми позициями номенклатуры с корректным сопоставлением, ценами и суммами. После завершения операции проводим созданный документ оприходования.

Шаг 4. Перенос взаиморасчетов с контрагентами

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

  1. В старой базе формируем отчет «Ведомость по взаиморасчетам с контрагентами». Настраиваем группировки: Контрагент, Договор, Сделка (если ведется пореквизитный учет). Сохраняем результат в Excel.
  2. В новой базе переходим в меню Документы -> Дополнительно -> Ввод начальных остатков по взаиморасчетам. Создаем новый документ.
  3. С помощью той же обработки ЗагрузкаДанныхИзТабличногоДокумента.epf загружаем данные о долгах в табличную часть созданного документа ввода остатков. Сопоставление контрагентов и договоров также рекомендуется делать по кодам или уникальным идентификаторам (UUID), чтобы избежать ошибок дублирования при совпадении наименований.

Шаг 5. Очистка базы от неиспользуемой номенклатуры прошлых лет

Поскольку мы перенесли справочник номенклатуры целиком из старой базы (которая велась с 2011 года), в новой чистой базе оказалось много устаревших позиций, которые больше никогда не пригодятся в работе. Однако, в отличие от старой базы, в новой базе по этим позициям нет исторических движений по документам. Это дает нам уникальную возможность легко и безопасно удалить весь мусор.

Применим следующий эффективный прием:

  1. Убеждаемся, что все документы ввода остатков (ОприходованиеТоваров, ВводНачальныхОстатковПоВзаиморасчетам, а также документы УстановкаЦенНоменклатуры) созданы и успешно проведены.
  2. Открываем справочник «Номенклатура».
  3. Выделяем абсолютно все элементы справочника (используем сочетание клавиш Ctrl + A) и нажимаем клавишу Delete, чтобы пометить их на удаление.
  4. Переходим в меню Операции -> Удаление помеченных объектов (в обычном интерфейсе).
  5. Запускаем поиск связей и удаление.

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

Почему стандартная свертка базы в УТ 10.3 часто дает сбой?

Проанализируем, почему стандартные обработки свертки (такие как SvertkaInformacionnoyBasy.epf) регулярно вызывают сложности у системных администраторов и бухгалтеров. Главная проблема кроется в особенностях архитектуры партионного учета «1С:Управление торговлей 10.3».

В этой конфигурации параллельно ведутся два важнейших регистра накопления: ТоварыНаСкладах (отвечает за физическое наличие товара на складах) и ПартииТоваровНаСкладах (отвечает за финансовую себестоимость этих товаров). За многие годы непрерывной работы из-за проведения документов задним числом, отрицательных остатков и ручных корректировок данные в этих регистрах начинают существенно расходиться.

Стандартный механизм свертки пытается свернуть эти регистры автоматически, создавая документы КорректировкаЗаписейРегистров. В результате все накопленные ошибки партионного учета переносятся в новые документы. База данных начинает вести себя некорректно: себестоимость списывается неверно, а новые документы реализации перестают проводиться из-за мнимого отсутствия партий.

Именно поэтому ручной перенос справочников и ввод чистых остатков через документ оприходования товаров является самым профессиональным и надежным решением. Вы полностью очищаете базу от ошибок прошлых периодов, нормализуете партионный учет и получаете стабильно работающую систему с минимальным размером базы данных.

← На главную