|
Программное открытие кассовой смены | ☑ | ||
---|---|---|---|---|
0
igel1969
13.12.17
✎
15:44
|
Здравствуйте!
Пытаюсь создать кнопку открытия кассовой смены. Зачем это надо? У меня продавцы работают в моей внешней обработке, которая очень сильно ограничивает их возможности. Из обычного интерфейса кассовая смена открывается нормально. Далее, создаю в своей обработке кнопку и копирую в процедуру ее нажатия ту же самую процедуру, что и при нажатии кнопки на форме списка документа "Кассовая смена", ну только обновление списка в конце удалил, оно не надо и переменную другую передаю, но значение переменной правильное. вот текст: ОчиститьСообщения(); МассивККТ = ПолучитьСерверТО().ПолучитьСписокУстройств( ПредопределенноеЗначение("Перечисление.ВидыТорговогоОборудования.ККТ"), ОсновнаяККМ); // ОсновнаяККМ находится из пользователя, я проверял - находится правильно. КоличествоККТ = МассивККТ.Количество(); Если КоличествоККТ = 0 Тогда ТекстСообщения = НСтр("ru='Отсутствуют доступные фискальные устройства'"); ОбщегоНазначения.СообщитьИнформациюПользователю(ТекстСообщения); ИначеЕсли КоличествоККТ = 1 Тогда ККТ = МассивККТ[0]; Иначе ПредставлениеУстройства = ""; ВидУстройства = ""; СписокККТ = Новый СписокЗначений; Для Каждого Устройство Из МассивККТ Цикл ПолучитьСерверТО().ПолучитьПредставлениеУстройства(Устройство, ВидУстройства, ПредставлениеУстройства); СписокККТ.Добавить(Устройство, ПредставлениеУстройства); КонецЦикла; ККТ = СписокККТ.ВыбратьЭлемент("Необходимо выбрать фискальное устройство"); Если ККТ <> Неопределено Тогда ККТ = ККТ.Значение; КонецЕсли; КонецЕсли; Если ККТ = NULL ИЛИ ККТ = Неопределено Тогда Возврат; КонецЕсли; КассовыеСменыКлиент.ОткрытьКассовуюСмену(ККТ); Отвечает "Ошибка получения обработки обслуживания". Путем простейших итераций (подставяю в разные части кода сообщения), понимаю, что пробела в последней процедуре (КассовыеСменыКлиент.ОткрытьКассовуюСмену(ККТ)). ЗАхожу в эту процедуру, там есть такие строки: ОбработкаОбслуживания = Неопределено; ОбъектДрайвера = Неопределено; ПолучитьСерверТО().ПолучитьОбъектДрайвера(ККТ, ОбработкаОбслуживания, ОбъектДрайвера); Если ОбработкаОбслуживания = Неопределено Тогда ОбщегоНазначения.СообщитьОбОшибке("Ошибка получения обработки обслуживания"); Добавляю туда строки: сообщить("ККТ - " + СокрЛП(ККТ)); Сообщить("ОбработкаОбслуживания - " + СокрЛП(ОбработкаОбслуживания)); В случае, если открывать смену через документы кассовой смены, возвращает: ККТ - 85CB1AEE-79B4-4103-9E43-6D4066698D65 ОбработкаОбслуживания - ВнешняяОбработкаОбъект.АТОЛККТсПередачейДанных А в случае если открывать смену через мою процедуру, то% ККТ - 85CB1AEE-79B4-4103-9E43-6D4066698D65 ОбработкаОбслуживания - Что можно сделать, почему не находит Обработку обслуживания в моем случае?????? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |