|
v8: Розница 2.0 торг.оборуд | ☑ | ||
---|---|---|---|---|
0
vahate
20.06.12
✎
22:22
|
есть обработка .epf для подключения к Рознице 1.0
как её использовать чтоб ФР работал с розницей 2.0 |
|||
1
Mouzem
20.06.12
✎
22:31
|
А что за обработка?
|
|||
2
vahate
20.06.12
✎
22:36
|
обработка закрытая - платная для украинского ФР и Украинской Розницы 1..0 - но с российской 1.0 работает без проблем так как в этой части украинская и российская розницы не имеют отличий.
но интересует Розница 2.0 - да и вообще российская розница - так как украинский франч который адаптирует 1с для украины давно на все забил))) как эту обработку "заработать" в 2.0??? |
|||
3
wowik
21.06.12
✎
08:53
|
(2) - Розница 2.0 - управляемое приложение. обработку нужно переписать.Закрытые обработки можно декомпилировать... если что...
|
|||
4
tridog
21.06.12
✎
09:04
|
(0) Вратце - никак. В РТ2 отказались от технологии подключения произвольного количества оборудования с помощью внешних обработок в пользу подключения ограниченного количества оборудования.
Вся логика работы с оборудованием - в обших модулях ПодключаемоеОборудование*. Хочешь подключить новую железку - пиши свой аналогчиный общий модуль по аналогии с уже существующими. |
|||
5
vahate
23.06.12
✎
04:09
|
уважаемые wowik и tridog подскажите пож. кто мы помог с таким подключением
|
|||
6
tridog
23.06.12
✎
15:59
|
(5) Ты бы показал обработку от РТ1 - может кто и откликнулся бы. А так - кто его знает, через какое место она работает)
|
|||
7
vahate
23.06.12
✎
16:58
|
с удовольствием показал бы - но я тут новенький - подскажи где ее выложить?
или как то в личку? |
|||
8
vahate
23.06.12
✎
17:37
|
Модуль обработки ФР ArtSoft_ICS_MiniFP_v3.01.epf
/////////////////////////////////////////////////////////////////////////////// //// ПЕРЕМЕННЫЕ МОДУЛЯ #Если Клиент Тогда Перем мНетОшибки; Перем мОшибкаПараметровНастройки; Перем мОшибкаЗагрузкиДрайвера; Перем мОшибкаНеизвестно; Перем мОшибкаПриПодключении; Перем мОшибкаТестНеПройден; Перем мОшибкаНетВозможностиПечатиПКО; Перем мОшибкаНеобходимПарольАдминистратора; Перем мОшибкаНеобходимПарольКассира; Перем мОшибкаНетНаличных; Перем мНДС; Перем СЗ; Перем ИмяФайлаАртикуловККМ; Перем МаксКоличествоАртикулов; Перем фЧекНаВозврат; /////////////////////////////////////////////////////////////////////////////// //// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ (ОБЩИЕ ФУНКЦИИ API) // Функция возвращает номер версии API, поддерживаемой обработкой обслуживания. // // Номер версии задаётся следующим образом: Ver = Vmajor + Vminor / 100.0. // Например, в случае, если данная функция возвращает значение «1.01», это // означает, что данная обработка имеет версию «1.1», полностью поддерживает // версию «1.0» и содержит некоторые дополнительные элементы. // В случае, если отличается целая часть версии (например, «2.1»), то это // означает, что данная обработка несовместима с версией API «1.0». // // Функция является обязательной для любой версии API. // // Параметры: // Нет // // Возвращаемое значение: // <Число> - Версия API обработки обслуживания. // // Функция ПолучитьВерсиюAPI() Экспорт Результат = 2.4; Возврат Результат; КонецФункции // ПолучитьВерсиюAPI() // Функция возвращает описание текущей обработки обслуживания // (API v2.0). // // Данная функция позволяет серверу получить информацию об обработке // обслуживания. Функция является обязательной для версий 2.X API. // // Параметры: // Нет // // Возвращаемое значение: // <Структура> - Структура, содержащая описание текущей обработки. // Структура имеет следующие поля: // // Вид - <ПеречислениеСсылка.ВидыТорговогоОборудования> // - Вид торгового оборудования, поддерживаемый // данной обработкой обслуживания. // // СписокМоделей - <Массив> // - Список поддерживаемых обработкой моделей // торгового оборудования. // // Наименование - <Строка> // - Наименование обработки обслуживания. // // Описание - <Строка> // - Описание обработки обслуживания. // // ВерсияОбработки - <Число> // - Номер версии обработки обслуживания // (не версии API!!!). // Данный параметр используется при // обновлении. // Номер версии задаётся следующим образом: // Ver = Vmajor + Vminor / 100.0. // Функция ПолучитьОписание() Экспорт Результат = Новый Структура("Вид, СписокМоделей, Наименование, Описание, ВерсияОбработки, Идентификатор"); Модели = Новый Массив(); // Добавление поддерживаемых обработкой обслуживания моделей в массив Модели.Добавить("ИКС-483LT"); Модели.Добавить("ИКС-Е260Т"); Модели.Добавить("Мини-ФП4"); Модели.Добавить("Мини-ФП6"); мМетаданные = Метаданные(); // Указание вида торгового оборудования, поддерживаемого обработкой обслуживания Результат.Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор; Результат.СписокМоделей = Модели; Результат.Наименование = мМетаданные.Синоним; Результат.Описание = мМетаданные.Комментарий; Результат.ВерсияОбработки = 3.01; // Уникальный идентификатор обработки обслуживания. // Данное значение необходимо заменить. Результат.Идентификатор = Новый УникальныйИдентификатор; Возврат Результат; КонецФункции // ПолучитьОписание() // Функция создаёт объект драйвера. // (API v2.0) // // Параметры: // Объект - <*> // - Выходной параметр; объект драйвера торгового // оборудования. // // Модель - <Строка> // - Модель торгового оборудования, для которой // создаётся экземпляр драйвера. // // Параметры - <Структура> // - Параметры подключаемого торгового оборудования. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат работы функции. // Функция СоздатьОбъектДрайвера(Объект, Модель, Параметры) Экспорт // Инициализация переменных Результат = мНетОшибки; ОписаниеОшибки = ""; Объект = Неопределено; Порт = Неопределено; Скорость = Неопределено; ЕдиницаВНаименовании = Неопределено; ДлинаНаименования = Неопределено; // Чтение и проверка параметров, установленных в при настройке // Если обработка не была настроенна, то функция возвращает ошибку // Получение значений параметров Параметры.Свойство("Порт", Порт); Параметры.Свойство("Скорость", Скорость); Параметры.Свойство("ЕдиницаВНаименовании", ЕдиницаВНаименовании); Параметры.Свойство("ДлинаНаименования", ДлинаНаименования); // Проверка параметров Если Порт = Неопределено Или Скорость = Неопределено Или ЕдиницаВНаименовании = Неопределено Или ДлинаНаименования = Неопределено Тогда Результат = мОшибкаПараметровНастройки; Иначе // Подключение внешней компоненты Попытка ПрогИД = "ArtSoft.IKS483LT"; Драйвер = Новый COMОбъект(ПрогИД); Исключение Результат = мОшибкаЗагрузкиДрайвера; КонецПопытки; // Создание объекта, используемого для взаимодействия // с оборудованием. Если Результат = мНетОшибки Тогда Объект = Новый Структура("Модель, |Параметры, |Драйвер, |ОписаниеОшибки", Модель, Параметры, Драйвер, ОписаниеОшибки); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции // СоздатьОбъектДрайвера() // Функция возвращает набор событий драйвера и параметры их обработки для // заданной модели торгового оборудования. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера торгового оборудования. // // Возвращаемое значение: // <ТаблицаЗначений> - Таблица значений, содержащая информацию о внешних // событиях, генерируемых драйвером. // Таблица имеет следующие колонки: // "ИмяСобытия" - <Строка> - Имя внешнего события. // Функция ПолучитьОписаниеСобытий(Объект) Экспорт Таблица = Новый ТаблицаЗначений(); Таблица.Колонки.Добавить("ИмяСобытия"); Возврат Таблица; КонецФункции // ПолучитьОписаниеСобытий() // Функция осуществляет подключение устройства. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера торгового оборудования. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат работы функции. // Функция Подключить(Объект) Экспорт // Максимальное количество артикулов зависит от модели регистратора // В некоторых моделях меняется динамически, в зависимости от длины наименования Если Объект.Модель = "ИКС-483LT" Тогда МаксКоличествоАртикулов = 10900; ИначеЕсли Объект.Модель = "ИКС-Е260Т" Тогда МаксКоличествоАртикулов = 10900; ИначеЕсли Объект.Модель = "Мини-ФП4" Тогда МаксКоличествоАртикулов = 6460; ИначеЕсли Объект.Модель = "Мини-ФП6" Тогда МаксКоличествоАртикулов = 15640; Иначе МаксКоличествоАртикулов = 10000; // Если модель не определена КонецЕсли; Результат = мНетОшибки; Возврат Результат; КонецФункции // Подключить() // Процедура осуществляет отключение устройства. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера торгового оборудования. // Процедура Отключить(Объект) Экспорт // Отключение устройства. КонецПроцедуры // Отключить() // Функция осуществляет проверку правильности настройки и подключения // торгового оборудования. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера устройства, проверка // которого предполагается. // // ОписаниеРезультата - <Строка> // - Выходной параметр; в случае, если тест // завершился неудачно, в данный параметр // помещается рекомендация для пользователя // (как ему действовать дальше). // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат работы функции. // Функция ТестУстройства(Объект) Экспорт Перем Порт,Скорость; Результат = мНетОшибки; Объект.Параметры.Свойство("Порт", Порт); Порт = Формат(Порт,"ЧГ=0"); Объект.Параметры.Свойство("Скорость", Скорость); Попытка Объект.Драйвер.OpenPort(Порт,Скорость); Если Объект.Драйвер.LastError<>0 Тогда Объект.ОписаниеОшибки = НСтр("ru='Ошибка открытия СОМ порта ';uk='Помилка відкриття СОМ порта! '")+ Объект.Драйвер.LastErrorText ; Результат = мОшибкаТестНеПройден; КонецЕсли; Объект.Драйвер.ClosePort(); //закрываем порт Исключение Объект.ОписаниеОшибки = НСтр("ru='Ошибка ККМ :';uk='Помилка ККМ :'")+ОписаниеОшибки(); Результат = мОшибкаТестНеПройден; КонецПопытки; Возврат Результат; КонецФункции // ТестУстройства() // Процедура осуществляет вызов формы настройки торгового оборудования. // (API v2.0) // // Параметры: // Модель - <Строка> // - Модель настраиваемого оборудования. // // Параметры - <Структура> // - Входной/выходной параметр; структура параметров. // Процедура НастроитьОборудование(Модель, Параметры) Экспорт Форма = ПолучитьФорму("ФормаНастройки"); Форма.мМодель = Модель; Форма.мПараметры = Параметры; Ответ = Форма.ОткрытьМодально(); Если Ответ = КодВозвратаДиалога.ОК Тогда Параметры = Форма.мПараметры; КонецЕсли; КонецПроцедуры // НастроитьОборудование() // Функция возвращает имя источника внешнего события // генерируемое при подключеннии внешней компонентой. // По уникальному для сеанса подключения имени производится поиск // из конфигурации обработки обслуживания для обработки полученного // события. // (API v2.1) // // Параметры: // Объект - <*> // - Объект драйвера устройства. // // Возвращаемое значение: // <Строка> - Имя внешнего источника события. // Функция ПолучитьИмяИсточникаВнешнегоСобытия(Объект) Экспорт Возврат ""; КонецФункции /////////////////////////////////////////////////////////////////////////////// //// ЭКСПОРТНЫЕ ПРОЦЕДУРЫ (ФУНКЦИИ API ОБРАБОТОК ОБСЛУЖИВАНИЯ ФР) // Функция возвращает параметры отражения в чеке наличной оплаты от юридических // лиц. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // НомерОтдела - <Число> // - Выходной параметр; номер отдела, используемый // для вывода чека. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ПолучитьПараметрыНаличнойОплаты(Объект, НомерОтдела) Экспорт Результат = мОшибкаНетВозможностиПечатиПКО; // Получение параметров печати чека из ПКО Возврат Результат; КонецФункции // ПолучитьПараметрыНаличнойОплаты() // Функция осуществляет снятие X-отчёта на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Пароль - <Число> // - Пароль пользователя ФР. // // НомерЧека - <Число> // - Выходной параметр; номер чека ФР. // // НомерСмены – <Число> // - Выходной параметр; номер текущей смены ФР. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция XОтчет(Объект, Пароль, НомерЧека, НомерСмены) Экспорт Результат = мНетОшибки; Если ОткрытьПорт(Объект, Объект.Параметры) = мНетОшибки Тогда ОтменаЧека(Объект); // Отменяем незавершенный чек Объект.Драйвер.printXReport(); // Печать Х-отчета Результат = ПроверкаОшибокРегистратора(Объект); Если Результат = мНетОшибки Тогда Объект.Драйвер.GetStatus(); // Читаем информацию из ККМ о НомереЧека и НомереСмены НомерЧека = Объект.Драйвер.LastCheckNum+1; НомерСмены = Объект.Драйвер.LastZRepNum; КонецЕсли; Объект.Драйвер.ClosePort(); Иначе Результат = мОшибкаПриПодключении; КонецЕсли; Возврат Результат; КонецФункции // XОтчет() // Функция осуществляет снятие Z-отчёта на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Пароль - <Число> // - Пароль пользователя ФР. // // НомерЧека - <Число> // - Выходной параметр; номер чека ФР. // // НомерСмены – <Число> // - Выходной параметр; номер текущей смены ФР. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ZОтчет(Объект, Пароль, НомерЧека, НомерСмены) Экспорт Результат = мНетОшибки; Если ОткрытьПорт(Объект, Объект.Параметры) = мНетОшибки Тогда ОтменаЧека(Объект); // Отменяем незавершенный чек Объект.Драйвер.printZReport(); // Печать Z-отчета Результат = ПроверкаОшибокРегистратора(Объект); Если Результат = мНетОшибки Тогда Объект.Драйвер.GetStatus(); // Читаем информацию из ККМ о НомереЧека и НомереСмены НомерЧека = Объект.Драйвер.LastCheckNum+1; НомерСмены = Объект.Драйвер.LastZRepNum; ОчиститьАртикулы(); КонецЕсли; Объект.Драйвер.OpenDrawer(); // Открытие денежного ящика Объект.Драйвер.ClosePort(); Иначе Результат = мОшибкаПриПодключении; КонецЕсли; Возврат Результат; КонецФункции // ZОтчет() // Функция осуществляет внесение (сумма > 0) или изъятие (сумма < 0) суммы на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Пароль - <Число> // - Пароль пользователя ФР. // // Сумма - <Число> // - Вносимая сумма. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция Сумма(Объект, Пароль, Сумма) Экспорт Результат = мНетОшибки; Если ОткрытьПорт(Объект, Объект.Параметры) = мНетОшибки Тогда ОтменаЧека(Объект); // Отменяем незавершенный чек Объект.Драйвер.printRecCash(Сумма); // Печать чека внесения/выдачи на регистраторе Результат = ПроверкаОшибокРегистратора(Объект); Объект.Драйвер.OpenDrawer(); // Открытие денежного ящика Объект.Драйвер.ClosePort(); // Закрытие СОМ-порта Иначе Результат = мОшибкаПриПодключении; КонецЕсли; Возврат Результат; КонецФункции // Сумма() // Функция осуществляет открытие чека на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Пароль - <Число> // - Пароль пользователя ФР. // // ЭтоВозврат - <Булево> // - Истина в случае, если открывается чек на возврат. // // НомерЧека - <Число> // - Выходной параметр; номер чека ФР. // // НомерСмены – <Число> // - Выходной параметр; номер текущей смены ФР. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ОткрытьЧек(Объект, Пароль, ЭтоВозврат, НомерЧека, НомерСмены, ФискальныйЧек = Истина) Экспорт Результат = мНетОшибки; фЧекНаВозврат = ЭтоВозврат; Если ОткрытьПорт(Объект, Объект.Параметры) = мНетОшибки Тогда ОтменаЧека(Объект); // Отменяем незавершенный чек Объект.Драйвер.GetStatus(); // Читаем информацию из ККМ о НомереЧека и НомереСмены НомерЧека = Объект.Драйвер.LastCheckNum+1; НомерСмены = Объект.Драйвер.LastZRepNum; Иначе Результат = мОшибкаПриПодключении; КонецЕсли; Возврат Результат; КонецФункции // ОткрытьЧек() // Функция осуществляет печать строки чека на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Наименование - <Строка> // - Описание товара, отображаемое в чеке. // // Количество - <Число> // - Количество выводимой номенклатуры. // // Цена - <Число> // - Цена выводимой номенклатуры за единицу. // // Скидка - <Число> // - Скидка в % на выводимую номенклатуру. // В случае, если это значение < 0, абсолютное // значение данного параметра считается наценкой. // // Отдел - <Число> // - Номер отдела (секции), которой соответствует данная строка. // // НДС - <Число> // - Ставка НДС в % // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ПечататьСтроку(Объект, Наименование, Количество, Цена, Скидка, Отдел, НДС, Код=0) Экспорт Перем ЕдиницаВНаименовании, ДлинаНаименования, Порт; Результат = мНетОшибки; // Получение параметров Объект.Параметры.Свойство("ЕдиницаВНаименовании", ЕдиницаВНаименовании); ЕдиницаВНаименовании = Формат(ЕдиницаВНаименовании,"ЧГ=0"); Если ЕдиницаВНаименовании = 1 Тогда Объект.Параметры.Свойство("ДлинаНаименования", ДлинаНаименования); ДлинаНаименования = Формат(ДлинаНаименования,"ЧГ=0"); Если НЕ ЗначениеЗаполнено(ДлинаНаименования) Тогда Сообщить(НСтр("ru='Не задано значение параметра ДлинаНаименования!';uk='Не задане значення параметра ДлинаНаименования!'")); ДлинаНаименования = 48; КонецЕсли; КонецЕсли; //Получение кода товара из параметров //См. Обработка ТОСервер Если Код = 0 Тогда Объект.Параметры.Свойство("Код", Код); КонецЕсли; ЗаполнитьАртикулы() ; // вычисление значений Налоговой группы для продажи товара НалоговаяГруппа = мНДС.Получить(НДС); // Форматируем код товара, дополняя нулями до 11 символов КодТовара = Код; Пока СтрДлина(Строка(КодТовара)) < 11 Цикл КодТовара = "0" + КодТовара; КонецЦикла; // Определяем параметр Весовой из Справочника номенклатуры Товар = Справочники.Номенклатура.НайтиПоКоду(КодТовара); Если Товар <> Справочники.Номенклатура.ПустаяСсылка() Тогда Если Товар.Весовой Тогда Делимость = 1; Иначе Делимость = 0; КонецЕсли; иначе Сообщить("Не найден товар с кодом "+КодТовара+". |Невозможно определить признак весового товара."); Результат = мОшибкаНеизвестно; Возврат Результат; КонецЕсли; Если СЗ.Количество()=0 Тогда Арт = Неопределено; Иначе Арт = СЗ.Найти(СокрЛП(Строка(Код)), "ТоварКод"); КонецЕсли; Если Арт = Неопределено Тогда //присвоить новый КодАртикула = СЗ.Количество()+1; Если КодАртикула > МаксКоличествоАртикулов Тогда Объект.ОписаниеОшибки = НСтр("ru='Необходимо снять Z-отчет.';uk='Необхідно зняти Z-звіт.'"); Объект.Драйвер.ClosePort(); //закрываем порт Результат = мОшибкаНеизвестно; Возврат Результат; КонецЕсли; ЗаписатьВФайл(КодАртикула, Строка(Код), Наименование , Окр(Цена,2) , НалоговаяГруппа , Делимость); Иначе // проверяем на наличие критичных изменений параметров товара // Критичные: Наименование, налоговая группа, признак делимости // Если есть изменения, присваиваем товару другой КодАртикула Если ((СокрЛП(Арт.ТоварНаименование) <> Лев(СокрЛП(Наименование),50)) ИЛИ (Арт.ТоварНГ <> НалоговаяГруппа) ИЛИ (Арт.ТоварДелимость <> Делимость)) Тогда КодАртикула = СЗ.Количество() + 1; СтеретьКодВФайле(СокрЛП(Арт.Артикул)); ЗаписатьВФайл(КодАртикула, Строка(Код), Наименование , Окр(Цена,2) , НалоговаяГруппа , Делимость); Иначе КодАртикула = Арт.Артикул; // артикул уже имеющийся КонецЕсли; КонецЕсли; Если Не фЧекНаВозврат Тогда // продажа товара на ККМ Объект.Драйвер.printRecItem(Наименование, Цена, Количество, Делимость, НалоговаяГруппа, КодАртикула); Иначе // возврат товара на ККМ Объект.Драйвер.printRecItemRefund(Наименование, Цена, Количество, Делимость, НалоговаяГруппа, КодАртикула); КонецЕсли; Результат = ПроверкаОшибокРегистратора(Объект); Если Результат <> мНетОшибки Тогда Объект.Драйвер.printRecVoid();//отмена чека Объект.Драйвер.ClosePort(); Возврат Результат; // Прекращение печати чека при возникновении ошибки при печати строки чека КонецЕсли; // printRecItemAdjustment(ТипСкидки, Комментарий, Сумма/Процент) // Печать скидки/надбавки на строку/чек // Тип скидки: // 0 - % скидка/надбавка на товар // 1 - абсолютная скидка/надбавка на товар // 2 - % скидка/надбавка на промежуточную сумму // 3 - абсолютная скидка/надбавка на промежуточную сумму Если Скидка <> 0 Тогда Объект.Драйвер.printRecItemAdjustment(0, "", -Скидка); Результат = ПроверкаОшибокРегистратора(Объект); Если Результат <> мНетОшибки Тогда Объект.Драйвер.printRecVoid(); //отмена чека Объект.Драйвер.ClosePort(); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции // ПечататьСтроку() // Функция осуществляет аннулирование текущего открытого чека на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция АннулироватьЧек(Объект) Экспорт Результат = мНетОшибки; Объект.Драйвер.printRecVoid(); // Аннулировать чек Объект.Драйвер.ClosePort(); Возврат Результат; КонецФункции // АннулироватьЧек() // Функция осуществляет отмену текущего открытого чека на ФР. // (API v2.2) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ОтменитьЧек(Объект) Экспорт Результат = мНетОшибки; Объект.Драйвер.printRecVoid(); // Аннулировать чек Объект.Драйвер.ClosePort(); Возврат Результат; КонецФункции // ОтменитьЧек() // Функция осуществляет закрытие текущего открытого чека на ФР. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // СуммаНал - <Число> // - Сумма, внесённая наличными. // // СуммаБезнал - <Число> // - Сумма, внесённая при помощи карты. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции. // Функция ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал) Экспорт Результат = мНетОшибки; // Закрытие чека // printRecTotal(тип, сумма, комментарий) // 1 – оплата наличными; // 2 – оплата в кредит; // 3 – оплата чеком; // 4 – оплата карточкой; Если СуммаБезнал > 0 Тогда Объект.Драйвер.printRecTotal(4,СуммаБезнал,""); // оплата карточкой КонецЕсли; Если СуммаНал > 0 Тогда Объект.Драйвер.printRecTotal(1,СуммаНал,""); // оплата наличными КонецЕсли; Результат = ПроверкаОшибокРегистратора(Объект); Объект.Драйвер.OpenDrawer(); // Открытие денежного ящика Объект.Драйвер.ClosePort(); Возврат Результат; КонецФункции // ЗакрытьЧек() // Функция возвращает Истину, если поддерживается смешанный режим печати чека // (одновременно фискальные и нефискальные строки). // (API v2.4) // // Параметры: // // Возвращаемое значение: // <Булево> // Функция ПоддерживаетсяСмешанныйРежимПечати() Экспорт Результат = Истина; Возврат Результат; КонецФункции // ПоддерживаетсяСмешанныйРежимПечати() // Функция осуществляет построчную печать нефискального чека из переданного массива строк. // (API v2.0) // // Параметры: // Объект - <*> // - Объект драйвера ФР. // // МассивСтрок - <Массив> // - Массив строк для печати. // // Ширина - <Число> // - Ширина чековой ленты. // // Возвращаемое значение: // <ПеречислениеСсылка.ТООшибки*> - Результат выполнения операции // Функция НапечататьСтроки(Объект, МассивСтрок, Ширина) Экспорт Результат = мНетОшибки; Для Каждого СтрокаМассива Из МассивСтрок Цикл // Функция печати текстовой информации в чеке Объект.Драйвер.printComment(Лев(СтрокаМассива, Ширина), фЧекНаВозврат); // Печать текста в чеке Результат = ПроверкаОшибокРегистратора(Объект); Если Результат <> мНетОшибки Тогда Прервать; // Прервать печать текста при ошибке КонецЕсли; КонецЦикла; Возврат Результат; КонецФункции // НапечататьСтроки() /////////////////////////////////////////////////////////////////////////////// // Очищает файл артикулов // Процедура ОчиститьАртикулы() хВ = Новый xBase; хВ.ОткрытьФайл(ИмяФайлаАртикуловККМ); Если хВ.Открыта() Тогда хВ.ОчиститьФайл(); Иначе Предупреждение ("Не удалось открыть файл артикулов ККМ"); КонецЕсли; хВ.ЗакрытьФайл(); СЗ.Очистить(); КонецПроцедуры // ОчиститьАртикулы() //заполнение файла артикулами продаж // Процедура ЗаполнитьАртикулы() хВ = Новый xBase; ФайлНаДиске = Новый Файл (ИмяФайлаАртикуловККМ); СЗ.Очистить(); Если ФайлНаДиске.Существует() Тогда хВ.ОткрытьФайл(ИмяФайлаАртикуловККМ); хВ.Первая(); Если хВ.КоличествоЗаписей()> 0 Тогда Если Не (НачалоДня(хВ.DATA) = НачалоДня(ТекущаяДата())) Тогда хВ.ОчиститьФайл(); КонецЕсли; КонецЕсли; Пока Не хВ.ВКонце() Цикл // заполняем таблицу значений для поиска артикулов НоваяСтрока = СЗ.Добавить(); НоваяСтрока.ТоварКод= СокрЛП(хВ.Tovar); НоваяСтрока.Артикул = хВ.Code; НоваяСтрока.ТоварЦена = хВ.Price; НоваяСтрока.ТоварНГ = хВ.TaxGrp; НоваяСтрока.ТоварНаименование = хВ.Name; НоваяСтрока.ТоварДелимость = хВ.Unit; хВ.Следующая(); КонецЦикла; хВ.ЗакрытьФайл(); Иначе хВ.поля.Добавить("Tovar","S", 15); // код товара хВ.поля.Добавить("Code" ,"N", 5); // код РРО хВ.поля.Добавить("Name" ,"S", 50); // наименование товара хВ.поля.Добавить("TaxGrp" ,"N", 1); // налоговая группа &nb |
|||
9
tridog
23.06.12
✎
19:07
|
(8) Да выложи на любой файловый хостинг, на тот же narod.ru например. В браузере портянку кода читать - дело не очень веселое :)
|
|||
10
vahate
23.06.12
✎
20:16
|
||||
11
vahate
23.06.12
✎
22:51
|
ну есть еще .dll и документация - но это я думаю вряд ли нужно при такой постановке?))
|
|||
12
fly7
24.06.12
✎
00:09
|
вы бы размещали сразу вакансию
что надо переписать обработку от Розницы 1 в Розницу 2 с указанием сроков и сумм на халяву наврятли кто-то будет делать |
|||
13
vahate
24.06.12
✎
00:30
|
да с чего ж на халяву???
просто я тоже вникнуть пытаюсь как задания здесь размещаются)) прицениваюсь)))))))))) |
|||
14
tridog
24.06.12
✎
18:20
|
(13) Поглядел, в прицнипе переписать возможно (единственное - не совсем понял на кой ляд оно пишет артикулы пролаваемых товаров в файлик *.dbf). Если оно Вам и правда нужно - стучитесь в аську (номер указан в личке), можем обсудить.
|
|||
15
vahate
02.07.12
✎
15:42
|
никто не подскажет к кому обратиться по данному вопросу))?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |