Где в документе Кассовая смена записан Компьютер и пользователь в 1С:УТ 10.3

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

При работе с конфигурацией «Управление торговлей 10.3» программисты часто сталкиваются с ситуацией, когда в форме списка документа Кассовая смена отображаются данные (например, имя компьютера или пользователь), которых физически нет в реквизитах самого документа в конфигураторе. Это вызывает закономерные вопросы: откуда берутся эти данные, как они связаны с документом и нужно ли вообще использовать этот объект в кастомных схемах автоматизации.

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

Механизм отображения компьютера в форме списка

Разберем ситуацию, когда в списке документов мы видим колонку «Компьютер», но, открыв состав реквизитов документа в дереве метаданных, не находим там соответствующего поля. Рассмотрим подробнее, как 1С реализует это «магическое» появление данных.

В типовом решении УТ 10.3 (начиная с релизов, поддерживающих 54-ФЗ) форма списка документа Кассовая смена часто строится на основе произвольного запроса динамического списка. Поле «Компьютер» не хранится в таблице документов, а вычисляется «на лету» по следующей цепочке связей:

  1. В документе есть обязательный реквизит КассаККМ (ссылка на справочник КассыККМ).
  2. В справочнике КассыККМ указано конкретное торговое оборудование (фискальный регистратор).
  3. Сведения о том, к какому компьютеру привязано данное оборудование, хранятся в регистре сведений «Торговое оборудование» (или в более новых редакциях — ПодключаемоеОборудование).
  4. При формировании списка документов система выполняет левое соединение таблицы документов с этим регистром сведений по ключу оборудования и выводит имя компьютера, за которым закреплена данная касса.

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

Куда пропадает «Пользователь» или «Ответственный»?

Проанализируем ситуацию с реквизитом «Ответственный». В большинстве документов 1С это стандартный реквизит, но в Кассовой смене он может отсутствовать. Это обусловлено методологией:

Во-первых, юридически значимым лицом при работе с кассой является кассир, данные которого передаются в фискальный накопитель и ОФД. Эти данные берутся из настроек пользователя в 1С или параметров торгового оборудования, а не из реквизитов документа.

Во-вторых, если вам необходимо программно определить, кто открыл смену, можно использовать следующий подход — найти первый по времени документ Чек ККМ, связанный с этой сменой. У документа Чек ККМ реквизит Ответственный присутствует всегда.

Особенности работы в терминальном режиме (RDP)

Выясним причину возможных проблем при работе через удаленный рабочий стол. Часто функция ИмяКомпьютера() в среде RDP возвращает имя сервера, а не локальной машины пользователя. Это приводит к тому, что для системы все кассиры «сидят за одним компьютером».

Для корректного определения рабочего места в УТ 10.3 при работе через терминал рекомендуется использовать идентификацию по Client ID (сочетание имени сервера и сетевого имени клиента). Если вы разрабатываете свою систему обмена, рассмотрите пример записи данных в регистр сведений:


// Пример логики определения рабочего места
ИмяМашины = СокрЛП(ИмяКомпьютера());
ИмяПользователяОС = СокрЛП(ИмяПользователяСети());
УникальноеРабочееМесто = ИмяМашины + "_" + ИмяПользователяОС;

// Поиск оборудования по привязке к этому идентификатору
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.ТорговоеОборудование ГДЕ РабочееМесто = &РабочееМесто";
Запрос.УстановитьПараметр("РабочееМесто", УникальноеРабочееМесто);

Зачем вообще нужен документ «Кассовая смена»?

Многие разработчики, внедряющие ручную отправку данных на ККМ (через драйвер, минуя типовые обработки), задаются вопросом: стоит ли вообще создавать этот документ? Посмотрим на ситуацию с точки зрения системной логики УТ 10.3:

  1. Контроль лимита времени: Смена не может длиться более 24 часов. Документ в 1С позволяет системе заблокировать пробитие чека, если смена «зависла», предотвращая нарушение кассовой дисциплины.
  2. Связь с Отчетом о розничных продажах: При закрытии смены типовой механизм собирает все чеки, у которых статус смены совпадает с текущей. Без документа Кассовая смена вам придется полностью переписывать процедуру закрытия смены и формирования сводных отчетов.
  3. Статусы чеков: Именно наличие открытой смены определяет состояние документов Чек ККМ. После фиксации закрытия смены в 1С чеки переходят в архив, освобождая оперативную базу от лишних движений.
  4. Синхронизация с ОФД: Номер смены в 1С и номер смены в фискальном отчете должны совпадать для удобства сверки и поиска расхождений в выручке.

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

← На главную