Как организовать учет и продажу лекарств по частям (блистерам) в 1С:Розница. Аптека

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

В аптечном бизнесе одной из самых трудоемких задач является учет лекарственных средств, которые продаются частями (вторичными упаковками). Когда упаковка делится на 2, 4 или 10 частей, проблем обычно не возникает. Однако при делении на 3, 7, 9 или другие числа, не дающие конечную десятичную дробь (например, 1/3 = 0.3333...), стандартные механизмы учета единиц измерения могут приводить к ошибкам в остатках и некорректному расчету розничной цены. Разберем подробно, как решить эту проблему в конфигурации 1С:Розница. Аптека.

Анализ проблемы неделимых коэффициентов

Рассмотрим ситуацию: на склад поступает упаковка препарата стоимостью 600 рублей, содержащая 3 блистера. Если мы установим коэффициент единицы измерения «блистер» как 0.333, то при продаже одного блистера система рассчитает цену как 600 * 0.333 = 199.80. При продаже трех блистеров общая сумма составит 599.40, что приводит к потере 60 копеек и расхождениям в бухгалтерском и складском учете. Попытки округления часто приводят к тому, что цена за часть либо занижается, либо завышается относительно целой упаковки.

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

Решение 1: Использование дробного количества и ручных корректировок

Самый простой путь, не требующий глубокой доработки системы, — это разрешение продажи дробного количества товара в настройках РМК (Рабочего места кассира).

  1. Перейдем в настройки профиля входа или в настройки РМК и разрешим использование дробного количества.
  2. В карточке номенклатуры установим возможность продажи нецелыми единицами.
  3. Фармацевт при продаже вводит количество вручную (например, 0.334 для первого блистера и 0.333 для остальных).

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

Решение 2: Отраслевой механизм «Доли упаковки»

В специализированных решениях (например, «1С:Розница 8. Аптека» для России или Казахстана) реализован механизм работы с долями. Проанализируем, как он работает программно и методически.

Вместо использования десятичных коэффициентов в справочнике Упаковки, система оперирует понятием «количество в упаковке». В карточке номенклатуры указывается, что целая упаковка состоит из N-го количества первичных единиц (блистеров, ампул).

При этом в РМК кассир выбирает не 0.333, а команду «Продать часть», указывая «1 из 3». Система при этом выполняет следующие действия:

Решение 3: Изменение базовой единицы учета

Если специфика аптеки подразумевает частую продажу поштучно, рассмотрим вариант перевода учета на минимальную единицу. Вместо «коробки» сделаем базовой единицей «таблетку» или «блистер».

Разберем алгоритм настройки:

  1. Установим базовую единицу измерения — шт (блистер).
  2. Создадим упаковку «Коробка» с целым коэффициентом (например, 3).
  3. При поступлении товара от поставщика (если в накладной указаны коробки) система будет автоматически пересчитывать их в штуки по целым числам.

Это исключает появление бесконечных дробей в регистре ТоварыНаСкладах. Однако отчеты по продажам в этом случае будут показывать остатки в блистерах, что может быть непривычно для заведующей аптекой.

Техническая реализация распределения цены (для программиста)

Если вы дорабатываете систему самостоятельно, посмотрите на пример логики, которая помогает избежать проблем с копейками при делении упаковки:


Функция РассчитатьЦенуЧасти(ЦенаУпаковки, ВсегоЧастей, НомерЧасти)
    БазоваяЦенаЧасти = Окр(ЦенаУпаковки / ВсегоЧастей, 2);
    Если НомерЧасти = ВсегоЧастей Тогда
        // Последняя часть забирает остаток погрешности
        Возврат ЦенаУпаковки - (БазоваяЦенаЧасти * (ВсегоЧастей - 1));
    Иначе
        Возврат БазоваяЦенаЧасти;
    КонецЕсли;
КонецФункции

При использовании такой логики ЦенаУпаковки = 600 при делении на 3 даст: 200.00, 200.00 и 200.00. А при цене 500 рублей даст: 166.67, 166.67 и 166.66. Сумма всегда будет равна 500.

Учет маркировки (МДЛП и ИС МПТ) при делении

С введением обязательной маркировки лекарственных средств (DataMatrix коды) процесс деления упаковки усложнился. Выясним основные правила:

Частичное выбытие: В современных версиях «1С:Розница. Аптека» при сканировании кода маркировки с коробки, которую нужно разделить, система запрашивает количество долей к продаже. В кассовый чек передается информация о частичном выбытии кода. Например, если в коробке 3 блистера, код маркировки будет «жить» в системе до тех пор, пока не будут проданы все 3 части (3/3).

Важные правила работы с маркировкой:

Практические рекомендации по настройке справочников

Для корректной работы рекомендуем придерживаться следующей структуры в справочниках 1С:

  1. Вид номенклатуры: Создайте отдельный вид «Лекарственные средства (с делением)» с установленным признаком «Продажа долями».
  2. Единицы измерения: Используйте только целые числа в поле «Количество в упаковке». Избегайте ввода коэффициентов типа 0.33 в текстовые поля.
  3. Округление: В настройках видов цен установите правило «Округлять в пользу покупателя» для исключения претензий со стороны проверяющих органов по поводу превышения предельно допустимых цен (ПДЦ) на жизненно важные препараты (ЖНВЛП).

Таким образом, для стабильной работы аптеки лучше всего использовать типовой механизм «Частичного выбытия» и «Долей упаковки», встроенный в отраслевое расширение «Аптека». Это обеспечит корректность складских остатков и полное соответствие требованиям систем маркировки Честный Знак или ИС МПТ.

← На главную