При автоматизации предприятий, работающих с газом и горюче-смазочными материалами (ГСМ), одной из самых сложных задач является организация учета одновременно в двух единицах измерения — массе (килограммы, тонны) и объеме (литры, кубические метры). Основная сложность заключается в том, что связь между этими единицами не является линейной: объем напрямую зависит от температуры и плотности вещества. Рассмотрим подробнее, как реализовать подобный учет на платформе 1С 8.3, проанализируем выбор конфигурации и разберем методологические подходы.
Прежде всего, разберем ситуацию, почему стандартный механизм коэффициентов единиц измерения в 1С:Управление торговлей или 1С:ERP часто оказывается неприменимым. В типовых конфигурациях коэффициент между литрами и килограммами жестко задается в карточке номенклатуры или упаковки. Однако для ГСМ и газа ситуация иная:
Таким образом, нам необходим параллельный независимый учет в двух единицах измерения, где ресурсы «количество» и «объем» живут в регистрах как равноправные сущности.
Многие эксперты сходятся во мнении, что для небольших и средних предприятий оптимальным путем будет доработка 1С:Бухгалтерия предприятия 3.0 (БП 3.0). Рассмотрим, почему это выгодно:
Использование хозрасчетного регистра: В отличие от 1С:ERP, где проведение документа затрагивает десятки регистров накопления, в БП 3.0 основной упор идет на регистр бухгалтерии Хозрасчетный. Добавление параллельного учета здесь требует меньших трудозатрат.
Для реализации этого метода проанализируем следующие шаги:
Поступление (акты, накладные) и Реализация (акты, накладные) добавим колонки для ввода плотности и объема.Пример программной логики для расчета плотности смеси в резервуаре:
// Математическая модель усреднения плотности при поступлении
ПлотностьНовая = (МассаОстаток + МассаПриход) / (ОбъемОстаток + ОбъемПриход);
Интересным подходом является заимствование архитектуры из отраслевых решений для сельского хозяйства (например, «Бухгалтерия сельскохозяйственного предприятия»). В таких конфигурациях реализован учет животных в головах и массе (живом весе). Проанализируем, как это можно спроецировать на ГСМ:
Преимущество этого метода в том, что вы получаете чистый двойной количественный учет, который не зависит от жестких коэффициентов в карточке товара. Это позволяет видеть в ОСВ одновременно и тонны, и литры по каждой позиции.
Если специфика бизнеса подразумевает хранение на нефтебазах, стоит обратить внимание на специализированные решения, такие как 1С:Торговля нефтепродуктами или 1С:АЗС. В этих системах функционал уже реализован «из коробки»:
Выясним причину, по которой многие отказываются от ERP в пользу БП 3.0 в данной задаче. В 1С:ERP архитектура регистров (например, ЗапасыНаСкладах) жестко ориентирована на одну базовую единицу измерения. Попытка добавить туда второй количественный ресурс приведет к необходимости снимать с поддержки огромное количество общих модулей и форм, что сделает обновление системы крайне затруднительным.
При разработке собственной подсистемы на 8.3 (Управляемые формы) рекомендуем придерживаться следующих правил:
1. Использование характеристик или серий: Для хранения плотности конкретной партии лучше всего использовать механизм серий. В каждой серии можно хранить плотность как дополнительный реквизит. При списании серии программа будет точно знать, какой коэффициент использовать для пересчета.
2. Контроль остатков: Важно реализовать контроль остатков по обеим единицам измерения. Разберем ситуацию: если из-за ошибок округления масса обнулилась, а объем остался (или наоборот), система должна предлагать документ корректировки.
3. Интеграция с оборудованием: Поскольку мы работаем в среде 8.3, можно использовать современные средства интеграции (OPC-серверы) для получения данных напрямую с уровнемеров цистерн. Это позволит автоматизировать ввод плотности и объема, исключив человеческий фактор.
Рассмотрим пример кода для обработки изменения объема в форме документа:
&НаКлиенте
Процедура ТоварыОбъемПриИзменении(Элемент)
СтрокаТаблицы = Элементы.Товары.ТекущиеДанные;
Если СтрокаТаблицы.Плотность <> 0 Тогда
СтрокаТаблицы.Количество = СтрокаТаблицы.Объем * СтрокаТаблицы.Плотность;
КонецЕсли;
КонецПроцедуры
Подведем итог: если ваша задача — быстро запустить учет с минимальными затратами, выбирайте БП 3.0 с доработкой забалансового учета. Если же вы планируете глубокую автоматизацию нефтебазы с учетом метрологических характеристик, лучше инвестировать в отраслевое решение на базе ERP, где логика двойных единиц измерения уже заложена в ядро системы. Помните, что для газа и ГСМ критически важен не только сам факт наличия двух единиц, но и корректное списание потерь (усушка, испарение), которое в самописных системах реализовать крайне трудозатратно.