352 lines
28 KiB
Plaintext
352 lines
28 KiB
Plaintext
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
#Область ПараметрыРегистрации
|
||
|
||
// Сохраняет параметры регистрации устройства
|
||
//
|
||
// Параметры:
|
||
// Результат - Булево
|
||
// Идентификатор - СправочникСсылка.ПодключаемоеОборудование - Идентификатор устройства -
|
||
// ПараметрыРегистрации - Структура -
|
||
//
|
||
Процедура СохранитьПараметрыРегистрацииУстройства(Результат, Идентификатор, ПараметрыРегистрации) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
УстановитьПривилегированныйРежим(Истина);
|
||
|
||
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
|
||
| ПодключаемоеОборудование.Ссылка КАК Ссылка
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.Ссылка = &Идентификатор");
|
||
|
||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||
РезультатЗапроса = Запрос.Выполнить();
|
||
|
||
Если РезультатЗапроса.Пустой() Тогда
|
||
Результат = Ложь;
|
||
Возврат;
|
||
КонецЕсли;
|
||
|
||
НачатьТранзакцию();
|
||
Попытка
|
||
БлокировкаДанных = Новый БлокировкаДанных();
|
||
ЭлементБлокировки = БлокировкаДанных.Добавить("Справочник.ПодключаемоеОборудование");
|
||
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
|
||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Идентификатор);
|
||
БлокировкаДанных.Заблокировать();
|
||
|
||
Выборка = РезультатЗапроса.Выбрать();
|
||
Выборка.Следующий();
|
||
|
||
ОбъектСсылка = Выборка.Ссылка; // СправочникСсылка.ПодключаемоеОборудование
|
||
ОбъектСправочника = ОбъектСсылка.ПолучитьОбъект();
|
||
ОбъектСправочника.ПараметрыРегистрации.Очистить();
|
||
Для Каждого ПараметрРегистрации Из ПараметрыРегистрации Цикл
|
||
НоваяСтрока = ОбъектСправочника.ПараметрыРегистрации.Добавить();
|
||
НоваяСтрока.НаименованиеПараметра = ПараметрРегистрации.Ключ;
|
||
Если ТипЗнч(ПараметрРегистрации.Значение) = Тип("Булево") Тогда
|
||
НоваяСтрока.ЗначениеПараметра = XMLСтрока(ПараметрРегистрации.Значение);
|
||
Иначе
|
||
НоваяСтрока.ЗначениеПараметра = ПараметрРегистрации.Значение;
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
ОбъектСправочника.Записать();
|
||
Результат = Истина;
|
||
|
||
ЗафиксироватьТранзакцию();
|
||
Исключение
|
||
ОтменитьТранзакцию();
|
||
Результат = Ложь;
|
||
КонецПопытки;
|
||
|
||
УстановитьПривилегированныйРежим(Ложь);
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
// Возвращает по идентификатору устройства параметры регистрации.
|
||
//
|
||
// Параметры:
|
||
// ПараметрыРегистрации - см. ОборудованиеЧекопечатающиеУстройстваКлиентСервер.ПараметрыРегистрацииККТ
|
||
// Идентификатор - СправочникСсылка.ПодключаемоеОборудование
|
||
//
|
||
Процедура ПараметрыРегистрацииУстройства(ПараметрыРегистрации, Идентификатор) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Запрос = Новый Запрос;
|
||
Запрос.Текст =
|
||
"ВЫБРАТЬ
|
||
| ПодключаемоеОборудование.Ссылка КАК Ссылка,
|
||
| ПодключаемоеОборудованиеПараметрыРегистрации.НаименованиеПараметра КАК НаименованиеПараметра,
|
||
| ПодключаемоеОборудованиеПараметрыРегистрации.ЗначениеПараметра КАК ЗначениеПараметра
|
||
|ИЗ
|
||
| Справочник.ПодключаемоеОборудование.ПараметрыРегистрации КАК ПодключаемоеОборудованиеПараметрыРегистрации
|
||
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодключаемоеОборудование КАК ПодключаемоеОборудование
|
||
| ПО ПодключаемоеОборудованиеПараметрыРегистрации.Ссылка = ПодключаемоеОборудование.Ссылка
|
||
|ГДЕ
|
||
| ПодключаемоеОборудование.Ссылка = &Идентификатор";
|
||
|
||
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
|
||
|
||
РезультатЗапроса = Запрос.Выполнить();
|
||
|
||
ЕстьДанные = Ложь;
|
||
ДанныеХранения = Новый Структура();
|
||
|
||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||
// Вставить обработку выборки ВыборкаДетальныеЗаписи
|
||
ДанныеХранения.Вставить(ВыборкаДетальныеЗаписи.НаименованиеПараметра, ВыборкаДетальныеЗаписи.ЗначениеПараметра);
|
||
ЕстьДанные = Истина;
|
||
КонецЦикла;
|
||
|
||
ПараметрыРегистрации = ОборудованиеЧекопечатающиеУстройстваКлиентСервер.ПараметрыРегистрацииККТ();
|
||
ПараметрыРегистрации.Вставить("ЕстьДанные", ЕстьДанные);
|
||
|
||
Если ЕстьДанные Тогда
|
||
ПараметрыРегистрации.РегистрационныйНомерККТ = ДанныеХранения.РегистрационныйНомерККТ;
|
||
ПараметрыРегистрации.ОрганизацияНазвание = ДанныеХранения.ОрганизацияНазвание;
|
||
ПараметрыРегистрации.ОрганизацияИНН = ДанныеХранения.ОрганизацияИНН;
|
||
|
||
Если ДанныеХранения.Свойство("АдресПроведенияРасчетов") Тогда
|
||
ПараметрыРегистрации.АдресПроведенияРасчетов = ДанныеХранения.АдресПроведенияРасчетов;
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("МестоПроведенияРасчетов") Тогда
|
||
ПараметрыРегистрации.МестоПроведенияРасчетов = ДанныеХранения.МестоПроведенияРасчетов;
|
||
КонецЕсли;
|
||
|
||
ПараметрыРегистрации.КодыСистемыНалогообложения = ДанныеХранения.КодыСистемыНалогообложения;
|
||
|
||
Если ДанныеХранения.Свойство("ПризнакАвтономногоРежима") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакАвтономногоРежима) Тогда
|
||
ПараметрыРегистрации.ПризнакАвтономногоРежима = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакАвтономногоРежима);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПризнакШифрованиеДанных") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакШифрованиеДанных) Тогда
|
||
ПараметрыРегистрации.ПризнакШифрованиеДанных = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакШифрованиеДанных);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПризнакРасчетовЗаУслуги") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакРасчетовЗаУслуги) Тогда
|
||
ПараметрыРегистрации.ПризнакАвтономногоРежима = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакАвтономногоРежима);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПризнакФормированияБСО") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакФормированияБСО) Тогда
|
||
ПараметрыРегистрации.ПризнакФормированияБСО = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакФормированияБСО);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПризнакРасчетовТолькоВИнтернет") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакРасчетовТолькоВИнтернет) Тогда
|
||
ПараметрыРегистрации.ПризнакРасчетовТолькоВИнтернет = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакРасчетовТолькоВИнтернет);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПродажаПодакцизногоТовара") И НЕ ПустаяСтрока(ДанныеХранения.ПродажаПодакцизногоТовара) Тогда
|
||
ПараметрыРегистрации.ПродажаПодакцизногоТовара = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПродажаПодакцизногоТовара);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПроведенияАзартныхИгр") И НЕ ПустаяСтрока(ДанныеХранения.ПроведенияАзартныхИгр) Тогда
|
||
ПараметрыРегистрации.ПроведенияАзартныхИгр = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПроведенияАзартныхИгр);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("ПроведенияЛотерей") И НЕ ПустаяСтрока(ДанныеХранения.ПроведенияЛотерей) Тогда
|
||
ПараметрыРегистрации.ПроведенияЛотерей = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПроведенияЛотерей);
|
||
КонецЕсли;
|
||
Если ДанныеХранения.Свойство("УстановкаПринтераВАвтомате") И НЕ ПустаяСтрока(ДанныеХранения.УстановкаПринтераВАвтомате) Тогда
|
||
ПараметрыРегистрации.УстановкаПринтераВАвтомате = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.УстановкаПринтераВАвтомате);
|
||
КонецЕсли;
|
||
|
||
Если ДанныеХранения.Свойство("ПризнакиАгента") Тогда
|
||
ПараметрыРегистрации.ПризнакиАгента = ДанныеХранения.ПризнакиАгента;
|
||
КонецЕсли;
|
||
|
||
ПараметрыРегистрации.НомерАвтоматаДляАвтоматическогоРежима = ДанныеХранения.НомерАвтоматаДляАвтоматическогоРежима;
|
||
ПараметрыРегистрации.ОрганизацияОФДИНН = ДанныеХранения.ОрганизацияОФДИНН;
|
||
ПараметрыРегистрации.ОрганизацияОФДНазвание = ДанныеХранения.ОрганизацияОФДНазвание;
|
||
ПараметрыРегистрации.ЗаводскойНомерККТ = ДанныеХранения.ЗаводскойНомерККТ;
|
||
ПараметрыРегистрации.ЗаводскойНомерФН = ДанныеХранения.ЗаводскойНомерФН;
|
||
ПараметрыРегистрации.ВерсияФФДККТ = ДанныеХранения.ВерсияФФДККТ;
|
||
ПараметрыРегистрации.ВерсияФФДФН = ДанныеХранения.ВерсияФФДФН;
|
||
Если ДанныеХранения.Свойство("ПризнакФискализации") И НЕ ПустаяСтрока(ДанныеХранения.ПризнакФискализации) Тогда
|
||
ПараметрыРегистрации.ПризнакФискализации = ОбщегоНазначенияБПО.ПреобразоватьВБулево(ДанныеХранения.ПризнакФискализации);
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
// Обновляет параметры регистрации ККТ
|
||
//
|
||
// Параметры:
|
||
// ПараметрыРегистрацииТаблица - ТаблицаЗначений -
|
||
// ПараметрыРегистрации - ТаблицаЗначений -
|
||
//
|
||
Процедура ОбновитьПараметрыРегистрацииККТ(ПараметрыРегистрацииТаблица, ПараметрыРегистрации) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Для Каждого ПараметрРегистрации Из ПараметрыРегистрации Цикл
|
||
|
||
Параметр = ПараметрыРегистрацииТаблица.Добавить();
|
||
НаименованиеПараметра = ПараметрРегистрации.НаименованиеПараметра;
|
||
ЗначениеПараметра = ПараметрРегистрации.ЗначениеПараметра;
|
||
|
||
Если НаименованиеПараметра = "РегистрационныйНомерККТ" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Регистрационный номер ККТ'")
|
||
ИначеЕсли НаименованиеПараметра = "ОрганизацияНазвание" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Название организации'")
|
||
ИначеЕсли НаименованиеПараметра = "ОрганизацияИНН" Тогда
|
||
НаименованиеПараметра = НСтр("ru='ИНН организации'")
|
||
ИначеЕсли НаименованиеПараметра = "АдресПроведенияРасчетов" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Адрес проведения расчетов'")
|
||
ИначеЕсли НаименованиеПараметра = "КодыСистемыНалогообложения" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Системы налогообложения'");
|
||
СистемыНалогообложения = СтрРазделить(ЗначениеПараметра, ",");
|
||
ЗначениеПараметра = "";
|
||
Для Каждого СистемаНалогообложения Из СистемыНалогообложения Цикл
|
||
ЗначениеПараметра = ?(Не ПустаяСтрока(ЗначениеПараметра), ЗначениеПараметра + ",", "");
|
||
Если Не ПустаяСтрока(СистемаНалогообложения) Тогда
|
||
ЗначениеПараметра = ЗначениеПараметра + """"+ ОборудованиеЧекопечатающиеУстройстваКлиентСервер.НаименованиеСистемыНалогообложения(Число(СистемаНалогообложения)) + """";
|
||
КонецЕсли;
|
||
КонецЦикла;
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакАвтономногоРежима" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Автономный режим'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакАвтоматическогоРежима" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Автоматический режим'")
|
||
ИначеЕсли НаименованиеПараметра = "НомерАвтоматаДляАвтоматическогоРежима" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Номер автомата для автоматического режима'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакШифрованиеДанных" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Шифрование данных'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакРасчетовЗаУслуги" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Расчет за услуги'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакФормированияБСО" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Формирования БСО'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакРасчетовТолькоВИнтернет" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Расчет только в интернет'")
|
||
ИначеЕсли НаименованиеПараметра = "ОрганизацияОФДИНН" Тогда
|
||
НаименованиеПараметра = НСтр("ru='ОФД ИНН'")
|
||
ИначеЕсли НаименованиеПараметра = "ОрганизацияОФДНазвание" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Наименование ОФД'")
|
||
ИначеЕсли НаименованиеПараметра = "ЗаводскойНомерККТ" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Заводской номер ККТ'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакФискализации" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Признак фискализации'")
|
||
ИначеЕсли НаименованиеПараметра = "ЗаводскойНомерФН" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Заводской номер ФН'")
|
||
ИначеЕсли НаименованиеПараметра = "НомерДокументаФискализации" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Номер документа фискализации'")
|
||
ИначеЕсли НаименованиеПараметра = "ДатаВремяФискализации" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Дата и время фискализации'")
|
||
ИначеЕсли НаименованиеПараметра = "ВерсияФФДККТ" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Версия ФФД ККТ'")
|
||
ИначеЕсли НаименованиеПараметра = "ВерсияФФДФН" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Версия ФФД ФН'")
|
||
// ФФД 1.05 и ФФД 1.1
|
||
ИначеЕсли НаименованиеПараметра = "МестоПроведенияРасчетов" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Место проведения расчетов'")
|
||
ИначеЕсли НаименованиеПараметра = "ПродажаПодакцизногоТовара" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Продажа подакцизного товара'")
|
||
ИначеЕсли НаименованиеПараметра = "ПроведенияАзартныхИгр" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Проведения азартных игр'")
|
||
ИначеЕсли НаименованиеПараметра = "ПроведенияЛотерей" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Проведения лотерей'")
|
||
ИначеЕсли НаименованиеПараметра = "ПризнакиАгента" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Признаки агента'")
|
||
ИначеЕсли НаименованиеПараметра = "УстановкаПринтераВАвтомате" Тогда
|
||
НаименованиеПараметра = НСтр("ru='Установка принтера в автомате'")
|
||
КонецЕсли;
|
||
|
||
Параметр.НаименованиеПараметра = НаименованиеПараметра;
|
||
Параметр.ЗначениеПараметра = ЗначениеПараметра;
|
||
КонецЦикла;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
// Возвращает поддерживает ли фискальное устройство проверку кодов маркировки.
|
||
//
|
||
// Параметры:
|
||
// Результат - Булево - Фискальное устройство поддерживает проверку кодов маркировки
|
||
// ИдентификаторУстройства - СправочникСсылка.ПодключаемоеОборудование - Идентификатор устройства
|
||
//
|
||
Процедура ФискальноеУстройствоПоддерживаетПроверкуКодовМаркировки(Результат, ИдентификаторУстройства) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Результат = Ложь;
|
||
ПараметрыРегистрации = Новый Структура();
|
||
ПараметрыРегистрацииУстройства(ПараметрыРегистрации, ИдентификаторУстройства);
|
||
Если ПараметрыРегистрации <> Неопределено Тогда
|
||
Результат = ПараметрыРегистрации.Свойство("ВерсияФФДККТ") И ПараметрыРегистрации.ВерсияФФДККТ = "1.2"
|
||
И ПараметрыРегистрации.Свойство("ВерсияФФДФН") И ПараметрыРегистрации.ВерсияФФДФН = "1.2";
|
||
КонецЕсли;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
// Возвращает для фискального устройства версию ФФД.
|
||
//
|
||
// Параметры:
|
||
// Результат - Строка - Версию ФФД поддерживаемая устройством
|
||
// ИдентификаторУстройства - СправочникСсылка.ПодключаемоеОборудование - Идентификатор устройства.
|
||
//
|
||
Процедура ФискальноеУстройствоПоддерживаетВерсиюФФД(Результат, ИдентификаторУстройства) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Результат = Неопределено;
|
||
ПараметрыРегистрации = Новый Структура();
|
||
ПараметрыРегистрацииУстройства(ПараметрыРегистрации, ИдентификаторУстройства);
|
||
Если ПараметрыРегистрации <> Неопределено И ПараметрыРегистрации.Свойство("ВерсияФФДККТ") Тогда
|
||
Результат = ПараметрыРегистрации.ВерсияФФДККТ;
|
||
КонецЕсли;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
// Выполняет проверку обязательности заполняет тэгов.
|
||
//
|
||
// Параметры:
|
||
// Результат - Булево
|
||
// Параметры - Структура
|
||
// ИдентификаторУстройства - СправочникСсылка.ПодключаемоеОборудование
|
||
// ОписаниеОшибки - Строка
|
||
//
|
||
Процедура ВыполненаПроверкаОбязательностиИПравильностиЗаполненияТэгов(Результат, Параметры, ИдентификаторУстройства, ОписаниеОшибки) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Если ОбщегоНазначенияБПО.ИспользуетсяФорматноЛогическийКонтроль() Тогда
|
||
МодульФорматноЛогическийКонтроль = ОбщегоНазначенияБПО.ОбщийМодуль("ФорматноЛогическийКонтроль");
|
||
Результат = МодульФорматноЛогическийКонтроль.ВыполненаПроверкаОбязательностиИПравильностиЗаполненияТэгов(Параметры, ИдентификаторУстройства, ОписаниеОшибки);
|
||
Иначе
|
||
Результат = Истина;
|
||
КонецЕсли;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
// Приводит к формату согласованному с ФНС.
|
||
//
|
||
// Параметры:
|
||
// ОсновныеПараметры - см. ОборудованиеЧекопечатающиеУстройстваКлиентСервер.ПараметрыОперацииФискализацииЧека
|
||
// Отказ - Булево
|
||
// ОписаниеОшибки - Строка
|
||
// ИсправленыОсновныеПараметры - Булево
|
||
Процедура ПривестиДанныеКТребуемомуФормату(ОсновныеПараметры, ИсправленыОсновныеПараметры) Экспорт
|
||
|
||
// ++ Локализация
|
||
|
||
Если ОбщегоНазначенияБПО.ИспользуетсяФорматноЛогическийКонтроль() Тогда
|
||
МодульФорматноЛогическийКонтроль = ОбщегоНазначенияБПО.ОбщийМодуль("ФорматноЛогическийКонтроль");
|
||
МодульФорматноЛогическийКонтроль.ПривестиДанныеКТребуемомуФормату(ОсновныеПараметры, ИсправленыОсновныеПараметры);
|
||
КонецЕсли;
|
||
|
||
// -- Локализация
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|