Внедрение ККМ Онлайн в сторонние конфигурации 1С

22.04.17

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

В данной статье мне бы хотелось поделиться опытом внедрения ККМ онлайн (Атол 11Ф) в одну из сторонних конфигураций 1С. Надеюсь, что она поможет сэкономить время моим коллегам, которые столкнулись с ситуацией, когда есть конфигурация, но ее поддержка разработчиком уже давно прекращена. В статье мы рассмотрим общие моменты, которые позволят "подружить" ее с онлайн кассами.

Итак, начнем с небольшого предисловия. Есть конфигурация Комильфо: Салон Красоты, поддержка которой была прекращена несколько лет назад, но в салоне, который относится к моей организации, она до сих пор используется. Как вы прекрасно знаете, государство обязало фирмы, работающие с наличными деньгами в принудительном порядке использовать онлайн кассы. И вот, руководство салона решило приобрести Атол 11Ф, но оказалось, что он не поддерживается данной конфигурацией. Тут стоит сказать несколько слов, о принципе работы с торговым оборудованием, который заложен в эту конфигурацию: как и, наверное, во всех конфигурациях от франчайзи 1С-Рарус, список доступного торгового оборудования «зашит» в специальной библиотеке, соответственно, без участия Раруса что-либо добавить в нее не представляется возможным. На просьбу добавить функционал для работы с Атол 11-Ф, была озвучена стоимость работ на 100 часов (а мы все, примерно, представляем сколько стоит 1 час работы крупного франчайзи) и руководство решило, что справится своими (т.е. моими) силами. Все, с предисловием закончили, теперь можно переходить к сути.

Я не буду останавливаться на подключении самого оборудования, так как все эти процедуры, уже были подробно описаны тут и тут. Было решено пойти по пути наименьшего сопротивления - взять готовый функционал из типовых конфигураций и перенести его. Как раз в феврале вышел свежий релиз УПП 1.3, в котором была реализована поддержка онлайн ККМ. Из УПП 1.3 нам понадобятся следующие объекты:

  1. Обработки - ТОСервер и ТОНастройка.

  2. Справочники - КассыККМ, ТорговоеОборудование и ОбработкиОбслуживанияТО.

  3. Документы - КассоваяСмена. В текущих релизах УПП, он сделан на управляемых формах, поэтому если вы не хотите переписывать его на обычные формы, то не забудьте включить использование управляемых форм в толстом клиенте в обычном режиме.

  4. Перечисления – ТООшибкиОбщие, СтатусыКассовойСмены, ТипыРасчетаДенежнымиСредствами.

  5. Регистры сведений – ТорговоеОборудование.

  6. Общие формы – ФормаНастройкиУниверсальныйДрайвер, ПараметрыФискализации.

  7. Общие модули – МенеджерОборудованияВызовСервера, МенеджерОборудованияКлиентСервер, МенеджерОборудованияКлиент, МенеджерОборудованияСервер, МенеджерОборудованияКлиентСерверПереопределяемый, МенеджерОборудованияКлиентПовтИсп, КассовыеСменыКлиент, КассовыеСменыВызовСервера.

В модуле обычного приложения:

  1. Определяем новые глобальные переменные:

Перем глПодключаемоеОборудование Экспорт;

Перем глСерверТО Экспорт;
  1. В процедуре

    ПриНачалеРаботыСистемы()

    прописываем подготовку данных для работы торгового оборудования: 

    МенеджерОборудованияКлиент.ПриНачалеРаботыСистемы()

  2. Прописываем функцию для взаимодействия с ТО:

Функция ПолучитьСерверТО() Экспорт

	Если глСерверТО = Неопределено Тогда
		глСерверТО = Обработки.ТОСервер.Создать();
	КонецЕсли;

	Возврат глСерверТО;

КонецФункции // ПолучитьСерверТО()

Далее, идем в документ, который отвечает за печать чека, в моем случае это был документ «Чек». 

При открытии документа подключаем работу с ТО:

ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма);

