Имя: Пароль:
1C
1С v8
Как открыть денежный ящик
0 Schwomulurn
 
17.04.12
21:52
(Если кому то всё еще нужно, а ковыряться неохота)
Привожу код как открывать денежный ящик в рознице 8.1

Тестировалось на драйвере версии 4.9, модель Штрих-ФР-Ф исп.03
Текст рассчитан на чистую форму, у которой есть только одна кнопка "ОткрытьДЯ". Если вам надо открывать ящик скажем из какой то работающей с ФР формы, то надо убрать ненужный код.

// Эту функцию необходимо поместить на форму из которой будет открываться ящик.
// на формах, использующих ФР она уже и так есть, помещать не надо.
Функция ПоддерживаетсяВидТО(Вид) Экспорт
   
   Результат = Ложь;
   
   Если Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор Тогда
       Результат = Истина;
   КонецЕсли;
   
   Возврат Результат;
   
КонецФункции // ПоддерживаетсяВидТО()

//Допустим на форме есть кнопка ОткрытьДЯ
Процедура ОсновныеДействияФормыОткрытьДЯ(Кнопка)
//эта строчка также не нужна для форм уже работающих с ФР
   ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);
//ищем ФР, текст взят из модуля документа ЧекККМ
   ФР = глЗначениеПеременной("мФР");
   Если ФР = Неопределено Тогда
//В справочнике КассаККМ должна быть касса, прописанная в торговом оборудовании на закладке "фискальные регистраторы", допустим у нее код 000000001
       КассаККМ  = Справочники.Кассы.НайтиПоКоду("000000001",,,);
       МассивФР      = ПолучитьСерверТО().ПолучитьСписокУстройств(
                           Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор,
                           КассаККМ);

       КоличествоФР = МассивФР.Количество();

       Если КоличествоФР = 0 Тогда
           Возврат;
       ИначеЕсли КоличествоФР = 1 Тогда
           ФР = МассивФР[0];
       Иначе
           СписокФР = РаботаСТорговымОборудованием.ПолучитьСписокУстройствТОДляВыбора(МассивФР);

           ФР = СписокФР.ВыбратьЭлемент("Необходимо выбрать фискальный регистратор");
           Если ФР = Неопределено Тогда
               Ответ     = "Операция отменена пользователем.";
               Отказ     = Истина;
               Результат = Ложь;

               Возврат;
           Иначе
               ФР = ФР.Значение;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;

//в общем и целом эти 4ре строчки открывают    
   Обработка = Неопределено;
   Объект    = Неопределено;
   Результат = ПолучитьСерверТО().ПолучитьОбъектДрайвера(ФР, Обработка, Объект);
//0 - это CashDrawerID, или номер денежного ящика, смотрим в настройках драйвера штрих-фр-ф
   Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0);

//для форм уже работающих с ТО, удалить.
   ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);
КонецПроцедуры
1 Рэйв
 
17.04.12
21:55
Шаманы со своими бубнами скромно шеренгой идут за кулисы...
2 Schwomulurn
 
18.04.12
14:17
Вообще если покопаться эта Розница похожа на Шварцнеггера в лохмотьях. С тем же денежным ящиком, текст обработок для работы с ФР доходит до 10 тыс. строк, но среди них не нашлось места для этих 4рех.

Претензий к Рознице необъятное количество.
- не выводится сумма, накопленная на накопительной карточке, и ее процент.
- путаница с продавцами (в заголовке и построчно).
- отсутствие отчета по кассовому регистру накопления в целом и отчета, учитывающего возвраты по приходникам.
- ... да что говорить :( дырки на дырках.