При продаже тяжеловесной или металлической продукции (например, чугунных изделий или металлопроката) часто требуется знать общий вес заказа уже на этапе выставления счета покупателю. Это необходимо для оперативного расчета стоимости доставки и подбора подходящего грузового автотранспорта.
В типовой конфигурации «1С:Бухгалтерия предприятия 3.0» учет логистических и весогабаритных параметров номенклатуры по умолчанию не выведен в документ Счет на оплату покупателю. Однако решить эту задачу можно без снятия конфигурации с поддержки (без изменения «замочка»), сохранив возможность автоматического обновления программы.
Разберем по шагам, как организовать хранение веса для позиций номенклатуры и вывести весовые показатели в печатную форму и документ счета.
Проанализируем типовые возможности программы. В 1С встроен гибкий механизм хранения произвольных параметров без программирования — Дополнительные реквизиты и сведения.
Для включения и настройки механизма выполним следующие действия:
Вес единицы (кг) или Вес;Число;10, Точность: 2 или 3 (в зависимости от требуемой детализации граммов).Теперь в карточке каждого товара в справочнике Номенклатура появится поле для ввода веса. Значения будут сохраняться в табличной части ДополнительныеРеквизиты объекта.
Штатный редактор макетов печатных форм (раздел Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм) позволяет редактировать только статический текст и визуальное оформление (шрифты, границы, логотипы). Добавить вывод динамических данных (веса единицы и общего веса строки), которых нет в типовом запросе формирования счета, одной лишь правкой макета невозможно.
Рассмотрим два основных способа решения:
Это классический и наиболее безопасный вариант расширения функциональности печатных форм. Внешняя печатная форма подключается через пользовательский интерфейс в разделе Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
Логика работы внешней обработки на базе Библиотеки стандартных подсистем (БСП):
СведенияОВнешнейОбработке(), описывающая параметры регистрации формы в документе СчетНаОплатуПокупателю.Товары с левым соединением к табличной части ДополнительныеРеквизиты номенклатуры.Вес (вес единицы), ВсегоВес (произведение количества на вес единицы) и итоговая строка в подвале документа.Посмотрим на пример фрагмента запроса для выборки веса из дополнительных реквизитов:
ВЫБРАТЬ
СчетТабличнаяЧасть.Номенклатура КАК Номенклатура,
СчетТабличнаяЧасть.Количество КАК Количество,
СчетТабличнаяЧасть.Цена КАК Цена,
СчетТабличнаяЧасть.Сумма КАК Сумма,
ЕСТЬNULL(НоменклатураДопРеквизиты.Значение, 0) КАК ВесЕдиницы,
СчетТабличнаяЧасть.Количество * ЕСТЬNULL(НоменклатураДопРеквизиты.Значение, 0) КАК ОбщийВес
ИЗ
Документ.СчетНаОплатуПокупателю.Товары КАК СчетТабличнаяЧасть
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДопРеквизиты
ПО СчетТабличнаяЧасть.Номенклатура = НоменклатураДопРеквизиты.Ссылка
И (НоменклатураДопРеквизиты.Свойство = &РеквизитВес)
ГДЕ
СчетТабличнаяЧасть.Ссылка = &ДокументСсылка
Если менеджеру требуется видеть итоговый вес продукции не только в распечатанном счете, но и непосредственно в процессе набора строк на форме документа, оптимальным решением является расширение конфигурации.
Преимущества расширения:
Вес и итоговый вес партии прямо в интерактивную экранную форму счета на оплату покупателю.
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.ВсегоВес = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.ВесЕдиницы;
ПересчитатьИтоговыйВес();
КонецПроцедуры
Если нет возможности привлечь программиста 1С для создания ВПФ или расширения, проанализируем варианты работы стандартными средствами:
Наименование для печати, куда вручную дописывается вес единицы (например, «Люк чугунный тип Т (тяжелый, 130 кг)»). В печатной форме счета покупатель сразу увидит характеристику, но итоговый суммарный вес программа рассчитать не сможет.кг, а количество в счете указывается в килограммах.