При закрытии – отключаем:

ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма);

Так же нам необходимо внешнее событие :

Процедура ВнешнееСобытие(Источник, Событие, Данные)

	Если Не ВводДоступен() Тогда
		Возврат;
	КонецЕсли;

	ПолучитьСерверТО().ОбработатьВнешнееСобытие(Источник, Событие, Данные, ЭтаФорма);

КонецПроцедуры // ВнешнееСобытие()

И функция для поддержки ТО:

Функция ПоддерживаетсяВидТО(Вид) Экспорт

	Результат = Ложь;

	Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода
	 Или Вид = Перечисления.ВидыТорговогоОборудования.СчитывательМагнитныхКарт
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ДисплейПокупателя
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ЭлектронныеВесы
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ТерминалСбораДанных
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ЭквайринговаяСистема 
	 Или Вид = Перечисления.ВидыТорговогоОборудования.ККТ Тогда
		Результат = Истина;
	КонецЕсли;

	Возврат Результат;

КонецФункции // ПоддерживаетсяВидТО()

Теперь меняем процедуру, которая отвечает за печать самого чека. 

Процедура ОсновныеДействияФормыПробитьЧекНовый(Кнопка)
	Перем Ответ;
	Перем Отказ;

	Если ПровестиИРаспечататьЧек(Ответ, Отказ, Истина) Тогда 
		флПробит								=	Истина;
		Попытка
			ЭтотОбъект.Записать();
		Исключение
		КонецПопытки;
		ПраваДоступа.НеДоступностьРедактированияЭлементовНаФорме(ЭлементыФормы);
		ЭлементыФормы.ДействияФормы.Доступность	=	Ложь;
		ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ПробитьЧекНовый.Доступность = Ложь;
	Иначе
		Предупреждение(?(Отказ, "Возможны расхождения ИБ и ленты ФР! ", "") + Ответ);
	КонецЕсли;
КонецПроцедуры

И добавляем в модуль документа две функции: 

Функция ПровестиИРаспечататьЧек(Ответ, Отказ, РучнойРежимПечати = Ложь) Экспорт

	Результат = Истина;
	Ответ     = "";

	Попытка
		Записать();
	Исключение
		Ответ     = "Ошибка при попытке проведения документа!";
		Отказ     = Истина;
		Результат = Ложь;
		Возврат Результат;
	КонецПопытки;

	Если ФлПробит Тогда
		Возврат Результат;
	КонецЕсли;

	Если КассаККМ.ФормироватьНефискальныеЧеки
	   И КассаККМ.РучнойРежимФормирования
	   И Не РучнойРежимПечати Тогда
		Возврат Результат;
	КонецЕсли;

	МассивФР      = ПолучитьСерверТО().ПолучитьСписокУстройств(
	                    Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор,
	                    КассаККМ);
	МассивККТ     = ПолучитьСерверТО().ПолучитьСписокУстройств(
	                    Перечисления.ВидыТорговогоОборудования.ККТ,
	                    КассаККМ);
	МассивФУ = Новый Массив();
	ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивФР);
	ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивККТ);

	ФУ            = Неопределено;
	СписокФУ      = Новый СписокЗначений();
	Вид           = Неопределено;
	Представление = Неопределено;

	Для каждого ФУ Из МассивФУ Цикл
		ПолучитьСерверТО().ПолучитьПредставлениеУстройства(ФУ, Вид, Представление);
		СписокФУ.Добавить(ФУ, Представление);
	КонецЦикла;

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

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

	Возврат Результат;

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

КонецФункции

И одну процедуру:

