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