При проведении инвентаризации на складах торговых предприятий часто возникает необходимость зафиксировать излишки товаров. В программах линейки 1С (таких как «1С:Управление торговлей», «1С:Комплексная автоматизация» или «1С:ERP») для этой цели используется документ Оприходование излишков товаров. Однако многие пользователи сталкиваются с неожиданной проблемой: несмотря на то, что в самом документе оприходования указаны цены и даже выбран конкретный вид цены, при последующем формировании прайс-листа или выписке розничных документов эти цены не отображаются и не рассчитываются автоматически.
В рамках этой статьи мы подробно разберем, почему так происходит, изучим внутреннюю логику работы системы 1С и рассмотрим по шагам несколько эффективных способов решения этой проблемы — от простых ручных действий до автоматизации процесса с помощью СКД и программных доработок.
Для начала проанализируем ситуацию с технической точки зрения. Многие пользователи предполагают, что если в шапке документа Оприходование излишков товаров присутствует поле Вид цены, то система должна автоматически записать эти цены в базу данных для последующих продаж. На самом деле это визуальное заблуждение, и логика программы работает совершенно иначе.
Документ Оприходование излишков товаров — это чисто складской и финансовый документ. Его главная задача — зафиксировать физическое появление товара на складе и отразить его стоимость в контуре себестоимости. При проведении он делает записи в такие регистры, как Товары на складах и Стоимость товаров (или аналогичные регистры себестоимости в зависимости от настроек вашей базы).
Реквизит Вид цены в данном документе предназначен исключительно для чтения информации, но не для её записи. Рассмотрим подробнее, как это функционирует:
Цены номенклатуры.Цены номенклатуры, поскольку у документа оприходования просто нет таких прав и механизмов проведения по данному регистру.Регистрацией цен в системе 1С занимается строго специализированный документ — Установка цен номенклатуры. Именно он делает записи в регистр сведений, данные из которого затем считываются обработкой «Прайс-лист» и используются при продажах.
Если оприходование излишков у вас происходит редко, и объем номенклатуры невелик, самым простым и надежным решением будет ручная фиксация цен. Рассмотрим этот процесс по шагам:
Установка цен номенклатуры в фоновом режиме.После выполнения этих манипуляций цены будут успешно зарегистрированы в системе, и вы сможете использовать их для дальнейших расчетов и продаж.
Если вы хотите, чтобы система автоматически «подтягивала» цены из документов оприходования излишков при обновлении прайс-листа, можно настроить специальный способ расчета цен с использованием Схемы компоновки данных (СКД). Этот метод не требует изменения конфигурации и отлично подходит для типовых баз.
Разберем, как настроить такую схему:
ВЫБРАТЬ
ОприходованиеТовары.Номенклатура КАК Номенклатура,
ОприходованиеТовары.Характеристика КАК Характеристика,
ОприходованиеТовары.Цена КАК Цена,
ОприходованиеТовары.Ссылка.Валюта КАК Валюта
ИЗ
Документ.ОприходованиеИзлишковТоваров.Товары КАК ОприходованиеТовары
ГДЕ
ОприходованиеТовары.Ссылка.Проведен = ИСТИНА
И ОприходованиеТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
После сохранения этой настройки при формировании прайс-листа вам достаточно будет выбрать этот вид цены и нажать кнопку Изменить цены -> Рассчитать по данным ИБ. Система сама обратится к проведенным документам оприходования, найдет цены и заполнит их в прайс-листе, после чего останется только нажать кнопку «Применить».
Для программистов и системных администраторов, которые хотят максимально упростить жизнь пользователям, оптимальным решением будет создание небольшого расширения или внешней обработки заполнения.
Поскольку в типовом функционале отсутствует возможность ввести документ Установка цен номенклатуры непосредственно на основании документа Оприходование излишков товаров, мы можем решить эту задачу следующими путями:
// Процедура заполнения документа Установка цен номенклатуры на основании Оприходования излишков
Процедура ЗаполнитьУстановкуЦенНаОснованииОприходования(ДокументУстановкиОбъект, ДокументОснование) Экспорт
ДокументУстановкиОбъект.Товары.Очистить();
Для Каждого СтрокаОприходования Из ДокументОснование.Товары Цикл
НоваяСтрока = ДокументУстановкиОбъект.Товары.Добавить();
НоваяСтрока.Номенклатура = СтрокаОприходования.Номенклатура;
НоваяСтрока.Характеристика = СтрокаОприходования.Характеристика;
НоваяСтрока.Цена = СтрокаОприходования.Цена;
// Находим или предопределяем вид цены, по которому приходуем излишки
НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная");
КонецЦикла;
ДокументУстановкиОбъект.Ответственный = Пользователи.ТекущийПользователь();
ДокументУстановкиОбъект.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласовано;
КонецПроцедуры
Такой подход полностью исключает человеческий фактор и предотвращает ошибки ручного ввода при переносе больших спецификаций.
Занимаясь решением технической стороны вопроса, важно не забывать о требованиях законодательства и методологии бухгалтерского и налогового учета. Фиксация цен при оприходовании излишков напрямую влияет на финансовую отчетность компании:
Дт 41 — Кт 91.01 при выгрузке данных в «1С:Бухгалтерию».Таким образом, своевременная и корректная регистрация цен при оприходовании излишков товаров — это не просто удобство для менеджеров, но и залог отсутствия расхождений в учете и претензий со стороны контролирующих органов. Выберите наиболее подходящий для вашей компании метод (ручной ввод, настройка СКД или автоматическая обработка) и поддерживайте порядок в вашей базе данных 1С!