Работа с Атол ДТО10 в 1С 7.7

25.12.20

Интеграция - ККМ

Обработка торгового оборудования. Для 1С 7.7 ТиС + Атол ДТО10.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
1С7.7 Атол ДТО10:
.ert 38,00Kb
162
162
1 SM
Скачать Купить за 1 850 руб.

Заказчик перешил все фискальные регистрторы новой прошивкой. После чего аппараты стали недоступны для  драйверов ДТО8. Не найдя на просторах интернета бесплатной обработки для работы с фискальным регистратором и 1С7.7 ТиС переделал frATOL54_comm_105.ert для работы с 10ми драйверами. 

Обработка подключается (показано на скриншоте) как стандартная обработка для работы с торговым оборудованием.

Обработка тестировалась на измененной конфигурации 1с7.7 ТиС 9.х

До начала использования обработки необходимо зарегистрировать библиотеку.

Запустите командную строку под администратором и выполните команду 

regsvr32 "C:\Program Files (x86)\.....\addin_fptr10_x86.dll"

 

//********************************************************************************
Функция ПечататьЧек(Объект, Пароль, СписокТоваров, СуммаЧека, Получено, Скидка, ПризнВозврата, ПУП, Кассир, НомерСекции, НомерЧека, ДлинаСтроки, Покупатель="")
	
	Рез = 0;            
	
    СписокТоваров	= УстановитьЦенуБезСкидки(СписокТоваров);
	ВыполнитьФорматноЛогическийКонтроль(СписокТоваров); 
    СписокТоваров	= УстановитьЦенуБезСкидки(СписокТоваров);

	
	Если Подключить(Объект) = 1 Тогда	
		
		//ДТО 10
		//Открыть чек
		Объект.setParam(1021, СокрЛП(Кассир));
		Объект.operatorLogin();
		
		Если ПризнВозврата=1 Тогда
			Объект.setParam(Объект.LIBFPTR_PARAM_RECEIPT_TYPE, Объект.LIBFPTR_RT_SELL_RETURN);
		Иначе
			Объект.setParam(Объект.LIBFPTR_PARAM_RECEIPT_TYPE, Объект.LIBFPTR_RT_SELL);
		КонецЕсли;  

		Ответ	= Объект.openReceipt();
		Если Ответ<>0 Тогда
			Ошибка(Объект, Ответ);
			рез = 0;
			Объект.cancelReceipt();
			Возврат 0;
		КонецЕсли;

		                                  
		Если НЕ (Покупатель="") Тогда   
			
			ПолнНаименование = Покупатель.ПолнНаименование;
			ИНН              = Покупатель.ИНН;  
			
			Если Найти(ИНН, "\") <> 0 Тогда
				ИНН = Лев(ИНН, Найти(ИНН, "\") - 1);
			ИначеЕсли Найти(ИНН, "/") <> 0 Тогда
				ИНН = Лев(ИНН, Найти(ИНН, "/") - 1);
			КонецЕсли;
			
			Если ИННСоответствуетТребованиямНаСервере(ИНН)=0 Тогда	
				Сообщить("ИНН не соответствует требованиям налоговой "+ ИНН);
				Возврат 0;
			КОнецЕсли;
						 
			//1227	Наименование получателя	string
			Объект.setParam(1227, ЗаменитьСпецСимволы(ПолнНаименование) );
			//1228	ИНН получателя	string
			Объект.setParam(1228,СокрЛП(ИНН));
			//1117	Электронный адрес отправителя чека	string
			//Объект.setParamString(1117, Док.Фирма.ЭлПочта );
			//1055	Применяемая система налогообложения (СНО)	int
			Объект.setParam(1055, Объект.LIBFPTR_TT_OSN );
			//1187	Место расчета	string
			//1060	Адрес сайта ФНС	string
			//1057	Признак агента	int
			//Объект.setParamInt(1055, _cons.LIBFPTR_AT_NONE );
			//1171	Телефон поставщика	string
			//fptr.setParamString(1171, СокрЛП(Док.Фирма.ЮрЛицо.Телефоны) );
			//1044	Операция платежного агента	string
			//1073	Телефон платежного агента (может повторяться несколько раз)	string
			//1005	Адрес оператора перевода	string
			//1016	ИНН оператора перевода	string
			//1026	Наименование оператора перевода	string
			//1075	Телефон оператора перевода (может повторяться несколько раз)	string
			//1074	Телефон оператора по приему платежей (может повторяться несколько раз)	string
			//1084	Дополнительный реквизит пользователя	bytearray
			//1192	Дополнительный реквизит чека (БСО)	string
			
		КонецЕсли;
			
		СписокТоваров.ВыбратьСтроки();
		Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
			
			//Продажа ЗаменитьСпецСимволы(СписокТоваров.ТовНаим)  
			Объект.setParam(Объект.LIBFPTR_PARAM_COMMODITY_NAME, СокрЛП(СписокТоваров.ТовНаим));
			Объект.setParam(Объект.LIBFPTR_PARAM_PRICE, СписокТоваров.Цена);
			Объект.setParam(Объект.LIBFPTR_PARAM_QUANTITY, СписокТоваров.Количество);  
			
			Если СписокТоваров.СтавкаНДС = "none" Тогда 
				Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_NO );
			ИначеЕсли СписокТоваров.СтавкаНДС = "18" Тогда
				Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT18 );
			ИначеЕсли СписокТоваров.СтавкаНДС = "20" Тогда
				Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT20 );
			ИначеЕсли СписокТоваров.СтавкаНДС = "10" Тогда
				Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT10 );
			ИначеЕсли СписокТоваров.СтавкаНДС = "0" Тогда
				Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT0 );
			КонецЕсли;
                    
			//Объект.setParam( Объект.LIBFPTR_PARAM_TAX_SUM, СписокТоваров.НДС);   
			
			//1212	Признак предмета расчета	int
			// Признак предмета расчёта. Свойство ItemType может принимать значения:
			// 	1 - товар, за исключением подакцизного товара
			// 	2 - подакцизный товар
			// 	3 - работа
			// 	4 - услуга
			// 	5 - приём ставок при деятельность по организации и проведению азартных игр
			// 	6 - выплата выигрышей в азартных играх
			// 	7 - реализация лотерейных билетов или ставок при деятельность по организации и проведению лотерей
			// 	8 - выплата выигрышей в лотереях
			// 	9 -  прав на использование результатов интеллектуальной деятельности или средств индивидуализации
			// 	10 -  аванс, задаток, предоплата, кредит, взносе в счет оплаты, пени, штраф, вознаграждение, бонус и иной аналогичный предмет расчета
			// 	11 -  предмет расчета, состоящий из предметов, каждому из которых может быть присвоено значение от 0 до 10 (набор)
			// 	12 -  предмет расчета, не относящийся к предметам расчета, которым может быть присвоено значение от 0 до 11
			Объект.setParam(1212,1);
			
			//1214	Признак способа расчета	int
			// Признак способа расчёта. Свойство PaymentMode может принимать значения:
			// 	1 - Полная предварительная оплата до момента передачи предмета расчета
			// 	2 - Частичная предварительная оплата до момента передачи предмета расчета
			// 	3 - Аванс
			// 	4 - Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета
			// 	5 - Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит
			// 	6 - Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит
			// 	7 - Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита)
			Объект.setParam(1214,4);
			
			Ответ	= Объект.registration();   
			Если Ответ<>0 Тогда
				Ошибка(Объект, Ответ);
				рез = 0;  
				Возврат рез;
			КонецЕсли;
			
		КонецЦикла;      
		
		//Закрыть чек
		Если ПризнВозврата=0 Тогда
			//Оплата
			Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_TYPE, Объект.LIBFPTR_PT_CASH);
			Объект.setParam(Объект.LIBFPTR_PARAM_PAYMENT_SUM, СуммаЧека);
			Объект.payment();
		КонецЕсли;
		
		Ответ	= Объект.closeReceipt();
		 
		Если Ответ<>0 Тогда 
			Ошибка(Объект, Ответ); 
			рез = 0; 
			Возврат Рез;
		КонецЕсли;	

		НомерЧека				= ПолучитьНомерЧека(Объект);
		Рез = Объект.close();

		
		ОписаниеПоследнейОшибки =	Объект.ErrorDescription();
		КодПоследнейОшибки		= 	Объект.ErrorCode(); 
		
		Если КодПоследнейОшибки = 0 тогда
			Рез = 1;
		Иначе
			ОписаниеРезультата = ОписаниеПоследнейОшибки;
		КонецЕсли; 
	КонецЕсли;
	
	Возврат Рез;
	
