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