Процедура ПодготовитьДанныеДляФискализацииЧека(ЧекККМ, ОбщиеПараметры)
	
	ОбщиеПараметры = МенеджерОборудованияКлиентСервер.ПараметрыОперацииФискализацииЧека();

	ОрганизацияЧека = ЧекККМ.КассаККМ.Владелец;	
	// Шапка
	ОбщиеПараметры.ДокументОснование = ЧекККМ;
	Если ЧекККМ.ХозОперация = Перечисления.РежимЧека.Чек Тогда 
		ОбщиеПараметры.ТипРасчета =	ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ПриходДенежныхСредств");
	ИначеЕсли ЧекККМ.ХозОперация = Перечисления.РежимЧека.ЧекНаВозврат Тогда
		ОбщиеПараметры.ТипРасчета = ПредопределенноеЗначение("Перечисление.ТипыРасчетаДенежнымиСредствами.ВозвратДенежныхСредств")
	Иначе 
		Сообщить("Копии чека, больше не используются!");
		Возврат;
	КонецЕсли;
	
	ОбщиеПараметры.Кассир = ЧекККМ.Ответственный.Наименование;
	ОбщиеПараметры.Электронно = Ложь; // Чек будет напечатан
	ОбщиеПараметры.Отправляет1СSMS = Ложь;
	ОбщиеПараметры.Отправляет1СEmail = Ложь;
	ОбщиеПараметры.ОрганизацияНазвание = ОрганизацияЧека.ПолноеНаименование;
	ОбщиеПараметры.ОрганизацияИНН = ОрганизацияЧека.ИНН;
	ОбщиеПараметры.ОрганизацияКПП = ОрганизацияЧека.КПП;
    ПорядокНалогообложения = Неопределено;
	ДопДанные.Свойство("ПорядокНалогообложения", ПорядокНалогообложения);
	ОбщиеПараметры.КодСистемыНалогообложения = МенеджерОборудованияКлиентСервер.КодСистемыНалогообложения
		(ОрганизацияЧека, ЧекККМ.Дата, ПорядокНалогообложения);	
	// Оплаты	
	ОплатыЧека = ЧекККМ.ПолучитьОбъект().ИтогиОплатПоТипам();
	СуммаТипаОплаты = ОплатыЧека.Получить(Перечисления.ВидыОплаты.Наличные);
	Если СуммаТипаОплаты <> 0 И СуммаТипаОплаты <> Неопределено Тогда
		СтрокаОплаты = Новый Структура();
		СтрокаОплаты.Вставить("ТипОплаты", 0);
		СтрокаОплаты.Вставить("Наименование", "Наличная оплата");
		СтрокаОплаты.Вставить("Сумма", СуммаТипаОплаты);
		ОбщиеПараметры.ТаблицаОплат.Добавить(СтрокаОплаты);
	КонецЕсли;
	СуммаТипаОплаты = ОплатыЧека.Получить(Перечисления.ВидыОплаты.Безналичные);
	Если СуммаТипаОплаты <> 0 И СуммаТипаОплаты <> Неопределено Тогда
		СтрокаОплаты = Новый Структура();
		СтрокаОплаты.Вставить("ТипОплаты", 1);
		СтрокаОплаты.Вставить("Наименование", "Платежная карта");
		СтрокаОплаты.Вставить("Сумма", СуммаТипаОплаты);
		ОбщиеПараметры.ТаблицаОплат.Добавить(СтрокаОплаты);
	КонецЕсли;
	// Товарные позиции
	Для Каждого СтрокаТовара Из ЧекККМ.ОплатаЧеком Цикл
		СтрокаЧека = МенеджерОборудованияКлиентСервер.ПараметрыФискальнойСтрокиЧека();
		
		// Обязательные поля
		СтрокаЧека.Наименование = СтрокаТовара.Номенклатура.Наименование; // Наименовнование предмета расчета
		СтрокаЧека.Количество = СтрокаТовара.Количество; // Количество предмета расчета 
		СтрокаЧека.Цена = СтрокаТовара.Цена; // Цена без учета скидок и наценок
		СтрокаЧека.Сумма = СтрокаТовара.Сумма; // Cтоимость предмета расчета с учетом скидок и наценок
		СтрокаЧека.СтавкаНДС = МенеджерОборудованияКлиентСервер.ПолучитьСтавкуНДСДляФискализацииЧека
			(СтрокаТовара.Номенклатура.СтавкаНДС, ПорядокНалогообложения); // Cтавка НДС в %
		//СтрокаЧека.Штрихкод = СокрЛП(СтрокаТовара.ШтрихКод); // Штрихкод
		// Дополнительные реквизиты начиная с ФФД 1.1
		СтрокаЧека.КодПризнакаСпособаРасчета = 4;  // Код признака способа расчета (Таблица 25 документа ФФД)
		СтрокаЧека.КодПризнакаПредметаРасчета = ?(СтрокаТовара.Номенклатура.Услуга,4,1); // Код признака предмета расчета   (Таблица 25 документа ФФД)

		ОбщиеПараметры.ПозицииЧека.Добавить(СтрокаЧека);
	КонецЦикла;