КонецФункции

 

1С7.7 ТиС Атол ДТО10

См. также

Оптовая торговля Розничная торговля ККМ ЭДО и ОФД Обмен с ГосИС Системный администратор Программист Оперативный учет 7.7 Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 1С:Комплексная 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

Подключение фискального регистратора к 1С 7.7 в режиме онлайн-кассы (в соответствии с 54-ФЗ). Поддержка крайних версий драйверов ККТ: ДТО 10 и ДТО 8 для Атол, 4.15, 5.16 для Штрих-М. Поддержка протоколов ФФД 1.0, 1.05, 1.1 и 1.2, развитые настройки для применения частичных оплат и авансов в оптовой и розничной торговле. Поддержка чеков коррекции всех версий. Поддержка розничной продажи маркированной продукции (ЕГАИС, табак, обувь, лекарства, шины, одежда, белье, парфюмерия, молочная продукция, вода и пр.). Вывод электронного чека (на е-майл, телефон) по требованию покупателя, поддерживаются комбинированные типы оплаты, режим эмуляции печати чека на ФР. Полный цикл работы из 1С 7.7 с маркировкой Честный ЗНАК (ГИСМТ, ЦРПТ) из 1С 7.7. ЭДО (табак, обувь, шины, одежда, молочная продукция, вода и прочие группы товаров) для розницы и опта (приемка и оптовая отгрузка маркированной продукции). Поддерживается как объемно-сортовой учет (ОСУ) так и поштучный (поэкземплярный) учет.

2000 руб.

28.03.2017    472122    4333    3473    

2443

Кассовые операции ККМ Системный администратор Программист Бухгалтер Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Программа для управления ККМ Атол и Штрих нового поколения (он-лайн ККТ под 54-ФЗ) с помощью текстового файла (ini файла) с изменениями включена 1 лицензия Для любых программ, которые умеют работать с текстовыми файлами. Внутри комплекта есть готовые к использованию обработки

4800 руб.

31.07.2017    168371    577    605    

199

ККМ Эквайринг/ридер магнитных карт Системный администратор Программист Оперативный учет 7.7 1С:Торговля и склад 7.7 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Данная обработка предназначена для работы с ККТ АТОЛ на платформе 5.0 с драйверами АТОЛ версии 10.7.0.0 и выше для 1С:Торговля и Склад 9.2 (в соответствии с 54-ФЗ). Проста в установке и настройке. Реализован учет маркируемой продукции по ФФД 1.2. В поставку включена поддержка эквайринга на уровне драйверов (в данный момент – Сбер), реализован учет частичных оплат, добавлены эмуляторы кассы и эквайрингового терминала, добавлена обработка генерации тестовых кодов маркировки.

2000 руб.

20.08.2020    27081    57    78    

56

ККМ Кассовые операции Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Россия Платные (руб)

