В типовых конфигурациях 1С, таких как «1С:Розница», «Управление торговлей» или «УНФ», стандартный бизнес-процесс предполагает разделение этапов: сначала мы приходуем товар по закупочным ценам документом Поступление товаров, а затем, после его проведения, создаем документ Установка цен номенклатуры для назначения розничных цен. Для магазинов с большим ассортиментом и частой корректировкой цен «на лету» такая схема превращается в двойную работу. Рассмотрим, как упростить этот процесс и сделать ввод цен продажи максимально быстрым и удобным, работая в одном окне.
Прежде чем прибегать к программированию, проанализируем штатные возможности современных версий 1С. Во многих редакциях «Розницы» и «УТ» в командной панели табличной части документа Приходная накладная (или Поступление товаров) существует кнопка, позволяющая работать с ценами, не покидая документ.
Разберем, как это работает по шагам:
Установка цен номенклатуры, привязав его к текущему поступлению.Этот способ является наиболее безопасным, так как он не требует внесения изменений в код программы и сохраняет типовую логику хранения данных.
Если штатный механизм кажется неудобным из-за необходимости открывать лишние окна, наиболее эффективным решением будет использование расширения конфигурации. Это позволит добавить колонку «Цена розничная» прямо в основную таблицу товаров документа поступления.
Выясним техническую сторону реализации такого решения. Нам необходимо выполнить следующие действия:
ПоступлениеТоваров и его табличную часть Товары.ЦенаРозница (тип Число).ПриЗаписи или ПослеЗаписи, который будет программно генерировать документ установки цен.Проанализируем пример программного кода, который может использоваться в расширении для автоматического создания цен:
Процедура Расш1_ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
// Создаем новый документ установки цен
НоваяУстановка = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НоваяУстановка.Дата = ТекущийОбъект.Дата;
НоваяУстановка.ДокументОснование = ТекущийОбъект.Ссылка;
Для Каждого СтрокаТЧ Из ТекущийОбъект.Товары Цикл
Если СтрокаТЧ.ЦенаРозница > 0 Тогда
НоваяСтрока = НоваяУстановка.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаТЧ.Номенклатура;
НоваяСтрока.Цена = СтрокаТЧ.ЦенаРозница;
// Указываем вид цены (например, Розничная)
НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
КонецЕсли;
КонецЦикла;
Если НоваяУстановка.Товары.Количество() > 0 Тогда
НоваяУстановка.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
КонецПроцедуры
Важный нюанс: при таком подходе цена продажи всегда будет «под рукой», и пользователю не придется переключаться между интерфейсами. Это именно то решение, которое чаще всего внедряют специалисты для розничных магазинов.
Рассмотрим нестандартный, но очень удобный способ быстрого редактирования цен прямо из поступления, который часто используют опытные пользователи. В типовых конфигурациях есть встроенная обработка печати ценников.
Разберем алгоритм действий:
Преимущество этого метода в том, что интерфейс печати ценников обычно более компактный и приспособлен для массового редактирования строк, чем стандартный документ установки цен.
Если вы работаете в актуальных редакциях на платформе 8.3 (например, «1С:УНФ»), то задача решается еще проще. В настройках параметров учета можно активировать опцию автоматической регистрации цен поставщика и цен продажи.
Посмотрим, как настроить систему:
Приходная накладная в колонке Цены и скидки (настройка колонок) можно включить отображение розничных цен.ЦеныНоменклатуры, исключая необходимость создавать промежуточные документы вручную.Мы проанализировали ситуацию и выяснили, что проблема «двойного ввода» в 1С решаема несколькими путями. Если ваша конфигурация позволяет, используйте штатную настройку «Регистрация цен в накладных». Если вы работаете в более старых редакциях, оптимальным выбором станет использование расширения, которое добавит колонку в таблицу товаров. Это позволит вам сохранить «чистоту» конфигурации для обновлений, обеспечив при этом комфортную работу кладовщику или менеджеру по закупкам.
Помните, что при любом способе автоматического создания цен важно следить за тем, чтобы документ Установка цен номенклатуры не дублировался при каждом перепроведении поступления — для этого в коде расширения стоит добавить проверку на наличие уже созданных документов-оснований.