КонецПроцедуры

Ну и последнее, что нам осталось, в общем модуле КассовыеСменыВызовСервера, в процедуре

ПослеВыполненияКомандыФискальнымУстройством(ПараметрыКоманды) Экспорт

В части, где выполняются действия с обработанными чеками после закрытия смены, прописать свою обработку для закрытия смены.

Если (ПараметрыКоманды.ВыполняемаяКоманда = "CloseShift" ИЛИ ПараметрыКоманды.ВыполняемаяКоманда = "ЗакрытьСмену") 
		И ПараметрыКоманды.ОбрабатыватьЧекиККМ = Истина Тогда
		
		//ЗакрытиеКС = Обработки.ЗакрытиеКассовойСмены.Создать();
		//ЗакрытиеКС.Дата = КассоваяСменаОбъект.Дата;
		//ЗакрытиеКС.КассаККМ = КассоваяСменаОбъект.КассаККМ;
		//ЗакрытиеКС.ОбработкаЧековККМ(Справочники.Склады.ПустаяСсылка());
		ЗакрытиеКС = Обработки.ЗакрытиеСмены.Создать();
		ЗакрытиеКС.ОбработкаЧековККМ(КассоваяСменаОбъект.Дата, КассоваяСменаОбъект.КассаККМ.Владелец);
КонецЕсли;

Ах да, не знаю исправили эту ошибку или нет, но в феврале, при закрытии смены, всегда выдавало ошибку:

Ошибка вызова метода <ОбъектДрайвера.ЗакрытьСмену>. 
Ошибка при вызове метода контекста (XMLЗначение): Несоответствие типов (параметр номер '2')

Все дело было в функции

ПолучитьПараметрыСостоянияСменыИзXMLПакета(Данные, НомерСмены)

  в общем модуле МенеджерОборудованияВызовСервера. Необходимо заменить на следующий код:

Функция ПолучитьПараметрыСостоянияСменыИзXMLПакета(Данные, НомерСмены) Экспорт
    
    ЧтениеXML = Новый ЧтениеXML; 
    ЧтениеXML.УстановитьСтроку(Данные);
    ЧтениеXML.ПерейтиКСодержимому();
    
    Параметры = МенеджерОборудованияКлиентСервер.ПараметрыНормализуемыхФискальныхДанных();
    Параметры.НомерСменыККТ = НомерСмены;
    
    Если ЧтениеXML.Имя = "StatusParameters" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
        Если ЧтениеXML.Прочитать() И ЧтениеXML.Имя = "Parameters" И ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда  
            Параметры.КоличествоНепереданныхФД    = Число(ЧтениеXML.ЗначениеАтрибута("BacklogDocumentsCounter"));
            Параметры.НомерПервогоНепереданногоФД = ЧтениеXML.ЗначениеАтрибута("BacklogDocumentFirstNumber");
            BacklogDocumentFirstDateTime = ЧтениеXML.ЗначениеАтрибута("BacklogDocumentFirstDateTime");
            Если ЗначениеЗаполнено(BacklogDocumentFirstDateTime) Тогда
                Параметры.ДатаПервогоНепереданногоФД  = XMLЗначение(Тип("Дата"), BacklogDocumentFirstDateTime);
            Иначе
                Параметры.ДатаПервогоНепереданногоФД = Дата(1,1,1);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    
    Возврат Параметры;
    