Для тех, у кого остались не типовые конфигурации или сильно доработанные. Не все заказчики согласны платить за перенос конфигурации c V1С 7.7  на V1С 8 в связи с новым применением ККМ нового поколения ( 54-ФЗ ). Код обработки полностью открыт, поэтому разработчику не составит труда использовать методы данной обработки для привязки фискального регистратора Атол любых моделей к конфигурации Заказчика.

1200 руб.

31.03.2017    52388    34    36    

38

Кассовые операции Розничная торговля ККМ Программист Платформа 1С v7.7 1С:Торговля и склад 7.7 Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка позволяет печатать чеки для кассы Штрих Online из 1С 7.7 (Торговля и склад). Есть возможность печать чеков из разных касс. Также можно подставить функционал в любую конфигурацию.

1 стартмани

18.02.2021    9207    4    Drfreeman    10    

1

ККМ Обмен с ГосИС Бухгалтер Пользователь Оперативный учет 7.7 1С:Торговля и склад 7.7 Розничная и сетевая торговля (FMCG) Россия Бухгалтерский учет Управленческий учет Абонемент ($m)

Обработка для загрузки базы кодов цен в ККТ "Меркурий" с помощью программы-конфигуратора MercConfig из базы Торговля и склад 9.2 1С: Предприятие 7.7.

1 стартмани

25.01.2021    8631    1    aleksandr_leiman    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Petrushka 13.01.21 16:58 Сейчас в теме
Здравствуйте
Выдаёт ошибку при регистрации ФР в Торговом оборудовании
Ошибка при создании объекта из компоненты F:\Tunes_1C\Torg_NEW_for_Admin\addin_fptr10_x86.dll (отсутствует интерфейс IInitDone)
Фискальный регистратор: ошибка при подключении
не удалось загрузить внешнюю компоненту "addin_fptr10_x86.dll"

Как правильно зарегистрировать?
Прикрепленные файлы:
2. aldar 51 13.01.21 21:41 Сейчас в теме
Компоненту надо регистрировать regsrv32 под администратором. Иначе не работает.
3. ultra_plus 18.01.21 06:23 Сейчас в теме
Здравствуйте. Я может неправильно указываю номер порта? Или тут ничего не указывается. Подскажите, пожалуйста, как правильно надо настроить оборудование. АТОЛ 30Ф, ТиС 77. Под Windows XP будет работать?
Прикрепленные файлы:
4. aldar 51 18.01.21 10:32 Сейчас в теме
Здравствуйте. Написать обработку надо было срочно и я жестко прописал ком порт в функции подключения

//********************************************************************************
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_COM_FILE, "COM8"); //"COM"
5. vladimir.gl 19.01.21 11:23 Сейчас в теме
Здравствуйте. Спасибо, работает. При закрытии смены не печатает Z-отчет, буду разбираться.
6. grafit 8 30.01.21 12:34 Сейчас в теме
Как отключиться после печати чека и освободить порт?
8. aldar 51 02.02.21 20:30 Сейчас в теме
(6) Я думаю как и всегда это делали. Удалить объект.
7. grafit 8 02.02.21 15:49 Сейчас в теме
На платформе 5 невозможно корректно передать скиду по позиции (насколько я понял). Если на старой можно было сумму передать и поделить на количество, получив таким образом корректную ИТОГОВУЮ сумму чека, то сейчас этот метод не работает.
Есть соображения по этому поводу?
10. aldar 51 02.02.21 20:58 Сейчас в теме
(7)Эта проблема уже давно. Во второй рознице эту проблему решали делением строки на несколько и игрой +- с копейками. Т.е. если у вас 2 товара по 50 копеек (т.е. общей стоимостью 1 р.) и вы сделали скидку 1 копейку то пробивается двумя строками 1я за 50 коп. и 2я за 49 коп. У меня в обработке для этого есть 2 процедуры:
1. СписокТоваров = УстановитьЦенуБезСкидки(СписокТоваров);
2. ВыполнитьФорматноЛогическийКонтроль(СписокТоваров);
9. alexstav 8 02.02.21 20:33 Сейчас в теме
СписокТоваров = УстановитьЦенуБезСкидки(СписокТоваров);
ВыполнитьФорматноЛогическийКонтроль(СписокТоваров);
СписокТоваров = УстановитьЦенуБезСкидки(СписокТоваров);

Я правильно понял, эти функции выполняют "подгон" сумм с строках под общую сумму ПКО?
11. aldar 51 02.02.21 20:58 Сейчас в теме
12. aldar 51 03.02.21 00:07 Сейчас в теме
13. alexstav 8 03.02.21 13:09 Сейчас в теме
Обработку подключил, при печать чека выдает;
передается в тег ООО Виола
Ответ = -1 #148= [Ошибка программирования реквизита 1227] Фискальный регистратор: ошибка при печати чека

Если закомментировать эту строку, то ругается на следующую строку (ИНН)

Ответ = -1 #148= [Ошибка программирования реквизита 1228] Фискальный регистратор: ошибка при печати чека

Что может быть?

