Имя: Пароль:
1C
1C 7.7
v7: Кнопка на форме ЧекККМ -"Открыть денежный ящик"
0 Evgen3030
 
29.07.11
16:08
Подскажите, почему не срабатывает ящик?
К принтеру чеков подключен ящик, через драйвер ккм ящик открывается.
Создаю кнопку на форме ЧекККМ, формула кнопки: глДПОткрытьДенежныйЯщик()
не работает.   ????
1 chief accountant
 
29.07.11
16:24
глДПОткрытьДенежныйЯщик() - и что там?
2 Sh1ko
 
29.07.11
16:41
найди обработку, через которую делаются х/z отчеты и прочее. там должна такая же кнопка, смотри код.
3 Evgen3030
 
29.07.11
16:46
функция глДПОткрытьДенежныйЯщик() прописана в глобальном, ссылаясь на нее может что выйдет, а вообще не у меня нужно спрашивать "что там", я сам с вопросом на форуме :)
4 Staffa
 
29.07.11
16:49
> а вообще не у меня нужно спрашивать "что там", я сам с вопросом на форуме :)

в мемориз! ))

Что в теле функции то?
5 Evgen3030
 
29.07.11
16:51
это драйвер Атол, который открывает вкладку в параметрах настройки системы-сервис ККМ , х/Z отчеты снимаются не кнопками, я уж смотрел, там окно выбора...
6 Evgen3030
 
29.07.11
16:51
глДПОткрытьДенежныйЯщик()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  1 - операция успешно завершена, 0 - нет.
//
// Описание:
//  Открывает денежный ящик
Функция глДПОткрытьДенежныйЯщик() Экспорт
   Рез = 0;
   
   Если глДПВкл = 1 Тогда
       Параметры = СоздатьОбъект("СписокЗначений");
       Параметры.Установить("Процесс" , "открыть_денежный_ящик");
       Параметры.Установить("Объект"  , глДП);
       
       РезТекст = глОборудованиеКоманда("Дисплей", глДПОбработка, Параметры);
       Если ПустоеЗначение(РезТекст) = 0 Тогда
           Сообщить(РезТекст);
       Иначе
           Если Параметры.Получить("Результат") = 0 Тогда
               Сообщить("Дисплей покупателя: ошибка при попытке открыть денежный ящик");
               Сообщить(Параметры.Получить("ОписаниеРезультата"));
           Иначе
               Рез = 1;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;

   Возврат Рез;
КонецФункции // глДПОткрытьДенежныйЯщик()
7 chief accountant
 
29.07.11
16:55
(3) Зачёт
8 Evgen3030
 
29.07.11
17:06
Что думаете господа? Что наколдовать чтоб кнопка моя ожила??
9 Staffa
 
29.07.11
17:13
(8) наколдуй отладчик )

сообщений вообще никаких не выдает?

посмотри как реализовано открытие при пробитии чека. может копаешь вообще не в ту сторону
10 Evgen3030
 
29.07.11
17:22
копал через модуль ЧекККМ, там есть функция ПробитьЧек после которой стоит вызов глДПОткрытьДенежныйЯщик(). Функция ПробитьЧек прописана в обработке обслуживания ККМ которая говорит, что открыть денежный ящик после того как будет напечатано на ленте: товар, сумма итого, скидка, сдача...
а вот как отдельно от всего этого ящик открыть по кнопке??

   Функция ПробитьЧекНаККМ()
   Перем НомерЧека;
   
   СписокТоваров = СоздатьОбъект("ТаблицаЗначений");
   СписокТоваров.НоваяКолонка("ТовНаим"   , "Строка");
   СписокТоваров.НоваяКолонка("Цена"      , "Число");
   СписокТоваров.НоваяКолонка("Количество", "Число");
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() = 1 Цикл
       СписокТоваров.НоваяСтрока();
       СписокТоваров.ТовНаим    = Номенклатура.Наименование;
       СписокТоваров.Цена       = Цена;
       СписокТоваров.Количество = Количество;
   КонецЦикла;
   
   ПризнВозврата = ?(ВидОперации = Перечисление.ВидыОперацийЧекККМ.Чек, 0, 1);
   ЧекПробитККМ  = глФРПечататьЧек(СписокТоваров, Итог("Сумма"), ?(Получено=0,Итог("Сумма"),Получено), Скидка.Процент, ПризнВозврата, Склад.НомерСекции, НомерЧека);

   Если ЧекПробитККМ = 1 Тогда
       ПриЗаписиПерепроводить(0);
       НомерЧекаККМ = НомерЧека;
       Записать();
       ПриЗаписиПерепроводить(1);
       
       // Откроем денежный ящик, если он подключен
       глДПОткрытьДенежныйЯщик();
   КонецЕсли;
   
   Возврат ЧекПробитККМ;
   
КонецФункции // ПробитьЧекНаККМ()
11 Sh1ko
 
29.07.11
17:34
начать надо с прочтения жкк про отладчик.
12 big
 
29.07.11
18:51
Млять, сколько идиотов рождает мать-природа - до сих пор удивляюсь. Причем их становится всё больше и больше, а ведь должно быть наоборот... Куда катимся... Пипец...
Ошибка? Это не ошибка, это системная функция.