КонецФункции

Спасибо Алексею Васильеву.

Вот и все. Теперь через новую Обработку подключения оборудования загружаем обработки обслуживания и добавляем наш Атол 11Ф.

Время затраченное на обдумываение и реализацию, составило 2 рабочих дня и еще пару дней на отладку. Естественно, что в статье я не привожу полный код из перенесенных модулей и документов, но сразу скажу - в перенесенном "как есть" виде, он будет выдавать ошибки. Некоторые процедуры надо будет убрать, некоторые немного переделать, но все это быстро поддается отладке. Надеюсь, что данная статья будет вам полезна, если вы столкнетесь с похожей ситуацией. В случае возникновения каких-либо вопросов, можно задать их через ЛС.  

P.S. На двух последних скриншотах полностью показаны все новые объекты, которые я переносил из УПП. Так как я решил сделать задел на будущее и полностью перейти на типовую работу с ТО, то объектов в подсистеме несколько больше, чем указано в статье.

P.P.S. Компания 1С, очень трепетно относится к лицензионному соглашению, а так как при доработке конфигурации используется код из УПП, то будет не лишним напомнить, что у вас должна быть приобретена лицензия на этот программный продукт.  

ККМ онлайн конфигурация Салон Рарус розница Атол 11Ф интеграция обычное приложение касса программирование торговля услуги 8.2

См. также

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

4800 руб.

27.02.2017    761679    4659    9495    

2780

54-ФЗ. Очередь печати для ККМ. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки.

5400 руб.

25.05.2015    315927    1839    3007    

990

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    115572    973    562    

826

Обработка 1С для печати чеков на кассе ККТ АТОЛ.ОНЛАЙН

ККМ Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Печать чеков по документам 1С РеализацияТоваров (РасходнаяНакладная), КорректировкаРеализации, СчетНаОплату, ЗаказКлиента, ЧекККМ, ПоступлениеНаРС. Соответствует требованиям 54-ФЗ. Одна облачная касса может использоваться всеми подразделениями организации, без привязки к рабочим местам. Электронные чеки отправляются на email клиента и всегда доступны в 1С, по требованию можно распечатать. Легкая настройка: после регистрации кассы на сайте АТОЛ.ОНЛАЙН, в обработке необходимо указать логин, пароль и идентификатор группы ККТ (берутся в личном кабинете АТОЛ.ОНЛАЙН). Одну кассу можно использовать с 1С при расчетах с физ. и юр. лицами и для интернет-магазина. HTTPS протокол интеграции API v4 / ФФД 1.05 или API v5 / ФФД 1.2.

21600 руб.

23.08.2022    10465    27    4    

22

Обмен между 1С:Розница и Frontol 6 по организациям (Розница - Фронтол)

ККМ Розничная торговля Платформа 1С v8.3 Оперативный учет 1С:Розница 2 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен между 1С:Розница и Frontol 6 при торговле от нескольких организаций, а также ряд других полезных функций. Данный модуль незаменим для тех, кто ведёт учет по нескольким организациям в 1С:Розница, а на РМК (рабочее место кассира) установлен Frontol, или планируется его установка. Подходит для 1С:Розница 2.3./ 3.0, 1С:УНФ 3.0

1500 руб.

22.03.2019    77692    382    474    

159

UTM Proxy для УТМ ЕГАИС (или как не пропустить дубль алкогольной марки и недостачу на кассе + Контроль МРЦ)

Розничная торговля ККМ Обмен с ГосИС Розничная и сетевая торговля (FMCG) Россия Акцизы Платные (руб)

Что такое УТМ прокси? УТМ прокси - это универсальное программное обеспечение для борьбы с дублями марок алкогольной продукции при розничной продажи. Данное программное обеспечение - это своего рода "прокладка" между кассовым ПО и УТМ ЕГАИС. UTM Proxy работает с любыми кассами, вот некоторые из них: miniPOS, рабочие места кассиров в конфигурациях 1С (в том числе и базовые версии), Фронтол и другие...