драйвер 10.5.0
ID серии 10-7942
89. rougudz 03.05.23 13:43 Сейчас в теме
(13)удалось решить проблему?
14. aldar 51 03.02.21 17:38 Сейчас в теме
Может быть прошивка? Я делал обработку в срочном порядке под Атол ДТО 10 после перепрошивки фискальных регистраторов на 5 версию. Когда 8 и 9 драйвера перестали видеть фискальник.
15. Slavez 24 18.02.21 19:48 Сейчас в теме
Добрый день! На одном компе возникает "Ошибка при создании объекта AddIn.Fptr10". Не подскажите с чем это может быть связано?
16. aldar 51 19.02.21 09:00 Сейчас в теме
(15)Регистрируйте regsrv32 под администратором.
17. Vslav 6 24.02.21 18:39 Сейчас в теме
Добрый вечер ! Почему данная обработка не закрывает смену ? Возможно просто сам отчет не печатается ? Но как то все молча ? В 8-м драйвере, при закрытии смены печатался, здесь нет...
18. Vslav 6 24.02.21 18:54 Сейчас в теме
Все разобрался, спасибо !
19. aldar 51 24.02.21 23:03 Сейчас в теме
(18)Добрый вечер. вы уже второй у кого не печатается Z-отчет. Поделитесь в чём было дело. У меня проблем небыло.
20. GreyCrazyWolf 04.03.21 13:57 Сейчас в теме
Добрый день, не совсем разобрался, как в чек передать признак наличной / безналичной оплаты.
21. suhal 04.03.21 14:32 Сейчас в теме
Здравствуйте. Имеется конфигурация 1С: Торговля+Склад. Необходимо доработать 1С так, чтобы могла продавать «Маркированный товар» (постельное бельё ) документом «ЧекККМ». Так же необходимо изменить внешнюю обработку для работы с ККТ Атол 30-Ф (frATOL54_comm_105.ert ), чтобы могла работать с ДТО v10, т.к. одну из ККТ прошили платформой 5 и её не видит ДТО v8. Что для этого необходимо и сколько будет стоить?
С уважением, Сухочев Алексей.
24. aldar 51 04.03.21 21:33 Сейчас в теме
(21)Если обратите внимание на публикацию то в ней как раз и идёт речь об обработке frATOL54_comm_105.ert которую я переделал для работы с ДТО10. И она как раз работает с "1С77 Торговля и склад". Переделать обработку frATOL54_... для приёма маркировки не сложно. А вот для оценки сложности и стоимости изменения конфигурации надо какое ни будь ТЗ.
27. user1587212 21.04.21 15:15 Сейчас в теме
Напишите в личку, помогу.
22. GreyCrazyWolf 04.03.21 14:41 Сейчас в теме
Кажется нашел вот это
Способ расчета (LIBFPTR_PARAM_PAYMENT_TYPE) может принимать следующие значения:
LIBFPTR_PT_CASH - наличными
LIBFPTR_PT_ELECTRONICALLY - безналичными
....
подскажите это правильно?
23. aldar 51 04.03.21 21:12 Сейчас в теме
(22) Да. https://integration.atol.ru/api/#zaregistrirovat-oplatu

Там Вы найдёте подробное описание API АТОЛ
GreyCrazyWolf; +1 Ответить
25. user663268_infolet 17.03.21 16:41 Сейчас в теме
Доброго дня! Покажите, пожалуйста, процедуру Подключить(Объект)
26. aldar 51 17.03.21 22:08 Сейчас в теме
(25) У меня так




//********************************************************************************
Функция Подключить(Объект)

	Рез = 1;
	Если ПустоеЗначение(Объект) = 1 Тогда
		
		ИмяКомпоненты="AddIn.Fptr10";
		Попытка
			Объект = СоздатьОбъект("AddIn.Fptr10");
		исключение
			Сообщить("Ошибка при создании объекта "+ИмяКомпоненты,"!");
		конецпопытки;
		
		Объект.setSingleSetting(Объект.LIBFPTR_SETTING_MODEL, строка(Объект.LIBFPTR_MODEL_ATOL_AUTO));
		Объект.setSingleSetting(Объект.LIBFPTR_SETTING_PORT, строка(Объект.LIBFPTR_PORT_COM));
		Объект.setSingleSetting(Объект.LIBFPTR_SETTING_COM_FILE, "COM8"); //"COM"      
		Объект.setSingleSetting(Объект.LIBFPTR_SETTING_ACCESS_PASSWORD, "0");
		Объект.setSingleSetting(Объект.LIBFPTR_SETTING_USER_PASSWORD, "30");
		Объект.applySingleSettings();
	КонецЕсли;
	
	Ответ	= Объект.Open();      
	Если Объект.isOpened()=0 Тогда 
		Ошибка(Объект, Ответ);
		рез = 0;  
		Объект.Close();   
	КонецЕсли;  
	
	Возврат Рез;
	
КонецФункции
Показать
28. Asuneft 3 24.05.21 07:02 Сейчас в теме
День добрый, а где эту библиотеку взять addin_fptr10_x86.dll?
29. aldar 51 24.05.21 10:23 Сейчас в теме
День добрый/ Установите драйвер Атол (32х разрядный) с сайта atol.ru
30. VSE 09.07.21 03:20 Сейчас в теме
Доброе время суток.
Столкнулся с проблемой.
При продажи ип или юрику вводится ИНН.
Чек печатает все правильно, но данные в ОФД передаются без ИНН.
Никто не сталкивался?
31. user953984 15.08.21 09:58 Сейчас в теме
Все сделал как описал автор. Вроде ФР подключился - проверить этого не смог, так как если ткнуть кнопку - Параметры подключения - вылазит ошибка - что то связанное с параметрами.

Попробовал пробить чек - вылазит ошибка на строку:

Объект.DeviceEnabled = 1;

Объект.DeviceEnabled = 1;
{E:\1CTEST\EXTFORMS\EQUIP\FRATOL54_COMM_105.ERT(23)}: Поле агрегатного объекта не обнаружено (DeviceEnabled)

Вот что я поменял в стандартной обработке атола:


Функция Подключить(Компонента, ПрогИд, Объект)

    Рез = 1;

		Попытка
			Объект = СоздатьОбъект("AddIn.Fptr10");  // Создание объекта внешней компоненты
		Исключение
            Сообщить("Ошибка при создании объекта "+ ПрогИд ,"!");
		КонецПопытки;
		

		Если ПустоеЗначение(Объект) = 1 Тогда
			ОписаниеРезультата = "не удалось создать объект внешней компоненты с программым идентификатром AddIn." + ПрогИд;
		Иначе
			Рез = 1;
		КонецЕсли;
		
    Возврат Рез;
    
