Обновление конфигурации «1С:Управление торговлей 10.3» до релизов серии 10.3.49.x (в частности 10.3.49.1–10.3.49.3) стало настоящим испытанием для многих технических специалистов. Этот период был связан с переходом на НДС 20% и введением поддержки формата фискальных данных ФФД 1.05. Разработчики 1С внесли кардинальные изменения в механизмы работы с торговым оборудованием, что привело к ряду типовых проблем: «слетающим» настройкам портов ККТ, отображению лишних устройств в списках и критическим зависаниям в терминальных сессиях.
В данной статье мы подробно разберем, как локализовать и устранить эти ошибки, проанализируем программный код и предложим проверенные способы оптимизации работы системы.
Одной из наиболее распространенных проблем после обновления «нетиповых» (доработанных) конфигураций является некорректное слияние форм. Рассмотрим ситуацию, когда в окне «Настройка торгового оборудования» все параметры перемешиваются, а настройки одной кассы начинают зеркально отображаться на всех остальных устройствах.
Проанализируем причину: при обновлении в обработке ТОНастройка может произойти «задвоение» табличной части формы. Это происходит из-за того, что в новых релизах изменились внутренние идентификаторы или состав реквизитов, и автоматическое объединение 1С не всегда справляется с этой задачей корректно. В результате логика фильтрации оборудования ломается, и система начинает считать все подключенные устройства (сканеры, терминалы, ККТ) элементами одного списка.
Что необходимо сделать:
ТорговоеОборудование (или ТОНастройка, в зависимости от версии).Если ваши пользователи работают в терминальном режиме, вы наверняка столкнулись с тем, что 1С присваивает одинаковые настройки портов разным кассирам. Выясним причину: стандартная функция ИмяКомпьютера() на сервере RDP всегда возвращает имя самого сервера. Для 1С это означает, что все 10 или 20 кассиров сидят за одним и тем же рабочим местом.
Рассмотрим типовой код в общем модуле ТОСервер:
Функция ПолучитьИмяКомпьютераТО() Экспорт
Если мИмяКомпьютера = Неопределено Тогда
мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецЕсли;
Возврат мИмяКомпьютера;
КонецФункции
Чтобы система различала рабочие места, нам необходимо добавить в идентификатор имя пользователя Windows. Разберем по шагам, как модифицировать этот код с использованием объекта WScript.Network:
Функция ПолучитьИмяКомпьютераТО() Экспорт
Если мИмяКомпьютера = Неопределено Тогда
Попытка
WSHNetwork = Новый ComОбъект("WScript.Network");
ИмяПользователяWindows = WSHNetwork.UserName;
// Объединяем имя сервера и имя пользователя для уникальности
мИмяКомпьютера = ВРег(ИмяКомпьютера() + "_" + ИмяПользователяWindows);
Исключение
// Резервный вариант, если COM-объект недоступен
мИмяКомпьютера = ВРег(ИмяКомпьютера());
КонецПопытки;
КонецЕсли;
Возврат мИмяКомпьютера;
КонецФункции
Важное замечание: Еще более надежным способом в среде RDP является использование переменной окружения SESSIONNAME, так как один и тот же пользователь может зайти в две разные терминальные сессии с разных физических устройств.
Многие специалисты заметили, что после обновления до 10.3.49.x открытие любого документа или обработки, где инициализируется торговое оборудование, стало занимать длительное время. Проанализируем ситуацию: метод ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма) теперь инициирует проверку всех устройств, зарегистрированных для данного «Имени компьютера».
Если на сервере настроено много касс, система по очереди пытается опросить каждую. Если хотя бы одна касса выключена или недоступна по сети, возникают длительные таймауты.
Рекомендации по оптимизации:
ТОСервер, который выбирает список устройств. Необходимо добавить условие, чтобы текущий сеанс выбирал только ту кассу, которая указана в настройках текущего пользователя (через Справочник.КассыККМ или дополнительные права пользователя).Обновление программного кода УТ 10.3 тесно связано с обновлением драйверов торгового оборудования. В релизах 49.x были внедрены новые требования к передаче тегов ФФД 1.05. Если конфигурация обновлена, а прошивка ККТ осталась старой (дореформенной), вы можете столкнуться с ошибками «Метод не поддерживается» или некорректным расчетом налогов в чеке.
Основные моменты:
СерииНоменклатуры при загрузке данных из ККМ.Подводя итог, можно сказать, что большинство проблем после обновления УТ 10.3 решаются внимательным анализом объединения форм и корректировкой функции получения имени рабочего места в модуле ТОСервер. Использование уникальных идентификаторов для RDP-сессий — это обязательный шаг для стабильной работы розничной точки в современных условиях.