2400 руб.

16.11.2016    49268    472    60    

24

Пробитие чека ККМ с разных складов через РМК в УТ 11

Кассовые операции ККМ Платформа 1С v8.3 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Платные (руб)

Расширение для 1С:Управление торговлей 11.5, которое позволяет пробивать чеки ККМ и списывать товар с разных складов. Склад списание товара можно указывать в табличной части рабочего места кассира (РМК).

5880 руб.

12.04.2023    7854    26    2    

23

K-SOFT: Печать через веб-сервер АТОЛ с нескольких рабочих мест. Управляемые формы + Бесплатная версия + Маркировка + Поддержка ФФД 1.2

ККМ Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Хотите серьезно ускорить печать чеков, или печатать с разных рабочих мест на один ккм? В этом вам поможет, веб-сервис (веб сервер) от фирмы АТОЛ, а данная разработка позволит интегрировать его с вашей программой 1С. Печатать чеки можно будет даже с мобильного телефона. Работает на любой платформе 1С управляемые формы и на любой операционной системе. Подойдет для конфигураций: Розница 2, Управление нашей фирмой, Управление Торговлей 11, Бухгалтерия 3, Комплексная автоматизация 2, ERP, ЗУП 3, БГУ 2, Управление холдингом, конфигурации Рарус и многих других отраслевых решений

3600 руб.

01.02.2021    47559    467    245    

152
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. karpik666 3759 22.04.17 07:04 Сейчас в теме
Судя по описанию, у вас точно данный код взлетел? в конфигурации автосалон от рарус нет большинства реквизитов, не описали, как будет вводиться email и номер телефона. Как я помню нет реквизита ответственный, а вместо него автор. У кассы ккм нет реквизитов формировать не фискальные чеки. Также у вас применяются документа приходный кассовый ордер и расходный?
lord_soth; +1 Ответить
2. lord_soth 292 22.04.17 08:25 Сейчас в теме
(1) Не скажу насчёт Автосалона, но для Комильфо Салон Красоты точно работает. С февраля все чеки печатаются только через 11ф, на сайте ОФД видны. Отправка чека по смс и на почту, пока не была реализована в текущих релизах, в УПП этих возможностей точно нет. Понятно, что код для разных конфигураций не будет совпадать с точностью до реквизита. Статья, по большей части, носит рекомендательный характер - откуда и какие именно части взять, которые отвечают за работу с онлайн кассами и доделать их под свои конфигурации.
3. karpik666 3759 22.04.17 08:29 Сейчас в теме
(2) ааа, я думал автосалон тогда наверное да. Не думал вывести на форму реквизиты "Электронный чек" и "Вводить email или номер клиента", для настройки отправки чеков?
6. lord_soth 292 23.04.17 15:53 Сейчас в теме
(3) Конечно думал, но пока такой срочной необходимости в электронных версиях чеков нет.
4. ivanov660 4325 22.04.17 20:35 Сейчас в теме
Обожаю замечательный стиль в коде:
1.
Справочники.Организации.НайтиПоКоду("0000000001");

и вот это тоже, замечательно
2.
СтрокаЧека.СтавкаНДС = 0; // Cтавка НДС в %
		Если СтрокаЧека.СтавкаНДС = Неопределено Тогда
			СтрокаЧека.СтавкаНДС = 0;
		КонецЕсли;

3.
ОбщиеПараметры.Кассир = ЧекККМ.Ответственный.Наименование;