КонецФункции


//********************************************************************************
Функция ПодключитьсяКФР(Объект)

	Рез = 0;
		
	// занимаем порт
  	Объект.DeviceEnabled = 1;
  	Если Объект.ResultCode = 0 тогда
  		// получаем состояние ККМ
  		Если Объект.GetStatus() = 0 тогда
  			// если есть открытый чек, то отменяем его
  			Если Объект.CheckState <> 0 тогда
  				Если Объект.CancelCheck() = 0 тогда
  					Рез = 1;
  				КонецЕсли;
  			КонецЕсли;
  		КонецЕсли;
  	КонецЕсли;
		
	ОписаниеПоследнейОшибки =	Объект.ResultDescription;
    КодПоследнейОшибки		= 	Объект.ResultCode;
 	
	Если КодПоследнейОшибки = 0 тогда
    	Рез = 1;
	Иначе
		ОписаниеРезультата = ОписаниеПоследнейОшибки;
  	КонецЕсли;
	
  	Возврат Рез;
	
КонецФункции
Показать
32. aldar 51 15.08.21 13:48 Сейчас в теме
День добрый.
Компоненту надо регистрировать regsrv32 под администратором. Иначе не работает.
33. user953984 15.08.21 21:06 Сейчас в теме
это я сделал. Иначе бы кассовик не подключился функцией "Функция Подключит"
34. basil_m 6 18.08.21 13:37 Сейчас в теме
Подскажите, под Windows XP у кого-нибудь работает?
Переделал кассовое ПО с ДТО8 на ДТО10. На 7ке и 10ке - все ОК.
В XP при Объект = СоздатьОбъект("AddIn.Fptr10"); выдает Ошибка при создании объекта
35. user1020738 21.08.21 09:53 Сейчас в теме
Добрый день, какая версия драйвера содержит библиотеку addin_fptr10_x86.dll, может ставлю ни так пробывал 10.9, 10.8, 10.5, 10.0
37. aldar 51 23.08.21 08:50 Сейчас в теме
(35) А драйвер 32 разрядный?
36. user1020738 21.08.21 10:38 Сейчас в теме
при открытии обработки вот такая ошибка T(618)}: Значение не представляет агрегатный объект (Выгрузить)
38. user1020738 23.08.21 09:01 Сейчас в теме
да но я по ходу знаю где промахнулся чуть позже попробую
39. user1020738 23.08.21 11:20 Сейчас в теме
дальше больше, в не могу выбрать путь к вашей обработке предлагается только выпадающей список , где ее нет
Прикрепленные файлы:
40. user1020738 23.08.21 11:56 Сейчас в теме
{D:\РАБОЧАЯ БАЗА\+DB+\EXTFORMS\PUBID_1350696-FRATOL54_COMM_ДТО10.ERT(618)}: Значение не представляет агрегатный объект (Выгрузить)
41. aldar 51 23.08.21 12:48 Сейчас в теме
42. @lexandr 143 28.08.21 00:03 Сейчас в теме
Если не печатает z-отчет то добавьте:
Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_ELECTRONICALLY, 0);

Должно получиться следующее:
Объект.setParam(1021, СокрЛП(Кассир));
Объект.operatorLogin();
Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_TYPE, Объект.LIBFPTR_RT_CLOSE_SHIFT);
Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_ELECTRONICALLY, 0);
Объект.report();
Объект.checkDocumentClosed();

Это включит печать бумажного закрытия смены.
43. SnakePlisskin 3 06.09.21 10:15 Сейчас в теме
Доброго дня! Так же "вляпался" в такую-же ситуацию, пытаюсь подключить АТОЛ ЗОФ на ДТО 10 к 7.7, выдает вот это " не удалось создать объект внешней компоненты с программым идентификатром AddIn." dll - зарегистрировал.
44. SnakePlisskin 3 06.09.21 12:54 Сейчас в теме
Все, разобрался. Чеки начали пробиваться и уходить в ОФД.
45. user654398_liana0988 29.09.21 14:11 Сейчас в теме
Добрый день при пробитий чека выходит ошибка: {D:\БАЗЫ 1С\MAG\EXTFORMS\EQUIP\FRATOL54_COMM_ДТО10.ERT(435)}: Значение не представляет агрегатный объект (ПолнНаименование)
46. maxim33 13.10.21 18:00 Сейчас в теме
Добрый день! Установила драйвер 10.9.0.0...в дистрибутиве почему то нет addin_fptr10_x86.dll...где можно найти эту библиотеку. Драйвер установлен по XP. Есть только C:\Program Files\ATOL\Drivers10\KKT\1Cv83\ATOL_KKT_10.zip...внутри есть файл fptr10_1c_win32_10_9_0_0.dll...

но он почему-то при регистрации выдает ошибку.
47. aldar 51 13.10.21 22:52 Сейчас в теме
(46)
addin_fptr10_x86.dll

Для корректной работы обработки должны быть установлены драйвера ККТ АТОЛ версии 10.7.0.0 и выше, версия x86 (с версией x64 обработка работать не будет). Далее необходимо зарегистрировать командой "regsvr32 addin_fptr10_x86.dll" com-сервер драйвера, находящийся в папке
C:\Program Files (x86)\ATOL\Drivers10\KKT\langs\com\
(данная операция требует прав администратора).
48. maxim33 14.10.21 11:11 Сейчас в теме
Спасибо. Зарегистрировала ее на компьютере где касса подключена, от имени администратора (XP). При подключении в 1с пишет
Ошибка при создании объекта из компоненты \\Server\Торг_new\addin_fptr10_x86.dll (отсутствует интерфейс IInitDone)
Фискальный регистратор: ошибка при подключении
не удалось загрузить внешнюю компоненту "addin_fptr10_x86.dll"

