Как настроить автоматический пересчет количества при смене единицы измерения в документах 1С:УНФ 8.3?

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

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

Основы работы с единицами измерения и коэффициентами в 1С:УНФ

Прежде чем переходить к доработке, давайте убедимся, что все стандартные настройки выполнены верно. 1С:УНФ предоставляет гибкие возможности для учета товаров в различных единицах измерения, что особенно актуально для торговых и производственных предприятий, где один и тот же товар может поставляться, храниться и продаваться в разных фасовках (например, штуки, упаковки, килограммы).

  1. Включение функционала "Несколько единиц измерения": Для начала работы с дополнительными единицами измерения убедитесь, что соответствующая функциональная опция включена. В 1С:УНФ 3.0 эту опцию можно найти в разделе "Настройки" – "Еще больше возможностей" – "Общее".
  2. Классификатор единиц измерения (ОКЕИ): Обеспечивает стандартизацию и корректное взаимодействие с другими системами и отчетностью.
  3. Дополнительные единицы измерения в карточке номенклатуры: Самый критичный этап – это настройка в самой карточке номенклатуры.
    • Для каждой номенклатурной позиции необходимо указать основную единицу измерения.
    • Затем вы добавляете дополнительные единицы измерения и задаете коэффициент пересчета.
    • Коэффициент всегда указывает, сколько базовых единиц содержится в одной дополнительной. От этого напрямую зависит, как будет рассчитываться, например, вес и объём заказа клиента при формировании отгрузочных документов.
  4. Наборы единиц измерения (варианты упаковок): Это позволяет определить для одного товара несколько стандартных вариантов упаковок. В сложных производственных процессах, где важна комплектация, может также потребоваться требование на склад с разузлованием по спецификациям.

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

Почему автоматический пересчет может не работать, несмотря на правильные настройки?

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

  1. Неправильная настройка коэффициентов: Перепроверьте цепочку пересчета в карточке номенклатуры.
  2. Ограничения стандартного функционала: В некоторых релизах система может пересчитывать цену, но не количество. Это критично для складского учета, ведь от точности данных зависит итоговый расчет потенциальной прибыли от складских запасов.
  3. Отсутствие обработки события в форме документа: Если в обработчике события "При изменении" отсутствует логика пересчета, данные останутся прежними.

Решение проблемы: Доработка конфигурации 1С:УНФ

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

1. Определяем место для доработки

Нам необходимо найти обработчик события для изменения единицы измерения. В нашем случае это событие ЗапасыЕдиницаИзмеренияОбработкаВыбора.

  1. Откройте конфигуратор и найдите нужный документ.
  2. Это может быть рабочее место отдела закупок, где создаются приходные накладные, или форма, в которой выполняется анализ позиций товаров в документе реализации для контроля движений по номенклатуре.
  3. Найдите элемент "Единица измерения" в табличной части и перейдите к обработчику события в модуле формы.

2. Дописываем код для пересчета количества

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


&НаКлиенте
Процедура ЗапасыЕдиницаИзмеренияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Если ВыбранноеЗначение = Неопределено Тогда
        Возврат;
    КонецЕсли;

    ТекущиеДанные = Элементы.СписокЗапасов.ТекущиеДанные;
    Если ТекущиеДанные = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Если ТекущиеДанные.Номенклатура = Неопределено Тогда
        ПоказатьПредупреждение(, "Для пересчета необходимо сначала выбрать номенклатуру.");
        Возврат;
    КонецЕсли;

    СтараяЕдиницаИзмерения = ТекущиеДанные.ЕдиницаИзмерения;
    СтароеКоличество = ТекущиеДанные.Количество;
    ТекущиеДанные.ЕдиницаИзмерения = ВыбранноеЗначение;

    РезультатПересчета = ПересчитатьКоличествоНаСервере(ТекущиеДанные.Номенклатура, СтараяЕдиницаИзмерения, ВыбранноеЗначение, СтароеКоличество);

    Если РезультатПересчета.Успех Тогда
        ТекущиеДанные.Количество = РезультатПересчета.НовоеКоличество;
    Иначе
        ПоказатьПредупреждение(, РезультатПересчета.Сообщение);
    КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПересчитатьКоличествоНаСервере(Номенклатура, СтараяЕдиницаИзмерения, НоваяЕдиницаИзмерения, СтароеКоличество)
    Результат = Новый Структура("Успех, Сообщение, НовоеКоличество", Ложь, "", 0);
    // Логика получения коэффициентов через запрос к справочнику ЕдиницыИзмерения
    // ...
    Возврат Результат;
КонецФункции

Важные моменты при доработке:

3. Обращение к специалисту

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

Заключение

Автоматический пересчет единиц измерения в документах 1С:УНФ — важный аспект для эффективного управления запасами. Помните, что любые изменения в логике работы документов напрямую влияют на управленческую отчетность и точность данных в системе. Своевременная настройка или грамотная доработка позволят вам избежать ошибок в учете и автоматизировать рутинные операции.

← На главную