4. Надо было бы отметить, что код для обычного приложения.
5. spectre1978 60 23.04.17 09:10 Сейчас в теме
(4) с учётом того что выложено бесплатно и даже не за стартмани - и за это огромное спасибо. Автору от меня плюс.
portwein; Aston1924; Sera; karpik666; alek-sand-er; orfos; rybolovlev_ms; Dmitri93; manlak; shard; PhoenixAOD; Mantis; AlexeyFreeLife; roman77; madonov; lord_soth; +16 1 Ответить
7. ivanov660 4325 23.04.17 20:25 Сейчас в теме
(5) Не согласен, можно было потратить еще минут 20-30 и привести пример в надлежащее состояние.
Из вашего высказывания неявно следует - бесплатно значит и "так сойдет". Использование подобного подхода ведет в никуда.
8. spectre1978 60 23.04.17 22:40 Сейчас в теме
(7) это с какой стороны посмотреть. Автор лично вам ничем не обязан, и мог бы не тратить на подготовку публикации ни пяти минут, ни одной. Тем не менее он это сделал и вы можете брать и пользоваться его кодом как полностью, так и заменяя то, что вас не устраивает, при этом вы не платите ни копейки. В целях понимания логики работы он достаточно полезный, на универсальное и рабочее во всех случаях решение не претендует - это по сути полуфабрикат. Поэтому извините, но неконструктивно. Как по мне - так лучше с "найтипокоду", чем вообще ничего и каждый будет ковыряться самостоятельно.
manlak; shard; Tolpinski; Mantis; AlexeyFreeLife; dkonakov; roman77; lord_soth; fancy; madonov; +10 Ответить
10. ivanov660 4325 24.04.17 11:40 Сейчас в теме
(8) Я автора ни о чем и не прошу, это вопрос его личной кармы.
9. lord_soth 292 24.04.17 09:15 Сейчас в теме
(4) Со вторым замечанием согласен, в первым нет, но поправил, третье - это код самих разработчиков 1С, четвертое - вы невнимательно читали, там где перечислены объекты для переноса, сказано про обычное приложение.
11. ivanov660 4325 24.04.17 11:47 Сейчас в теме
(9) Я думаю, все же не стоит равняться на некачественный код разработчиков 1С.
Про то что код для обычного приложения написано косвенно.
"...если вы не хотите переписывать его на обычные формы, то не забудьте включить использование управляемых форм в толстом клиенте в обычном режиме."
12. premierex 204 26.04.17 08:44 Сейчас в теме
(0)
...взять готовый функционал из типовых конфигураций и перенести его. Как раз в феврале вышел свежий релиз УПП

Какое-то время назад я, разрабатывая индивидуальную конфигурацию для одной из организаций, решил использовать некоторые механизмы (давно отлаженные и отработанные) из типовой конфигурации от 1С. Но, поскольку, в организации шла борьба за чистоту программного обеспечения, решил проконсультироваться в компании 1С: будет ли нарушением лицензионного соглашения использование в собственной (индивидуальной) конфигурации объектов и (или) фрагментов кода из типовой конфигурации 1С? Ответ был однозначным: использование объектов, а также фрагментов программного кода типовых конфигурации без приобретения коробочного продукта с конфигурацией, фрагменты которой были использованы, является нарушением лицензионного соглашения с компанией 1С.
Таким образом, для того, чтобы использовать вышеприведенную методику подключения ККТ онлайн и сохранить чистоту программного обеспечения в плане лицензирования, потребуется как минимум приобретение коробочного продукта 1С:УПП, рекомендованная цена которого на дату публикации составляет 223 000 руб. Стоит призадуматься...
lord_soth; +1 Ответить
13. lord_soth 292 26.04.17 09:22 Сейчас в теме
(12) Да, я тоже думал на этот счет, но так как у меня есть лицензионная УПП + ИТС, то проблем не возникло. На всякий случай, добавил этот момент в статью. Спасибо.
14. spectre1978 60 26.04.17 14:06 Сейчас в теме
(12) с одной стороны как бы да. С другой стороны ведь очевидно, что при условии доступности исходного кода никто не мешает переписать его до полной неузнаваемости, использовав вместо оригинальных конструкций синонимические, и другие имена. После такой модификации будет крайне сложно доказать что это один и тот же код.
16. premierex 204 26.04.17 16:31 Сейчас в теме
(14) (15) И тем не менее... Как бы абсурдно это ни звучало...
В соответствии с законом тиражирование и распространение прикладного решения, созданного с использованием фрагментов кода типовой конфигурации "1С", возможно только по разрешению правообладателя. Тиражные решения, созданные с использованием кода типовой конфигурации, могут поставляться пользователям, правомерно владеющим основной поставкой "1С:Предприятия 8", на основе которой создано данное тиражное решение.