addin_fptr10_x86.dl лежит не на сервер, а на компьютере на котором установлена касса, в папке C:\Program Files (x86)\ATOL\Drivers10\KKT\langs\com\...я там ее и зарегистрировала...Я что то опять не так сделала?
Еще dll положила в \\Server\Торг_new, где база лежит.
Прикрепленные файлы:
49. aldar 51 14.10.21 12:35 Сейчас в теме
Это не полноценная обработка, а пример. Поэтому после регистрации вручную не надо больше регистрировать с помощью 1с. Или дописать...
50. maxim33 14.10.21 13:49 Сейчас в теме
Ответ = -1 #4= [Порт недоступен]
Фискальный регистратор: ошибка при подключении
51. maxim33 14.10.21 13:51 Сейчас в теме
Пишет при нажатии на кнопку "Параметры подключения" ...не подключается почему то
52. aldar 51 14.10.21 15:38 Сейчас в теме
(51)прочитайте сообщение 4 выше
53. maxim33 15.10.21 09:23 Сейчас в теме
Теперь выдает Ответ = -1 #3= [Порт занят]
Фискальный регистратор: ошибка при подключении. В каком случае может быть такая ошибка?
54. aldar 51 15.10.21 10:33 Сейчас в теме
(53)В случае если порт занят.
55. maxim33 15.10.21 18:20 Сейчас в теме
Да, все подключилось нормально. Спасибо
56. maxim33 19.10.21 15:47 Сейчас в теме
Не подскажите , а X отчет данная обработка не печатает?
57. пользователь 19.10.21 20:54
Сообщение было скрыто модератором.
...
58. maxim33 20.10.21 11:03 Сейчас в теме
z отчет печатает, х отчет не печатает (Отчет без гашения)
59. aldar 51 20.10.21 12:08 Сейчас в теме
(58) я думаю так же добавить в обработку печати х-отчета LIBFPTR_PARAM_REPORT_ELECTRONICALLY.
https://integration.atol.ru/api/#fn_registration
60. maxim33 21.10.21 10:38 Сейчас в теме
В обработке не нашла команду которая вообще создает x -отчет...
61. Rest001 25.10.21 10:29 Сейчас в теме
Подскажите, кто-то реализовал "Частичную оплату" на 10 драйвере? А то на 8 я так и не смог это вывести.
62. andrey2005 25.02.22 17:41 Сейчас в теме
(42)
Объект.setParam(1021, "Кассир");
			Объект.operatorLogin();
			Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_TYPE, Объект.LIBFPTR_RT_CLOSE_SHIFT);
			Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_ELECTRONICALLY, 0);
			Объект.report();
			Объект.checkDocumentClosed();	



Вроде все правильно, но смену не закрывает и отчет не выходит.
В отладчике до этой процедуры доходит.
В чем может быть ошибка?
63. aldar 51 26.02.22 10:43 Сейчас в теме
(62) А ошибку какую выдаёт?
64. user1030689 12.05.22 14:07 Сейчас в теме
Добрый день! Данная обработка работает с ФФД 1.2
65. user1030689 12.05.22 14:08 Сейчас в теме
Добрый день! Данная обработка работает с ФФД 1,2?
66. aldar 51 12.05.22 20:22 Сейчас в теме
(65) Это не полноценная обработка готовая решить все вопросы, просто я поделился своим решением данного вопроса в одной из организаций работающих на 7.7. В этой обработке не решён вопрос с маркированным товаром, а это главное отличие 1.05, 1.1 и 1.2. Т.е. если нет маркированного товара то скорее всего будет работать.
67. user1064677 16.05.22 13:53 Сейчас в теме
Добрый день.
Подскажите почему не выходит Z-отчет. Смена в 1С закрывается, отчет о продажах формируется, но через драйвер закрытие смены не проходит?
68. aldar 51 16.05.22 17:56 Сейчас в теме
69. user1064677 17.05.22 10:50 Сейчас в теме
(68)Здравствуйте.
Я так и делала, но все равно Z -отчет не выходит?
70. aldar 51 17.05.22 16:37 Сейчас в теме
(69) Тестом драйвера выходит? В ОФД отправляет?
71. user1064677 18.05.22 05:28 Сейчас в теме
(70)
Да, если закрыть смену через драйвер все выходит. В ОФД чеки отправляет.
72. Glonas73 18.05.22 08:58 Сейчас в теме
Утро доброе, не могли бы вы скинуть фунцию Ошибка()?
73. user1064677 18.05.22 09:41 Сейчас в теме
Процедура Ошибка(Объект, Ответ, Сообщ="", знак="!")
Если Ответ<>0 Тогда
Сообщить("Ответ = "+Ответ+" "+Сообщ + "#"+ Объект.errorCode() + "= ["+ Объект.errorDescription() +"]", знак);
Объект.cancelReceipt();
КонецЕсли;
КонецПроцедуры
74. Glonas73 18.05.22 11:01 Сейчас в теме
Спасибо , сейчас ошибка PUBID_1350696-FRATOL54_COMM_ДТО10.ERT(435)}: Значение не представляет агрегатный объект (ПолнНаименование) семерка комплексная , печать из пко.
75. Glonas73 18.05.22 11:23 Сейчас в теме
(74)
Значение не представляет агрегатный объект (ПолнНаименование)

Из пко чек
76. user1064677 18.05.22 11:29 Сейчас в теме
(75)Я в обработке сделала так
Если НЕ (Покупатель="") Тогда

