Как организовать учет фасованного весового товара в 1С 7.7 Торговля и Склад и выгружать его в килограммах

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При автоматизации торговых и складских операций нередко возникает задача: весовой товар поступает от поставщика общей массой в килограммах (например, сахар 100 кг), затем расфасовывается в потребительские пакеты различной емкости (1 кг, 2 кг, 5 кг) и отгружается клиентам поштучно. При этом складскому персоналу необходим строгий количественный учет остатков по каждой отдельной упаковке, а бухгалтерия требует отражения всех движений и остатков исключительно в килограммах по единой весовой позиции.

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

Почему не стоит дублировать регистры остатков

Первая идея, которая часто возникает у разработчиков — создать параллельный регистр для хранения остатков в килограммах или добавить новые измерения в существующий регистр ОстаткиТМЦ. Рассмотрим, почему этого делать не следует:

  1. Ограничения файловых баз DBF: Любое расширение структуры регистров или добавление нового регистра удваивает объем таблиц итогов (файлы RG*.DBF). В формате DBF действует строгое ограничение на максимальный размер файла в 2 ГБ, превышение которого приводит к повреждению информационной базы.
  2. Сложность поддержки кода проведения: При создании дополнительного регистра потребуется переписать модули проведения всех приходных, расходных и складских документов, а также скорректировать логику контроля отрицательных остатков.
  3. Замедление работы запросов: Обработка дополнительного регистра при формировании отчетов существенно увеличивает время выполнения запросов на устаревшем движке 1С 7.7.

Вариант 1. Использование механизма единиц измерения и коэффициентов

Проанализируем базовый функционал конфигурации. В типовой «Торговля и Склад 7.7» для одной номенклатурной позиции можно создать несколько единиц измерения в подчиненном справочнике Единицы:

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

Ограничение метода: Данный подход идеален, если на складе не требуется вести раздельный учет доступных остатков конкретных упаковок. Однако если на складе лежит 30 пакетов по 1 кг и 10 пакетов по 5 кг, система будет видеть общий остаток в 80 кг. Если клиент закажет 80 пакетов по 1 кг, типовой контроль остатков пропустит проведение документа, хотя физически мелких упаковок на складе нет.

Вариант 2. Раздельные карточки номенклатуры и реквизит связки (Оптимальный способ)

Наиболее надежным и простым в реализации решением является создание отдельных элементов справочника для каждого вида фасовки с привязкой к родительскому весовому товару через специальный реквизит. Это позволяет вести точный штучный учет на складе, оформлять операции фасовки документом КомплектацияТМЦ и прозрачно консолидировать данные при выгрузке в бухгалтерию.

Разберем по шагам реализацию данного механизма:

  1. В конфигураторе открываем справочник Номенклатура и добавляем новый реквизит ОбъединеннаяКарточка с типом Справочник.Номенклатура.
  2. Выносим добавленный реквизит на форму элемента справочника.
  3. Для весового товара (например, «Сахар-песок весовой») и для всех обычных штучных товаров реквизит ОбъединеннаяКарточка должен ссылаться на сам текущий элемент. Для фасованных товаров («Сахар 1 кг», «Сахар 5 кг») в этом реквизите указываем ссылку на базовый «Сахар-песок весовой». Базовой единицей для всех позиций устанавливаем «кг».
  4. Заполняем реквизит для уже существующей номенклатуры с помощью групповой обработки:

спр = СоздатьОбъект("Справочник.Номенклатура");
спр.ВыбратьЭлементы();
Пока спр.ПолучитьЭлемент() = 1 Цикл
    Если спр.ЭтоГруппа() = 0 Тогда
        Если ПустоеЗначение(спр.ОбъединеннаяКарточка) = 1 Тогда
            спр.ОбъединеннаяКарточка = спр.ТекущийЭлемент();
            спр.Записать();
        КонецЕсли;
    КонецЕсли;
КонецЦикла;

Консолидация данных в отчетах для сверки

Посмотрим, как быстро модифицировать отчеты (например, «Ведомость по остаткам ТМЦ» или «Анализ продаж») для сверки остатков с бухгалтерией. В платформе 1С 7.7 встроенный язык запросов («черный запрос») позволяет группировать данные по реквизитам объектов через точку.

В тексте запроса отчета заменяем обращение к измерению регистра:


// Исходный фрагмент запроса:
// |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;

// Измененный фрагмент для консолидации:
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура.ОбъединеннаяКарточка;
|Группировка Номенклатура без групп;

При таком подходе отчет автоматически свернет все фасовки («Сахар 1 кг», «Сахар 2 кг», «Сахар 5 кг») в одну строку «Сахар-песок весовой», просуммировав их вес в килограммах.

Особенности выгрузки данных и расчета себестоимости

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

  1. Подмена номенклатуры в выгрузке: В обработке обмена данными (через OLE/COM или текстовые файлы) при чтении строк документов достаточно обращаться к полю Номенклатура.ОбъединеннаяКарточка вместо Номенклатура, а количество передавать в базовых единицах (кг).
  2. Списание тары и технологические потери: Операцию фасовки на складе следует отражать документом КомплектацияТМЦ. Это позволит не только списать исходный вес сырья и оприходовать готовые пакеты, но и включить в себестоимость фасовки упаковочные материалы (пакеты, этикетки).
  3. Погрешности округления НДС: При суммировании нескольких строк фасованного товара в одну строку килограммов возможны расхождения в копейках по суммам налога. Рекомендуется передавать в бухгалтерскую базу исходные суммы документов без пересчета от новой расчетной цены за килограмм.
← На главную