Ответы на типовые вопросы по лицензированию "1С:Предприятия 8".
17. IVC_goal 208 26.04.17 16:52 Сейчас в теме
(16) Я же не против этого. Я только обращаю, Ваше, внимание на то, что строка кода "Пока Выборка.Следующий() Цикл", является фрагментом используемым в типовых конфигурациях 1с. Со всеми вытекающими последствиями.Вывод сделайте сами
18. premierex 204 27.04.17 08:14 Сейчас в теме
(17) Синтаксические конструкции языка 1С под ограничения лицензионного соглашения не попадают, как и не охраняются законом о защите авторских прав, так как они являются неотъемлемой частью встроенного языка. Поэтому использование вышеприведенной конструкции никаких последствий не повлечет и повлечь не может.
Речь идет о фрагментах кода, выполняющих функционал, специфичный для определнной типовой конфигурации 1С. Естественно, написать такой же функционал самостоятельно - можно, а просто взять и скопировать из типовой конфигурации - нет, так как см. (16).
19. IVC_goal 208 27.04.17 09:08 Сейчас в теме
(18) Отлично, что не попадает мы знаем, но более интересно (и не только мне) будет прочитать, какие существуют формализованные критерии оценки программного кода, который попадает под лицензионное соглашение? Только не общие слова.
20. premierex 204 27.04.17 10:48 Сейчас в теме
(19) Поизучайте материал по ссылке из (16). "Общие слова" именно оттуда.
27. RustIG 1301 28.06.18 01:00 Сейчас в теме
(18) не получится "просто взять и скопировать" - не взлетит код
все алгоритмы приходится адаптировать и модифицировать под свою конфигурацию.
короче говоря, не стоит заморачиваться.
15. IVC_goal 208 26.04.17 16:04 Сейчас в теме
(12) Это все равно, что создать лицензию на алфавит. Абсурдность такой позиции ("использование ... фрагментов программного кода") очевидна и не доказуема с юридической точки зрения.Автору большой и жирный +
21. KrivosheevEV 02.05.17 17:46 Сейчас в теме
В документации Атолла есть подробное описание интерфейса драйвера. Куча примеров для многих языков. Можно формировать чеки даже из Excel. К чему этот ажиотаж по 54ФЗ?
22. spectre1978 60 09.05.17 12:10 Сейчас в теме
(21) в основном стоит задача подключиться к кассе стандартными средствами без своих велосипедов или с минимальными, используя уже имеющиеся наработки для обычных касс.
24. coolseo 79 06.07.17 03:34 Сейчас в теме
(21) Здравствуйте, примеры из эксель находятся тут?
C:\Program Files (x86)\ATOL\Drivers8\Samples\FprnM\Excel2000\ExcelEx.xls
Они точно под 54фз или только под древние драйвера?
25. KrivosheevEV 07.07.17 11:39 Сейчас в теме
(24) Примеры описывают взаимодействие с интерфейсом драйвера. И к 54ФЗ имеют косвенное отношение.
Из опыта: на кассе успешно регистрируются операции, декларируемые в примерах; данные успешно уходят ОФД.
23. rozer 305 05.07.17 12:12 Сейчас в теме
с выходом ут10.3.43 с поддержкой ффд 1.05 и прочих статья несколько устарела (
26. Marika2017 18.07.17 16:17 Сейчас в теме
А можете напрямую обратиться к разработчику программы Комильфо - ООО "УмКо", тел 8(8422) 27 27 80, у них есть готовый модуль.
28. user1261992 04.08.19 11:17 Сейчас в теме
Добрый день. Подскажите будет ли работать Ваша программа FR_Atol_Shtrih.exe с ККМ АТОЛ-92 F
Оставьте свое сообщение