// ПолнНаименование = Покупатель.ПолнНаименование;
ПолнНаименование = "Частное лицо";
// ИНН = Покупатель.ИНН;
ИНН="";
Смена открывается, чеки печатаются, нов вот при закрытии смены не выходит z-отчет, фактически в 1с смена закрылась а в драйвере нет
77. Glonas73 18.05.22 11:41 Сейчас в теме
(76)Спасибо, попробую , а где закрытие смены в 7 ?
78. user1064677 18.05.22 11:45 Сейчас в теме
Документы-Работа с ККМ-Закрытие кассовой смены
79. proffhelp 21.05.22 11:17 Сейчас в теме
Добрый день! Никак не могу подключиться к кассе через rdp. Com порт пробрасывается. В драйвере это видно, но в 1С никак.
Компонента зарегистрирована.

Кусок кода с подключением

ИмяКомпоненты="AddIn.Fptr10";
Попытка
Объект = СоздатьОбъект("AddIn.Fptr10");
исключение
Сообщить("Ошибка при создании объекта "+ИмяКомпоненты,"!");
конецпопытки;
предупреждение(Объект);

Объект.setSingleSetting(Объект.LIBFPTR_SETTING_MODEL, СТРОКА(ОБЪЕКТ.LIBFPTR_MODEL_ATOL_55F));
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_PORT, строка(Объект.LIBFPTR_PORT_COM));
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_COM_FILE, "COM3"); //"COM"
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_BAUDRATE, Строка(Объект.LIBFPTR_PORT_BR_115200));

// Объект.setSingleSetting(Объект.LIBFPTR_SETTING_ACCESS_PASSWORD, "0");
//Объект.setSingleSetting(Объект.LIBFPTR_SETTING_USER_PASSWORD, "30");



Объект.applySingleSettings();

Объект.open();
ПРЕДУПРЕЖДЕНИЕ(Объект.isOpened());

Что может быть? Заранее благодарен.
80. aldar 51 21.05.22 15:18 Сейчас в теме
(79) Объект.setSingleSetting(Объект.LIBFPTR_SETTING_COM_FILE, "COM3")
Вы точно COM3 пробрасываете? На других компах, кто подключен к рдп никто не пробрасывает COM3? А на сервере нет физического COM3? и т.д.
81. proffhelp 22.05.22 13:32 Сейчас в теме
(80) Добрый день! Спасибо за помощь. Разобрался - я подключил обработку в самой 1С и пытался в коде своих обработок создавать подключение. Так это не работает. Если кому нужно вот код закрытия смены

Объект.setSingleSetting(Объект.LIBFPTR_SETTING_MODEL, СТРОКА(Объект.LIBFPTR_MODEL_ATOL_55F));
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_PORT, Объект.LIBFPTR_SETTING_COM_FILE);
// Объект.setSingleSetting(Объект.LIBFPTR_SETTING_PORT, Строка(Объект.LIBFPTR_PORT_USB));

Объект.setSingleSetting(Объект.LIBFPTR_SETTING_COM_FILE, "COM3"); //"COM"
Объект.setSingleSetting(Объект.LIBFPTR_SETTING_BAUDRATE, Строка(Объект.LIBFPTR_PORT_BR_115200));

// Объект.setSingleSetting(Объект.LIBFPTR_SETTING_ACCESS_PASSWORD, "0");
// Объект.setSingleSetting(Объект.LIBFPTR_SETTING_USER_PASSWORD, "30");



Объект.applySingleSettings();




Объект.setParam(1021, "Кадомцева О.А.");
Объект.setParam(1203, "11111111111111");

Объект.operatorLogin();

Объект.open();

Объект.setParam(Объект.LIBFPTR_PARAM_REPORT_TYPE, Объект.LIBFPTR_RT_CLOSE_SHIFT);
Объект.report();

Объект.checkDocumentClosed();
82. user1816683 22.07.22 10:41 Сейчас в теме
Привет. Подскажите как передать в ккм покупателя и ИНН? Мои перешли на ффд 1.2. Там обычная схема

Объект.setParam(1227, ЗаменитьСпецСимволы(ПолнНаименование) );
Объект.setParam(1228,СокрЛП(ИНН));

не работает. Выдает ошибку.

А если :
Объект.setParam(1227, ЗаменитьСпецСимволы(строка(ЮрЛицо)));
Объект.setParam(1228, Лев(СокрЛП(ИНН) + " ",12));
Объект.setParam(1243, "");
Объект.setParam(1244, "");
Объект.setParam(1245, "");
Объект.setParam(1246, "");
Объект.setParam(1254, "");
Объект.utilFormTlv();

clientInfo = Объект.getParamString(Объект.LIBFPTR_PARAM_TAG_VALUE);

Объект.setParamStrHex(1256, clientInfo);

Ответ = -1 #26= [Неверный формат команды]
Фискальный регистратор: ошибка при печати чека

. Атол30ф.
90. rougudz 03.05.23 16:07 Сейчас в теме
(82)
Объект.setParam(1227, ЗаменитьСпецСимволы(строка(ЮрЛицо)));
Объект.setParam(1228, Лев(СокрЛП(ИНН) + " ",12));
Объект.setParam(1243, "");
Объект.setParam(1244, "");
Объект.setParam(1245, "");
Объект.setParam(1246, "");
Объект.setParam(1254, "");
Объект.utilFormTlv();

clientInfo = Объект.getParamString(Объект.LIBFPTR_PARAM_TAG_VALUE);

Объект.setParamStrHex(1256, clientInfo);

удалось чтото сделать?
83. aldar 51 22.07.22 14:56 Сейчас в теме
В инструкции

https://integration.atol.ru/


При работе по ФФД ≥ 1.2. реквизиты 1228 (ИНН покупателя) и 1261 (отраслевой реквизит) могут быть также переданы после регистрации всех позиций в чеке как данные уведомления методом writeSalesNotice(), если в чеке присутствуют позиции, содержащие КМ. Подробнее в соответствующем разделе.

