/forum/user/17000/ Данил Василига написал: При использовании ДТО8 чеки автоматически отправлялись в нужный ФР (делал доработку, которая подставляет нужный ФР и документ "Чек на оплату" и в Фронт кассира пр оплате через фронт менеджера по кнопке "Оплата" через связь ПодразделениеКомпании->КассаККМ-ФР). При использовании ДТО10 эта доработка уже не работает, хотя нужный ФР передается и в Чек на оплату, и в фронт менеджера - чек всегда выходит на последнем включенном ФР, независимо от того, на терминальном сервере пробивать, или на самом компьютера кассира
насколько я помню главную роль при выборе оборудования при нескольких одновременно включенных кассах играл выбор не самого оборудования, а выбор его идентификатора GUID_ФР.. может это поможет..
Добрый день.
Не помогло.
Даже на самом простейшем сценарии - снятии Х-отчета - команда передается на последний включенный в Альфа-Авто ФР, хотя по кнопке "Выбор кассы (ФР)" выбирается конкретный. Отладка в конфигураторе показала, что Х-отчет снимается в функции "ДействиеХОтчет" в модуле обработки "Фронт кассира" на строке
/forum/user/17000/ Данил Василига написал: При использовании ДТО8 чеки автоматически отправлялись в нужный ФР (делал доработку, которая подставляет нужный ФР и документ "Чек на оплату" и в Фронт кассира пр оплате через фронт менеджера по кнопке "Оплата" через связь ПодразделениеКомпании->КассаККМ-ФР). При использовании ДТО10 эта доработка уже не работает, хотя нужный ФР передается и в Чек на оплату, и в фронт менеджера - чек всегда выходит на последнем включенном ФР, независимо от того, на терминальном сервере пробивать, или на самом компьютера кассира
насколько я помню главную роль при выборе оборудования при нескольких одновременно включенных кассах играл выбор не самого оборудования, а выбор его идентификатора GUID_ФР.. может это поможет..
Добрый день.
Не помогло.
Даже на самом простейшем сценарии - снятии Х-отчета - команда передается на последний включенный в Альфа-Авто ФР, хотя по кнопке "Выбор кассы (ФР)" выбирается конкретный. Отладка в конфигураторе показала, что Х-отчет снимается в функции "ДействиеХОтчет" в модуле обработки "Фронт кассира" на строке
в которой переменная GUID_ФР содержит верный идентификатор, но Х-отчет все-равно снимается на другом ФР.
Более подробную информацию отправил на mailto:alfa@rarus.ru alfa@rarus.ru
Пройдите дальше - в обработке ТорговоеОборудование, в форме ФР_Атол_ДрайверФР, посмотрите что делается в функции ОборудованиеХ_Отчет(), которая вызывается из компоненты.
/forum/user/17000/ Данил Василига написал: При использовании ДТО8 чеки автоматически отправлялись в нужный ФР (делал доработку, которая подставляет нужный ФР и документ "Чек на оплату" и в Фронт кассира пр оплате через фронт менеджера по кнопке "Оплата" через связь ПодразделениеКомпании->КассаККМ-ФР). При использовании ДТО10 эта доработка уже не работает, хотя нужный ФР передается и в Чек на оплату, и в фронт менеджера - чек всегда выходит на последнем включенном ФР, независимо от того, на терминальном сервере пробивать, или на самом компьютера кассира
насколько я помню главную роль при выборе оборудования при нескольких одновременно включенных кассах играл выбор не самого оборудования, а выбор его идентификатора GUID_ФР.. может это поможет..
Добрый день.
Не помогло.
Даже на самом простейшем сценарии - снятии Х-отчета - команда передается на последний включенный в Альфа-Авто ФР, хотя по кнопке "Выбор кассы (ФР)" выбирается конкретный. Отладка в конфигураторе показала, что Х-отчет снимается в функции "ДействиеХОтчет" в модуле обработки "Фронт кассира" на строке
в которой переменная GUID_ФР содержит верный идентификатор, но Х-отчет все-равно снимается на другом ФР.
Более подробную информацию отправил на mailto:alfa@rarus.ru alfa@rarus.ru
Пройдите дальше - в обработке ТорговоеОборудование, в форме ФР_Атол_ДрайверФР, посмотрите что делается в функции ОборудованиеХ_Отчет(), которая вызывается из компоненты.
идет вызов "ВыполнитьДействие" модуля объекта обработки "ТорговоеОборудование", после чего выполняется неизвестная процедура, после которой выполняется "Х_Отчет" формы ФР_АТОЛ_ДТО10 и затем уже "ОборудованиеХ_Отчет".
Правильный GUID - {2AD72DAF-FBFD-46CA-8CD3-2885D6F81317}, в ОборудованиеХ_Отчет GUID уже другой и не совпадает ни с одним из идентификаторов оборудования
Сулименко Светлана мне на почту прислала новую версию обработки фронт кассира для исправления ошибки по снятию х-отчета. Если исправление исправит ошибку с х-отчетом, то я думаю аналогичным образом надо будет сделать в "ВключитьОборудование" в той же обработке "ФронтКассира". Сравнение версий кода прилагаю. Проверю только завтра утром
Проблема с Х-отчетом решена, чего не сказать об обычных чеках продажи.
Код
// Фискальный регистратор
//Если ПараметрыСеанса.Компьютер.ФР.Пустая() Тогда GUID_ФР="";
// --- Доработки
//Иначе GUID_ФР=ПараметрыСеанса.Компьютер.ФР.ИдентификаторОборудования;
// === Доработки
//Иначе GUID_ФР=ЭтотОбъект.ФР.ИдентификаторОборудования;
GUID_ФР=ЭтотОбъект.ФР.ИдентификаторОборудования;
//КонецЕсли;
// +++ Доработки
Если НЕ ПустаяСтрока(GUID_ФР) Тогда
// Есть устройство, включаем его
// --- Доработки
//ТаймаутФР=ПараметрыСеанса.Компьютер.ФР.Таймаут;
// === Доработки
ТаймаутФР=ЭтотОбъект.ФР.Таймаут;
// +++ Доработки
Если глТорговоеОборудование.СтатусОборудования(GUID_ФР)=Перечисления.СтатусыОборудования.Включено Тогда
// --- Доработки
//ФР=ПараметрыСеанса.Компьютер.ФР;
// === Доработки
ФР=ЭтотОбъект.ФР;
GUID_ФР=ЭтотОбъект.ФР.ИдентификаторОборудования;
// +++ Доработки
// возможная доработка
ОписаниеОшибки="";
КодОшибки=глТорговоеОборудование.ВыключитьОборудование(GUID_ФР,ОписаниеОшибки);
Если НЕ РезультатРаботыСОборудованием("Фискальный регистратор",КодОшибки,ОписаниеОшибки) Тогда
Результат=Ложь;
GUID_ФР = "";
КонецЕсли;
// возможная доработка
КонецЕсли;
//Иначе
ОписаниеОшибки="";
КодОшибки=глТорговоеОборудование.ВключитьОборудование(GUID_ФР,ОписаниеОшибки);
Если НЕ РезультатРаботыСОборудованием("Фискальный регистратор",КодОшибки,ОписаниеОшибки) Тогда
Результат=Ложь;
GUID_ФР=""; // Считаем что у нас нет ФР'а в текущем сеансе работы
Иначе
// --- Доработки
//ФР=ПараметрыСеанса.Компьютер.ФР;
// === Доработки
ФР=ЭтотОбъект.ФР;
GUID_ФР=ЭтотОбъект.ФР.ИдентификаторОборудования;
// +++ Доработки
КонецЕсли;
// возможная доработка
//КонецЕсли;
Если НЕ ПустаяСтрока(GUID_ФР) Тогда
ТмпЗнач=0;
Если глТорговоеОборудование.ПолучитьЗначениеСвойстваОборудования(GUID_ФР,"ДлинаСтроки",ТмпЗнач) И (ТмпЗнач>0) Тогда
ДлинаСтрокиФР=ТмпЗнач;
КонецЕсли;
// Получим доступные виды оплат
ПолучитьДоступныеВидыОплат();
КонецЕсли;
КонецЕсли;
Вот так сейчас у нас выглядит код в функции ВключитьОборудование() в обработке ФронтКассира, но чеки иногда все еще пробиваются на последнем включенном ФР
Все решатся в 5 строк 1.это заменяется гуид где я показал 2.к подразделению привязывается фр и в момент пробития в зависимости от подразделения подставляется касса.этот код не нужен.он не к месту
Антон Яшин написал: Все решатся в 5 строк 1.это заменяется гуид где я показал 2.к подразделению привязывается фр и в момент пробития в зависимости от подразделения подставляется касса.этот код не нужен.он не к месту
ФР у нас АТОЛ FPrint 22ПТК.
у нас в дкОбработкаРеквизита() общего модуля дкДокументы подставляются в реквизиты обработки ФронтКассира ФР, GUID_ФР и КассаККМ, и только потом вызывается ОплатитьДокумент().
GUID_ФР везде где только можно поставляется для исключения подмены на тот, который прописан в справочнике рабочих мест.
в ЗагрузитьЧек() происходит подмена ФР на тот, который указан в справочнике рабочих мест, поэтому пришлось ввести дополнительных переменные для сохранения изначальных правильных значений
ФР у нас привязан к КассеККМ, которая в свою очередь привязана к Подразделению.
Этот код без проблем работал в соседнем автосалоне много лет, после введения онлайн-касс был модифицирован, в ДТО 8 проблем нет, только на ДТО 10 начались проблемы.
Проблема снятия х-отчета была аналогичной и решилась выключением включенного нужного ФР и его последующим включением, но при пробитии чеков это не полностью помогло, не всегда, но чек выходит именно на последнем включенном ФР.
Проблему решил следующим кодом в ВключитьОборудование():
Код
// Фискальный регистратор
// --- Доработки
//Если ПараметрыСеанса.Компьютер.ФР.Пустая() Тогда GUID_ФР="";
//Иначе GUID_ФР=ПараметрыСеанса.Компьютер.ФР.ИдентификаторОборудования;
// === Доработки
GUID_ФР = ЭтотОбъект.ФР.ИдентификаторОборудования;
//КонецЕсли;
// +++ Доработки
Если НЕ ПустаяСтрока(GUID_ФР) Тогда
// Есть устройство, включаем его
// --- Доработки
//ТаймаутФР=ПараметрыСеанса.Компьютер.ФР.Таймаут;
// === Доработки
ТаймаутФР = ЭтотОбъект.ФР.Таймаут;
ФР = ЭтотОбъект.ФР;
// +++ Доработки
Если глТорговоеОборудование.СтатусОборудования(GUID_ФР)=Перечисления.СтатусыОборудования.Включено Тогда
// --- Доработки
//ФР=ПараметрыСеанса.Компьютер.ФР;
// === Доработки
// +++ Доработки
ОписаниеОшибки="";
КодОшибки=глТорговоеОборудование.ВыключитьОборудование(GUID_ФР,ОписаниеОшибки);
Если НЕ РезультатРаботыСОборудованием("Фискальный регистратор",КодОшибки,ОписаниеОшибки) Тогда
Результат = Ложь;
GUID_ФР = ЭтотОбъект.ФР.ИдентификаторОборудования;
ТаймаутФР = ЭтотОбъект.ФР.Таймаут;
ФР = ЭтотОбъект.ФР;
КонецЕсли;
КонецЕсли;
//Иначе
ОписаниеОшибки="";
КодОшибки=глТорговоеОборудование.ВключитьОборудование(GUID_ФР,ОписаниеОшибки);
Если НЕ РезультатРаботыСОборудованием("Фискальный регистратор",КодОшибки,ОписаниеОшибки) Тогда
Результат=Ложь;
GUID_ФР=""; // Считаем что у нас нет ФР'а в текущем сеансе работы
// --- Доработки
//Иначе
//ФР=ПараметрыСеанса.Компьютер.ФР;
// === Доработки
КонецЕсли;
// +++ Доработки
// возможная доработка
//КонецЕсли;
Если НЕ ПустаяСтрока(GUID_ФР) Тогда
ТмпЗнач=0;
Если глТорговоеОборудование.ПолучитьЗначениеСвойстваОборудования(GUID_ФР,"ДлинаСтроки",ТмпЗнач) И (ТмпЗнач>0) Тогда
ДлинаСтрокиФР=ТмпЗнач;
КонецЕсли;
// Получим доступные виды оплат
ПолучитьДоступныеВидыОплат();
КонецЕсли;
КонецЕсли;
и в дкОбработкаРеквизита()
Код
ИначеЕсли Имя = "ОплатаЧерезКассу" Тогда
#Если Клиент Тогда
Если ЭтотОбъект.ЭтоНовый() ИЛИ ЭтотОбъект.Модифицированность() Тогда
Предупреждение("Перед выполнением операции необходимо записать документ!");
РезультатОбработки = ЛОЖЬ;
Иначе
// --- Доработки
//Обработки.ФронтКассира.Создать().ОплатитьДокумент(ЭтотОбъект.Ссылка);
// === Доработки
GUID_ФР = ЭтотОбъект.ПодразделениеКомпании.КассаККМ.ФР.ИдентификаторОборудования;
ККТ_глТорговоеОборудование = Обработки.ТорговоеОборудование.Создать();
Если ККТ_глТорговоеОборудование.СтатусОборудования(GUID_ФР)=Перечисления.СтатусыОборудования.Включено Тогда
ОписаниеОшибки="";
КодОшибки=ККТ_глТорговоеОборудование.ВыключитьОборудование(GUID_ФР,ОписаниеОшибки);
КонецЕсли;
ОписаниеОшибки="";
ККТ_глТорговоеОборудование.ВключитьОборудование(GUID_ФР,ОписаниеОшибки);
ФронтКассира = Обработки.ФронтКассира.Создать();
ФронтКассира.ФР = ЭтотОбъект.ПодразделениеКомпании.КассаККМ.ФР;
ФронтКассира.GUID_ФР = ЭтотОбъект.ПодразделениеКомпании.КассаККМ.ФР.ИдентификаторОборудования;
ФронтКассира.КассаККМ = ЭтотОбъект.ПодразделениеКомпании.КассаККМ;
ФронтКассира.ОплатитьДокумент(ЭтотОбъект.Ссылка);
// +++ Доработки
КонецЕсли;
#КонецЕсли
ИначеЕсли Имя = "ВыгрузитьВШаблон" Тогда
Как можно получить заплатку исправляющую проблему некорректного пробития отчетов и чеков, если пользователь одновременно использует несколько разных ФР ?
Ручной выбор ФР во фронте менеджера тоже не работает. выбирается один ФР, а чеки уходят на последний включенный..
Александр Мещеряков, заплатку можно получить на почте техподдержки, но сразу оговорюсь, что придется каждый раз выбирать нужный ФР, иначе будет выбран тот, что по умолчанию стоит в рабочем месте
Светлана Сулименко написал: Александр Мещеряков , заплатку можно получить на почте техподдержки, но сразу оговорюсь, что придется каждый раз выбирать нужный ФР, иначе будет выбран тот, что по умолчанию стоит в рабочем месте
Светлана, это действительно заплатка для включения нужного ФР перед пробитием чека. Будет ли в решена эта проблема в ближайшем релизе?.. и я надеюсь что не включением нужного ФР, а как было с 8 ДТО - печаталось туда, куда посылалось, а не туда, что включилось последним..
Добрый день. Версия Альфы 5.1.24.04 ФР Атол 30Ф ДТО10 Ситуация следующая: Одна Альфа, две организации, один кассир, один комп, два ФР. В зависимости от организации в документе, нужно пробивать на разных ФР. Пытаюсь подключить второй фискальный регистратор к компьютеру. И сравнивая, что написано выше с тем, что происходит у нас, понимаю, что вопрос не решен до сих пор?
/forum/user/35022/ Mихаил Каштанов написал: В зависимости от организации в документе, нужно пробивать на разных ФР.
типовой настройки по данному вопросу нет.
Добрый день, Светлана! Как я понимаю, если у нас два компа в разных точках (скажем Comp1 и Comp2) и два разных ФР1 и ФР2 (соответственно), работа ведется по РДП (Server), база одна. Все отлично работает когда Пользователь 1 - на Comp1 - ФР1 - Рабочее место получается Server; (Пользователь1), куда прописана ФР1 Пользователь 2 - на Comp2 - ФР2 - Рабочее место получается Server; (Пользователь2), куда прописана ФР2
НО когда Пользователь 1 приходит работать на другую точку и садится за Comp2 -рабочее место то все равно подцепляется Server; (Пользователь1), и его касса соответственно, НО тут нужна касса ФР2. При попытке выбирать кассы через Форт менеджер к успеху не приводят (версия Альфы 5,1,25,02)
Стандартных методов решения все еще нет? Нельзя ли каким-то образом получать еще имя компа пользователя, если работа ведется через терминал?