В уведомление о реализации товара с КМ также можно передать данные о реализации маркированного товара с помощью метода writeSalesNotice(), который принимает параметры:

1228 - ИНН клиента
1261 - отраслевой реквизит чека (можно несколько)

т.е. только маркированный товар
84. basil_m 6 30.08.22 15:39 Сейчас в теме
Добрый день. Не подскажите, при переходе на ФФД1.2 меняется алгоритм работы только маркированного товара? Интересуют обычные операции, продажа, возврат, X, Z отчет.
Т.е. если сейчас с ФФД1.1 всё работает, после перевода ККТ на 1.2 тоже должно всё работать, за исключением маркировки?
85. aldar 51 30.08.22 20:28 Сейчас в теме
(84)
X и Z точно не изменятся. Остальное надо смотреть какие теги передаются и поддерживает та или иная версия https://integration.atol.ru/api/#otkryt-chek
86. basil_m 6 31.08.22 10:33 Сейчас в теме
(85) Понятно. Оказывается в документации указывается теперь версия ФФД. Раньше точно не было такого. Проверю.
Спасибо за подсказку!
87. dmitry_sizonenko 24 21.01.23 21:03 Сейчас в теме
Если у кого-то проблемы с печатью z-отчета (печатается со второго раза).
Сделайте так. Добавьте отключение и подключение аппарата.


		ИначеЕсли Процесс = "закрыть_смену" Тогда  
			
			//Добавить 
			Объект = Парам.Получить("Объект");
			Рез1 = Отключить(Объект);

			Рез1 = Подключить(Объект);
			Форма.Параметр.Установить("Объект", Объект);
			//Добавить 
			
			Объект  = Парам.Получить("Объект");
			Кассир  = Парам.Получить("Кассир");
			ПарольАдминистратора = Парам.Получить("ПарольАдминистратора");  
Показать
88. user1846517 22.02.23 18:12 Сейчас в теме
Добрый день. Кто сможет помочь подружить Атол 30Ф с 1С 7.7 Альфа авто?
91. rougudz 04.05.23 11:08 Сейчас в теме
на ОСН полбому надо передавать ИНН и покупателя.
теги 1228 и 1227 с ффд 1.2 надо передавать иначе в теге 1256:

суда по Документации надо делать так:

fptr.setParam(1227, L"Покупатель А");
fptr.setParam(1228, L"112233445573");
fptr.utilFormTlv();
std::vector<uchar> clientInfo = fptr.getParamByteArray(LIBFPTR_PARAM_TAG_VALUE);
fptr.setParam(LIBFPTR_PARAM_RECEIPT_TYPE, LIBFPTR_RT_SELL);
fptr.setParam(1256, clientInfo);
fptr.openReceipt();


в 1с сделал так:

Объект.setParam(1227, ЗаменитьСпецСимволы(строка(ПолнНаименование)));
Объект.setParam(1228, Лев(СокрЛП(ИНН) + " ",12));
Объект.utilFormTlv();
clientInfo = Объект.getParamByteArray(Объект.LIBFPTR_PARAM_TAG_VALUE);
Объект.setParam(Объект.LIBFPTR_PARAM_RECEIPT_TYPE, Объект.LIBFPTR_RT_SELL);
Объект.setParam(1256, clientInfo);


выходит ошибка:
clientInfo = Объект.getParamByteArray(Объект.LIBFPTR_PARAM_TAG_VALUE);
: Тип переменой не поддерживается

у кого-то получилось победить это?
92. aldar 51 04.05.23 14:41 Сейчас в теме
(91)
Объект.LIBFPTR_PARAM_TAG_VALUE


Разве у Объекта есть реквизит LIBFPTR_PARAM_TAG_VALUE?
может сделать как в примере?

Объект.getParamByteArray(LIBFPTR_PARAM_TAG_VALUE)
93. rougudz 04.05.23 16:55 Сейчас в теме
(92) а откуда в 1С взяться такой переменно? )
тут видимо речь про getParamByteArray

подсказали есть в мануалах примечание "При использовании COM-объекта ваш язык может не поддерживать получение из драйвера параметра типа bytearray. В этом случае можно использовать обходной вариант. Нужно запросить такой параметр через getParamStringHex(), он вернет строку с последовательностью байтов вида "01 02 FF AA ...". Далее, эту строку можно записать во входной параметр любого метода через методы setParamStrHex() или setNonPrintableParamStrHex(), и она запишется в драйвер как bytearray."
вот только как так переделать пока не понял.
94. aldar 51 04.05.23 19:16 Сейчас в теме
(93) Можно посмотреть и в мануале, Но тут явная синтаксическая ошибка.

в Документации

clientInfo = fptr.getParamByteArray(LIBFPTR_PARAM_TAG_VALUE);

а у вас

Объект.getParamByteArray(Объект.LIBFPTR_PARAM_TAG_VALUE);
95. rougudz 05.05.23 09:01 Сейчас в теме
(94)
Можно посмотреть и в мануале, Но тут явная синтаксическая ошибка.

и в чем ошибка?
что такое по вашему LIBFPTR_PARAM_TAG_VALUE?
Если написать
Объект.getParamByteArray(LIBFPTR_PARAM_TAG_VALUE);

откуда взяться переменноой "LIBFPTR_PARAM_TAG_VALUE"?
вот именно - нет такой переменной в 1С)

например тут
Объект.setParam(Объект.LIBFPTR_PARAM_RECEIPT_TYPE, Объект.LIBFPTR_RT_SELL);

понятно что это переменные объекта.
соответственно и LIBFPTR_PARAM_TAG_VALUE тоже переменная объекта а не 1С.