Опыт интеграции ФР Штрих-М с 1С

Публикация № 617491

Учет и отчетность - Кассовые операции

ФР ККМ ККМ онлайн фискальный регистратор Штрих-М УТ 10.3 обычные формы обычный интерфейс 8.1 7.7

24
Надвигается 1 июля и всем срочно нужны ККМ-онлайн. Публикую свой опыт быстрого и простого решения на базе фискального регистратора Штрих-М для обычных форм.

Предлагаемая публикация - просто некоторые заметки и наработки, позволившие мне быстро и почти безболезненно запустить в работу ККМ-онлайн модели Штрих-М 01Ф. Поскольку драйвер (а значит, и API) у многих моделей схож или вообще одинаков, думаю, можно распространить эти наработки ещё на несколько популярных моделей. На мой взгляд, и аппаратно, и программно указанный ФР прост, надёжен и стабилен (мне вот никакими адскими опытами пока не удалось ввергнуть его в ошибку, блокировку или иную бяку). По продукции Штрих-М на официальном сайте выложено множество документации, в т.ч. хорошее пользовательское описание и отличная документация для разработчиков, которой я и воспользовался. Там даже есть отрывочные примеры, правда, для 7.5 (если кому надо, могу выложить, я делал версию для 7.7 тоже).

Описанное хорошо подойдёт в случае, если разбираться в механизмах подключаемого оборудования БСП некогда, или если речь о конфигурациях на обычных формах, поколения УТ 10.3, как это было у меня. Или для самописных. Сверх опубликованного более ничего не требуется, никакие общие модули (я вообще на пустой конфе проверял сначала).

Установку и регистрацию в ОФД делал приглашённый специалист, но весь этот процесс также описан в руководствах.

Поскольку ничего внятного о тестовой эксплуатации узнать не удалось, работы велись сразу в "боевом" режиме, что обязывало минимизировать ошибки и количество тестовых запусков. Вообще, кто-то утверждает, что в природе есть тестовые фискальные накопители и даже якобы их можно купить, регистрируясь при этом в рабочем кабинете ОФД; некоторые ОФД открыли тестовые площадки приёма-перехвата данных, предоставляемые тоже по отдельному договору за отдельную плату. Но "старый добрый" способ теста - пробивать минимальные суммы - тоже законен и ФНС не напряжёт, и это мне в один голос говорили многие знающие люди. Так и поступил.

Общие принципы

Связь с аппаратом возможна через COM-порт кабелем usb, или через патчкорд по TCP-сокету. Важно, что связь через ком позволяет аппарату легко работать с терминалами. 1С где-то далеко, а рабочее место кассира оснащается ФР и надо лишь поставить драйвер на сам сервер да прокинуть порт (указать в настройках терминала и поправить безопасность, если потребуется), впрочем, эти приёмы обычно хорошо знают системные администраторы.  У меня ФР уже работает с 1С-кой в терминале.

Разумеется, я реализовал только самые первоочерёдно нужные операции, вообще их существенно больше, но общий принцип одинаков. При установке драйвера сразу ставится и программная компонента, подключаемая как внешняя штатным образом (обычно она сама сразу нормально регистрируется в системе). ПО к этому ФР включает пользовательский интерфейс утилиты ручного управления, и, что ценно, его поведение абсолютно совпадает с поведением программного интерфейса этой же утилиты. Т.е. можно сначала безо всякой 1С оформить некую операцию, используя интерфейс утилиты, а затем попробовать отдать аналогичные команды в коде 1С.

При работе используется переменная, содержащая com-объект, чьи свойства и методы, собственно, и используются. Поскольку, по сути, ФР это просто маленький принтер с некоторыми пакетными предзаданными действиями и собственной памятью, мы запрашиваем драйвер о значениях неких свойств, устанавливаем значения этих свойств, вызываем методы. Принята следующая идеология: сначала устанавливаются значения свойств, нужные для вызова действия, потом вызывается метод. Все методы - без параметров. По вызове метода некоторые свойства меняют свои значения.  Есть понятие "состояние ФР", определяющее, что он может и что нет в каждый момент времени. У некоторых из них есть уточняющие "подсостояния". Некоторые методы изменяют состояние ФР согласно своей внутренней логике. Подробнее всё это описано в руководстве для разработчика.

ФР обладает собственной аппаратной памятью, где хранит таблицы - это действительно плоские простые таблицы, никак не связанные между собой и наполненные значениями простых типов. "Настройка свойств" - "Таблицы". Без установленной связи с включённым аппаратом, ясен перец, недоступны. Советую полазить и ознакомиться. Они доступны для чтения и записи из программного кода. При работе с методами тем или иным свойствам указываются обычно числовые ID, соответствующие порядковым номерам строк в этих таблицах.

Почти каждый метод перед выполнением требует авторизации (указания ID пользователя), не ленитесь их указывать. Для выполнения некоторых методов требуется указание 29 (админ) или 30 (системный админ), так, например, простые смертные кассиры не могут закрыть смену и даже снять Х-отчёт. Подробнее эти завихрения разделения прав описаны в руководстве пользователя.

Исходники для основных действий.


// Инициализирует ФР как COM-объект; рекомендуется расположить в модуле "повт.исп." с сохранением в течение сеанса.
Процедура ИнициализироватьФР() Экспорт
	Попытка
		ПодключитьВнешнююКомпоненту("AddIn.DrvFR"); // достаточно штатной установки драйвера на локальный ПК или сервер
	    ком=Новый COMОбъект("AddIn.DrvFR"); // никакой более регистрации на современных ОС обычно не требуется
		глФР=ком; // экспортная переменная глФР переменная должна быть объявлена в глобальном модуле обычного приложения
	Исключение
		Сообщить("Ошибка инициализации фискального регистратора кассовых чеков: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	КонецПопытки;	
КонецПроцедуры

// Зависит от контекста реализации - например, это может быть параметр сеанса или реквизит справочника Пользователи, Кассы, Подразделения;
// возвращает элемент справочника, содержащего сведения о подключаемых устройствах; типовой или сделанный отдельно. Должен содержать
// сведения, необходимые для подключения к конкретному устройству (см. ПодключитьФР).
//
Функция ПолучитьИспользуемыйФР() Экспорт
	//	
КонецФункции

// Зависит от контекста реализации - например, это может быть параметр сеанса или реквизит справочника Пользователи, Кассы, Подразделения;
// возвращает число от 1 до 30, позицию в таблице пользователей и паролей ФР. Нулевое значение означает обычно невозможность работы.
// Число 29 означает права обычного администратора, 30 - системного администратора (под 30 рекомендуется вести тестирование и спец.операции).
Функция ПолучитьИдПользователя() Экспорт
	//
КонецФункции

// Подключает физическое устройство, проверяет связь, приводит в рабочий режим логическое устройство.
// При нестабильной связи или нетривиальном кэшировании данных 1С/ОС, рекомендуется вызывать перед каждым рабочим действием.
//
// Возвращает успешность (булево). При ошибке возвращает Ложь.
//
// Параметры:
//    рУстройство - логическая запись об устройстве (например, элемент справочника), содержащая обычно следующие сведения для подключения:
//BaudRate
//НомерПортаCOM
//Таймаут
//ТаймаутСоединения
//ТаймаутСоединенияTCP
//ПортTCP
//ИмяУстройства
//IPУстройства
//РежимПодключения (см.руководство; например, 0 - ком-порт, 6 - tcp-сокет)
//
//    рКодОшибки - число; на входе 0, на выходе либо 0 (ошибок нет), либо код ошибки.
//    рПояснятьОК - булево; комментировать ли успешное подключение.
//
Функция ПодключитьФР(рУстройство,рКодОшибки=0,рПояснятьОК=Ложь) Экспорт
Попытка
	рКодОшибки=0;
	Если не ЗначениеЗаполнено(рУстройство) Тогда Возврат Ложь КонецЕсли;
	
	фр=глФР;
	фр.Password=30; // можно ещё 29
	
	рез=фр.CheckConnection();
	Если рез<>0 Тогда
		//Сообщить("ПодключитьФР, ошибка предварительной проверки подключения: "+фр.ResultCodeDescription);
		//рКодОшибки=фр.ResultCode;
		рУжеПодключены=Ложь;
	Иначе
		Если рПояснятьОК Тогда Сообщить("ПодключитьФР, предварительная проверка подключения успешна.") КонецЕсли;
		// смотрим, что она определила
		Попытка рУжеПодключены=фр.Connected Исключение рУжеПодключены=Ложь КонецПопытки;
	КонецЕсли;	
	//
	Если рУжеПодключены Тогда Возврат Истина КонецЕсли;
	
	Если рУстройство.РежимПодключения=0 Тогда
		фр.BaudRate=6;
	ИначеЕсли рУстройство.РежимПодключения=6 Тогда		
		фр.BaudRate=1;
	КонецЕсли;
	//
	фр.ComNumber=рУстройство.НомерПортаCOM;
	фр.Timeout=рУстройство.Таймаут;
	фр.ConnectionTimeout=рУстройство.ТаймаутСоединения;
	фр.TCPConnectionTimeout=рУстройство.ТаймаутСоединенияTCP;
	фр.SyncTimeout=0;
	фр.ComputerName=рУстройство.ИмяУстройства;
	фр.LDIndex=0;
	фр.LockTimeout=10000;
	фр.TCPPort=рУстройство.ПортTCP;
	фр.IPAddress=рУстройство.IPУстройства;
	фр.UseIPAddress=False;
	фр.ConnectionType=рУстройство.РежимПодключения;
	фр.EscapeIP="127.0.0.1";
	фр.EscapePort=1000;
	фр.EscapeTimeout=1000;
	фр.SysAdminPassword=30;
	фр.CardPayType=2;
	фр.CardPayEnabled=False;
	фр.LogCommands=False;
	фр.LogMethods=False;
	фр.SaleError=False;
	фр.MobilePayEnabled=False;
	фр.PayDepartment=15;
	фр.ParamsPageIndex=0;
	фр.RealPayDepartment=1;
	фр.WaitForPrintingDelay=1000;
	фр.BufferingType=0;
	фр.FeedAfterCut=False;
	фр.FeedLineCount=3;
	фр.StatusCommand=0;
	фр.LogMaxFileSize=10;
	фр.LogMaxFileCount=10;
	фр.CodePage=0;
	фр.PrintJournalBeforeZReport=False;
	фр.TranslationEnabled=False;
	фр.AdjustRITimeout=False;
	фр.ReconnectPort=False;
	фр.DoNotSendENQ=False;
	
	рез=фр.Connect();
	Если рез<>0 Тогда
		Сообщить("ПодключитьФР, ошибка собственно подключения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	Иначе
		Если рПояснятьОК Тогда Сообщить("ПодключитьФР, собственно подключение успешно.") КонецЕсли;
	КонецЕсли;	
	
	Если рез<>0 Тогда
		Сообщить("ПодключитьФР, ошибка заключительной проверки подключения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	Иначе
		Если рПояснятьОК Тогда Сообщить("ПодключитьФР, заключительная проверка подключения успешна.") КонецЕсли;
	КонецЕсли;	
	
	Попытка рУжеПодключены=фр.Connected Исключение рУжеПодключены=Ложь КонецПопытки;
	Возврат рУжеПодключены;	
	
Исключение
	Сообщить("ПодключитьФР, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Возвращает успешность (булево). Необязательное; но важно, что при уничтожении переменной связь разрушается не всегда
// (возможно, проявляется описанное в СП кэширование подключенных объектов внешних компонент в течение всего сеанса).
//
Функция ОтключитьФР(рКодОшибки=0,рПояснятьОК=Ложь) Экспорт
Попытка
	рКодОшибки=0;	
	
	фр=глФР;
	фр.Password=ПолучитьИдПользователя();
	
	Попытка рУжеПодключены=фр.Connected Исключение рУжеПодключены=Ложь КонецПопытки;
	Если не рУжеПодключены Тогда Возврат Истина КонецЕсли;
	
	рез=фр.Disconnect(); // собственно главное
	Если рез<>0 Тогда
		Сообщить("ОтключитьФР, ошибка подключения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	Иначе
		Если рПояснятьОК Тогда Сообщить("ОтключитьФР, подключение успешно.") КонецЕсли;
		Возврат Истина;
	КонецЕсли;	
	
Исключение
	Сообщить("ОтключитьФР, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Возвращает структуру вида: НомерОператора, ЕстьЛента, РазрядностьСумм, РазрядностьКоличеств, Режим, ОписаниеРежима,
// Подрежим, ОписаниеПодрежима, СостояниеФН. Если Режим=8 (открытый документ), то добавляется РежимОткрытогоДокумента
// и ОперацийВЧеке.
//
// При ошибке возвращает Неопределено.
//
// Номера и  назначение режимов и статусов (поле ECRMode):
//0 Принтер в рабочем режиме
//1 Выдача данных
//2 Открытая смена, 24 часа не кончились
//3 Открытая смена, 24 часа кончились
//4 Закрытая смена
//5 Блокировка по неправильному паролю налогового инспектора
//6 Ожидание подтверждения ввода даты
//7 Разрешение изменения положения десятичной точки
//8 Открытый документ // Продажа, Покупка, Возврат продажи, Возврат покупки, уточняется через ECRMode8Status
//9 Режим разрешения технологического обнуления (В этот режим ККМ переходит по включению  питания,  если  некорректна  информация  в  энергонезависимом ОЗУ ККМ).
//10 Тестовый прогон
//11 Печать полного фискального отчета
//12 Печать длинного отчета ЭКЛЗ
//13 Работа с фискальным подкладным документом
//14 Печать подкладного документа
//15 Фискальный подкладной документ сформирован
//
Функция ПолучитьРежимФР(рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	фр.Password=ПолучитьИдПользователя();
	
	Если фр.ECRMode=1 Тогда // вызывать нельзя
		Возврат Неопределено;
	КонецЕсли;
	
	рРезультат=Новый Структура;
		
	фр.GetDeviceMetrics();
	Если фр.CapGetShortECRStatus Тогда
		рез=фр.GetShortECRStatus();
	Иначе
		рез=фр.GetECRStatus(); // длинный полный
	КонецЕсли;
	Если рез<>0 Тогда
		Сообщить("ПолучитьРежимФР, ошибка получения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Неопределено;
	КонецЕсли;	
	
	рРезультат.Вставить("НомерОператора",фр.OperatorNumber);
	
	рРезультат.Вставить("ЕстьЛента",фр.ReceiptRibbonIsPresent); // есть ли лента
	рРезультат.Вставить("РазрядностьСумм",?(фр.PointPosition,2,0)); // для сумм, если Истина, то 2 разряда, иначе 0 разрядов
	рРезультат.Вставить("РазрядностьКоличеств",?(фр.QuantityPointPosition,3,6)); // для количеств, если Истина, то 3 знака, иначе 6 знаков
	
	рРезультат.Вставить("Режим",фр.ECRMode);
	рРезультат.Вставить("ОписаниеРежима",фр.ECRModeDescription);
		
	#Область ОписаниеПодрежимов
	//0 Бумага есть – ККТ не в фазе печати операции – может принимать от хоста команды, связанные с печатью на том ленте, датчик которой сообщает о наличии бумаги.
	//1 Пассивное отсутствие бумаги – ККМ не в фазе печати операции – не принимает от хоста команды, связанные с печатью на том ленте, 
	//   датчик которой сообщает об отсутствии бумаги.
	//2 Активное отсутствие бумаги – ККМ в фазе печати операции – принимает только команды, не связанные с печатью. Переход из этого подрежима только в подрежим 3.
	//3 После активного отсутствия бумаги – ККМ ждет команду продолжения печати. Кроме этого принимает команды, не связанные с печатью.
	//4 Фаза печати операции длинного отчета (полные фискальные отчеты, полные отчеты ЭКЛЗ, печать контрольных лент из ЭКЛЗ) – ККМ не принимает от
	//   хоста команды, связанные с печатью, кроме команды прерывания печати.
	//5 Фаза печати операции – ККМ не принимает от хоста команды, связанные с печатью.
	#КонецОбласти
	рРезультат.Вставить("Подрежим",фр.ECRAdvancedMode);
	рРезультат.Вставить("ОписаниеПодрежима",фр.ECRAdvancedModeDescription);

	Если фр.ECRMode=8 Тогда
		// 0 Открыт чек продажи, 1 Открыт чек покупки, 2 Открыт чек возврата продажи, 3 Открыт чек возврата покупки
		рРезультат.Вставить("РежимОткрытогоДокумента",фр.ECRMode8Status);
		рРезультат.Вставить("ОперацийВЧеке",фр.QuantityOfOperations); // количество операций в текущем чеке
	КонецЕсли;
	
	рРезультат.Вставить("СостояниеФН",фр.FMResultCode);
	
	Возврат рРезультат;
Исключение
	Сообщить("ПолучитьРежимФР, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Неопределено;
КонецПопытки;
КонецФункции

// Возвращает структуру вида СостояниеСмены (см.руководство программиста), НомерЧека, НомерСмены.
// При ошибке возвращает Неопределено.
//
Функция ПолучитьНомерСменыИЧека(рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	фр.Password=30; // и только так
	
	рез=фр.FNGetCurrentSessionParams();
	Если рез<>0 Тогда
		Сообщить("ПолучитьНомерСменыИЧека, ошибка получения: "+фр.ResultCodeDescription+" (использован пароль "+СокрЛП(фр.Password)+").");
		рКодОшибки=фр.ResultCode;
		Возврат Неопределено;
	КонецЕсли;	
	
	рРезультат=Новый Структура;
	рРезультат.Вставить("СостояниеСмены",фр.FNSessionState);
	рРезультат.Вставить("НомерСмены",фр.SessionNumber); // если закрыта, то последней, если открыта, то текущей
	рРезультат.Вставить("НомерЧека",фр.ReceiptNumber); // если закрыта, то 1, если открыта, то последниего текущего
	
	Возврат рРезультат;
Исключение
	Сообщить("ПолучитьНомерСменыИЧека, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Неопределено;
КонецПопытки;
КонецФункции

// Открывает кассовую смену. Возвращает успешность (булево).
Функция ОткрытьСмену(рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	фр.Password=ПолучитьИдПользователя();
	
	Если фр.ECRMode<>4 Тогда // смена уже открыта, или некий другой режим
		рКодОшибки=99;
		Возврат Истина;
	КонецЕсли;
	
	рез=фр.OpenSession();
	Если рез<>0 Тогда
		Сообщить("ОткрытьСмену, ошибка выполнения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;

	Сообщить("ОткрытьСмену, смена успешно открыта.");
	Возврат Истина;
Исключение
	Сообщить("ОткрытьСмену, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Закрывает кассовую смену (снимает Z-отчёт). Возвращает успешность (булево).
Функция ЗакрытьСмену(рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	фр.Password=30; // можно ещё 29
	
	Если фр.ECRMode<>2 и фр.ECRMode<>3 Тогда // смена уже закрыта, или другой режим
		рКодОшибки=99;
		Возврат Истина;
	КонецЕсли;
	
	рез=фр.PrintReportWithCleaning();
	Если рез<>0 Тогда
		Сообщить("ЗакрытьСмену, ошибка выполнения: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;
	
	Сообщить("ЗакрытьСмену, смена успешно закрыта.");	
	Возврат Истина;
Исключение
	Сообщить("ЗакрытьСмену, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Возвращает успешность (булево).
Функция СнятьХОтчет(рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	фр.Password=30; // можно ещё 29
	
	Если фр.ECRMode<>2 и фр.ECRMode<>3 Тогда // смена уже закрыта, или другой режим
		Возврат Истина;
	КонецЕсли;
	
	рез=фр.PrintReportWithoutCleaning();
	Если рез<>0 Тогда
		Сообщить("СнятьХОтчет, ошибка снятия отчёта: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;
	
	Сообщить("СнятьХОтчет, отчёт успешно снят.");	
	Возврат Истина;
Исключение
	Сообщить("СнятьХОтчет, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Выполняет печать чека (продажи, покупки, возврата продажи, возврата покупки)
// Возвращает булево, успешность. При ошибке возвращает Ложь.
// КодСтавкиНДС в данном случае общий на все позиции, т.е. для правильной печати у всех строк должна быть одинаковая ставка НДС.
// 
// Параметры:
//    рПараметры - структура с обязательными ключами:
//        ДанныеПродажи (таблица значений или массив структур: колонки ПредставлениеНоменклатуры, Количество, Цена);
//        КодПодразделения (число);
//        КодСтавкиНДС (число), где 1 - 18%, 2 - 10%, 3 - 0%, 4 - Без налога, 5 - 18/118, 6 - 10/110;
//        СуммыОплат (структура: ключ - число, 1 нал, 2 безнал; значение - сумма платежа).
//    рКодОшибки - число, на входе 0, на выходе содержит числовой код ошибки. 0 - ошибок нет.
//
Функция НапечататьЧек(рПараметры,рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;

	фр=глФР;
	фр.Password=ПолучитьИдПользователя();
	
	Если фр.ECRMode<>2 и фр.ECRMode<>3 и фр.ECRMode<>4 Тогда // смена уже закрыта, или другой режим
		Возврат Истина;
	КонецЕсли;
	
	фр.CheckType=рПараметры.РежимЧека; // «0» - продажа, «1» - покупка, «2» - возврат продажи, «3» - возврат покупки.
	рез=фр.OpenCheck();	
	Если рез<>0 Тогда
		Сообщить("НапечататьЧек, ошибка открытия нового чека: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;	
	
	фр.StringForPrinting="============================================";
	фр.UseReceiptRibbon=Истина;
	фр.UseJournalRibbon=Ложь;
	фр.PrintString();
	
	Для каждого строДанных Из рПараметры.ДанныеПродажи Цикл
		фр.Quantity=строДанных.Количество;
		фр.Price=строДанных.Цена;
		фр.Department=рПараметры.КодПодразделения;
		фр.Tax1=рПараметры.КодСтавкиНДС;
		фр.Tax2=0;
		фр.Tax3=0;
		фр.Tax4=0;
		фр.StringForPrinting=СокрЛП(строДанных.ПредставлениеНоменклатуры);
		//Работает в режимах 2 (проверка на окончание 24 часов производится запросом из ФП до
		//выполнения операции), 4, 7, 8 (если статус 8-го режима ККМ=0) и 9	
		Если рПараметры.РежимЧека=0 Тогда
			рез=фр.Sale(); // продажа
		ИначеЕсли рПараметры.РежимЧека=1 Тогда
			рез=фр.Buy(); // покупка
		ИначеЕсли рПараметры.РежимЧека=2 Тогда
			рез=фр.ReturnSale(); // возврат продажи
		ИначеЕсли рПараметры.РежимЧека=3 Тогда
			рез=фр.ReturnBuy(); // возврат покупки
		КонецЕсли;		
		Если рез<>0 Тогда
			Сообщить("НапечататьЧек, ошибка оформления записи продажи для "+СокрЛП(строДанных.ПредставлениеНоменклатуры)+": "+фр.ResultCodeDescription);
			рКодОшибки=фр.ResultCode;
			Возврат Ложь;
		КонецЕсли;		
	КонецЦикла;
	//
	рез=фр.CheckSubTotal();
	Если рез<>0 Тогда
		Сообщить("НапечататьЧек, ошибка получения подытога чека: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;	

	фр.Summ1=0;
	фр.Summ2=0;
	фр.Summ3=0;
	фр.Summ4=0;
	Попытка фр.Summ1=рПараметры.СуммыОплат.Получить(1) Исключение КонецПопытки;
	Попытка фр.Summ2=рПараметры.СуммыОплат.Получить(2) Исключение КонецПопытки;
	Попытка фр.Summ2=рПараметры.СуммыОплат.Получить(3) Исключение КонецПопытки;
	Попытка фр.Summ2=рПараметры.СуммыОплат.Получить(4) Исключение КонецПопытки;
	фр.DiscountOnCheck=0; // в данной версии считается, что скидка уже заложена в изменённых ценах
	фр.Tax1=рПараметры.КодСтавкиНДС;
	фр.Tax2=0;
	
	фр.StringForPrinting="============================================";
	рез=фр.CloseCheck();
	Если рез<>0 Тогда
		Сообщить("НапечататьЧек, ошибка закрытия чека: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;	
	
	Возврат Истина;
Исключение
	Сообщить("НапечататьЧек, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

// Возвращает успешность (булево).
Функция АннулироватьЧек(рЗакрытиеАдминистратора=Ложь,рКодОшибки=0) Экспорт
Попытка
	рКодОшибки=0;
	
	фр=глФР;
	Если рЗакрытиеАдминистратора Тогда
		фр.Password=30; // системный
	Иначе
		фр.Password=ПолучитьИдПользователя();
	КонецЕсли;
	
	Если фр.ECRMode<>8 Тогда // чек не открыт
		Возврат Истина;
	КонецЕсли;
	
	Если рЗакрытиеАдминистратора Тогда
		рез=фр.SysAdminCancelCheck();
	Иначе
		рез=фр.CancelCheck();
	КонецЕсли;	
	Если рез<>0 Тогда
		Сообщить("АннулироватьЧек, ошибка отмены чека: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат Ложь;
	КонецЕсли;
	
	Сообщить("АннулироватьЧек, чек успешно аннулирован.");	
	Возврат Истина;
Исключение
	Сообщить("АннулироватьЧек, ошибка: "+ОписаниеОшибки(),СтатусСообщения.Важное);
	Возврат Ложь;
КонецПопытки;
КонецФункции

Я не стал реализовывать множество других команд, вроде "ПродолжитьПечать" или "ОтрезатьЧек", т.к. принцип, думаю, ясен, и сделать их самостоятельно не проблема. Кстати, "ПродолжитьПечать" (ContinuePrint) бывает архиполезна, если посередине печати чека, пока он открыт, случилась ошибка, а аннулирование чека (в т.ч. под админом) не прокатывает.

Примечания

Некоторые советы сверх комментариев в коде.

1. Если Вам непонятно, что делается со свойствами в момент выполнения некоей команды, вызываемой из тестовой утилиты, включите ведение лога ("Настройка свойств" - "Дополнит.параметры" - "Лог") в свой файл, и внимательно прочитайте, что запишется при вызове команды. Так можно доподлинно узнать, "чего ему надо". Учтите, что программные вызовы драйвера (из вашей 1С) в лог не пишутся, только действия из интерфейса утилиты.

2. Большинство кнопок и некоторые поля в интерфейсе утилиты снабжено всплывающими подсказками, которые отображают имя команды API. Это удобно, чтобы понять, а что же скрывается за той или иной кнопкой, не нажимая её, безо всякого лога.

3. Если некая операция не удаётся программно, приходится использовать команды из интерфейса утилиты. Автоустановка ключей в какой-нибудь сложной ситуации с хитрым сочетанием факторов, предусмотренная разработчиками и не учтённая вами, поможет быстро выйти из тупика.

4. Используйте только латинские варианты свойств и методов. Русскоязычные - себе на уме.

5. Некоторые сообщения не то, чем кажутся. Например, ошибка несоответствия суммы подытога напрямую указанной сумме чека может выглядеть как отсутствие бумаги - и по коду, и по тексту ошибки, и по состоянию, в котором окажется ФР.

6. Если смена закрыта, то действия по чекам её открывают автоматически.

7. В зависимости от совокупности факторов (кэширование 1С, кэширование ОС) период жизни соединения колеблется, поэтому иногда приходится вызывать установку связи перед каждым полезным действием, а иногда и так прокатывает. Но, при этом, см. пункт 8.

8. Драйвер не понимает более 1 активного соединения, и неважно, это ваш COMОбъект или его родная утилита. Утилиту можно открыть "на посмотреть", но она вряд ли установит связь, пока существует соединение (ваша переменная в памяти 1С), и наоборот. Соединение в таких случаях не устанавливается, а наиболее характерная ошибка - таймаут. Не ставьте большой таймаут - всё равно не додумается. Чтобы запустить что-то, вам понадобится закрыть (выгрузить из памяти) что-то другое. В ряде случаев - ещё и выключить/включить сам ФР.

9. Методы и поля, представленные в интерфейсе утилиты, не жёсткая данность. Например, CheckSubTotal всегда вносит сумму в поле "summ1", но она может быть насильно перебита на другой тип оплаты. Учтите, "защита от дурака" у интерфейса утилиты понадёжнее, чем у методов API.

10. Не ленитесь прокручивать таблицы ФР при просмотре. Верхние строки могут быть пусты, а где-то внизу, строке на тридцатой, может поджидать интересный сюрприз.

Разумеется, весь этот примитивный код малополезен без инфраструктуры более высокого уровня - справочников, хранящих сведения об ФР и прочих кодах, документов вроде Кассовой смены, Чека ККМ итд. Но сие уж слишком зависит от конкретики, а опубликованное - оно общее.

Недостатки

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

1. Не допускается наличие в составе одного чека товаров с разными ставками НДС. Кому будет надо - это можно довольно легко доработать, но уже с упором на более высокоуровневые конструкции (табчасти документов, механику расчёта НДС итд).

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

3. Не раскрыты возможности оформления чеков и печати штрихкодов. Ну, тут уж мануал в руки и запасную катушку ленты в аппарат)

4. Проверка проводилась только на 3 модификациях ФР Штрих-М, и я не очень уверен, что на чём-то заковыристом абсолютно всё будет аналогично.

При небольшом допиливании или вовсе без него, должно работать и на 8.1, также уже гонял этот код с небольшими доработками под УФ на УТ 11.3 (заказчик не возжелал обновляться на типовую, ибо конфа весьма покуроченная).

Планирую докопаться до ФР АТОЛ, но у них с драйверами и их программными интерфейсами несколько больший разнобой, так что это пока наполеоновские планы.

Приглашаю всех к обсуждению. Если где накосячил, жду тухлых помидоров)

24

Скачать файлы

Наименование Файл Версия Размер
Руководство пользователя
.pdf 1,74Mb
01.05.17
7
.pdf 1,74Mb 7 Скачать
Руководство программиста
.pdf 8,88Mb
01.05.17
16
.pdf 8,88Mb 16 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Rik30 13 02.05.17 09:55 Сейчас в теме
Вопрос, а как реализован механизм отправки электронного чека в виде СМС и письма на эл.почту?
Клиент вправе потребовать - электронный чек, помимо бумажного
Liris; 1Concept; +2 Ответить
2. Yashazz 2852 02.05.17 12:52 Сейчас в теме
(1) В руководстве программиста на эту тему есть целый блок, но я его пока не курил. Авось позже доберусь.
3. Rik30 13 02.05.17 16:42 Сейчас в теме
как хоть называется? А то 308 листов мне тоже курить как то не хочется.
4. Yashazz 2852 02.05.17 16:57 Сейчас в теме
(3) Опаньки, а нету... Где ж я видел-то... Ну, значит, в любом случае можно реализовать самостоятельно - почту через штатную 1С, а sms через любой подходящий сервис. Вопрос в чём - как Вы, к примеру, через sms передадите чек? Что там будет в этой sms?
5. Rik30 13 02.05.17 21:07 Сейчас в теме
Сервисы то есть штатные...СМС отправить не проблема...Но это должен делать ОФД, иначе как клиент поймёт,что это официальный чек. А как ОФД поймёт что нужно электронный чек клиенту отправить????
6. Yashazz 2852 02.05.17 22:51 Сейчас в теме
8. smurf2315 03.05.17 08:45 Сейчас в теме
(5)
В реквизитах чека есть почта покупателя, если она заполнена то ОФД следовательно надо отсылать письмо
В письме не сам чек а ссылка на чек в ОФД
7. e.kogan 1849 02.05.17 23:01 Сейчас в теме
Руководство пользователя и программиста - Штрих-Мовские? Тогда лучше бы ссылками на скачивание на оф.сайте.
9. hibico 253 04.05.17 11:39 Сейчас в теме
То есть, с Онлайн Штрихами работают старые методы?
Из новых у Вас используется только "состояние смены".
И грубо говоря, в старые обработки после открытия чека нужно только добавить ввод телефона, почты?
Типа:
//Отправка данных о покупателе 
            Driver.CustomerEmail = Телефон;  //В качестве параметра можно передавать или телефон (+7хххххххххх) или e-mail: test@test.com  
            Driver.FNSendCustomerEmail();
10. Yashazz 2852 04.05.17 12:34 Сейчас в теме
Ну типа да, наверное. А собственно, кроме оплаты связи и работы с ФН, что уж такого принципиально нового?
11. hibico 253 04.05.17 13:20 Сейчас в теме
Самому проверить пока на чем.
Очень смущает куча новых методов с префиксом "FN" без какого-то описания в документации.
Например, если есть "OpenSession", тогда зачем и что значат "FNBeginOpenSession" и "FNOpenSession".
12. Yashazz 2852 05.05.17 12:58 Сейчас в теме
Замечу, что я нарочно использовал старые добрые методы, а не всякие там шаблоны. Действует топорно, зато надёжно. И можно совершенно не зависеть от конфы)

(11) Думаю, это сессии отправки данных и работы именно ФН, а не кассовые смены.
13. Tatitutu 3816 05.05.17 17:38 Сейчас в теме
"Согласно 54-ФЗ при расчётах продавец обязан выдать кассовый чек покупателю на бумажном носителе или в электронном виде по sms или e-mail (если есть техническая возможность).

ООО «Такском», выступая в роли оператора фискальных данных, автоматически отправляет электронные чеки в электронном виде по sms или e-mail, если они содержат адрес получателя.

Обратите внимание: Согласно 63-ФЗ «О связи» от покупателя необходимо получить письменное согласие или заявление на получение sms-рассылки до момента расчёта."
14. tjurikov_ivan 188 09.05.17 11:50 Сейчас в теме
Думаю в крупных магазинах никто не будет заморачиваться с вводом при оплате почты или телефона, еще и согласие печатать и подписывать. Скачал приложение проверка чека в ФНС, отсканил QR-код, нажал получить чек, ввел данные и все. Кому надо тот пускай сам его и получает.
15. hibico 253 12.05.17 13:47 Сейчас в теме
Подскажите пожалуйста, у кого есть Штриховские онлайн кассы.
Каким "типом устройства" драйвер определяет онлайн кассы?
Можно посмотреть в "Тест драйвера" - "Состояние" -> "Параметры устройства".
Перерыл все доки, нигде нет. Есть предположение, что по аналогии тип устройства должен быть "7", но нужно точно.
16. Alex 98 20.05.17 22:23 Сейчас в теме
Из всего найденного это самый простой и результативный подход.. Так что спасибо автору. И вопрос.. Попытался сделать скидку на чек.. ругается, не хочет. Вы пробовали скидки?
17. Yashazz 2852 24.05.17 23:36 Сейчас в теме
(16) Пробовал, построчные и в целом на чек. Печатает. А что у Вас ругается?
18. Alex 98 25.05.17 13:27 Сейчас в теме
Команды по скидкам не отрабатываются. Ни построчно, ни на чек в целом. Но, возможно, это из-за прошивки. На одной кассе вообще не работала, пока апрельскую прошивку не поставили.
19. atdonya 31.05.17 09:06 Сейчас в теме
(18) Возможно дело в драйвере ККТ. У меня, например, в версии 4.13 ругался на вывод денег из кассы (что-то о недопустимой длине наименования), поставил 4.12 - все заработало нормально
21. Alex 98 09.06.17 17:53 Сейчас в теме
(19)Самое прикольное, что при одинаковом драйвере на win 7 скидки работают, а на win 10 нет.. Веселуха !
20. ah7777777 399 02.06.17 07:42 Сейчас в теме
Хорошая статья! Я через это прошел лет 10 назад, правда на Дельфи и вот что выродил к 54ФЗ
http://infostart.ru/public/609030/
24. Yashazz 2852 23.06.17 18:50 Сейчас в теме
(20) Мы практически совпали в подходе. Я сделал независимое от мудрёностей БСП и типовых конфигов, а ты сделал вообще не на 1С (кстати, была такая мысль тоже). И что 1С любит усложнять, соглашусь.

Вообще что хочу сказать: читайте мануал юзера и программиста от Штрих-М, юзайте утилиту проверки драйвера, и будет щастье. Там всё просто.
22. Alex 98 21.06.17 21:27 Сейчас в теме
В чеке выходит система налогообложения ЕНВД.. как ее поменять? Перерыл все.. тупик.. В стандартных 1с-овских программах она меняется.. а как это сделать командно не могу найти.. может кто подскажет.
23. Yashazz 2852 23.06.17 18:46 Сейчас в теме
(22) Могу рассказать только "от корней". Запустите проверку драйвера Штрих-М, т.е. его встроенную утилиту (аппарат должен быть включён и доступен на связи), нажмите "Таблицы" и посмотрите, что у Вас в таблице "Налоговые ставки". Если там есть такая строка вроде "ЕНВД", то смотрите, какой номер секции передаёт 1С драйверу и откуда ноги растут у этого номера секции. Если такой строки нет - сообщите, где (в каком месте) проявляется, что это ЕНВД. Где это на чеке итд.
25. nike-arz 24.06.17 09:49 Сейчас в теме
(22) ситема налогооблажения меняется в 18 таблице
Объект.Пароль = Пароль;
	Объект.TableNumber = 18;
	Объект.RowNumber = 1;
	Объект.FieldNumber = 5;
	Объект.ValueofFieldInteger = ПараметрыККТ.КодНалогооблажения;
	Объект.GetFieldStruct();
	Объект.WriteTable();
	Если Объект.Результат <> 0 Тогда
		Результат = Объект.ОписаниеРезультата;
		Возврат Результат;
	КонецЕсли;
Показать
26. Alex 98 24.06.17 19:47 Сейчас в теме
27. autosvg 25.06.17 07:09 Сейчас в теме
(25)
В этой таблице хранится система налогообложения, с которой касса регистрировалась. Там может стоять например "10" это ЕНВД + УСН Доход.
(22)
Чтобы пробить чек с определенной СНО нужно чек формировать командами FNOperation, закрывать командой FNCloseCheckEx предварительно указав TaxType
ФР.CheckType = 0; //приход, продажа
ФР.StringForPrinting	=  Товар;
ФР.Price		= Цена;
ФР.Quantity	= Количество;
ФР.Tax1 = 4;  
ФР.FNOperation();

ФР.CustomerEmail = АбАдрес;  //В качестве параметра можно передавать или телефон (+7хххххххххх) или e-mail: test@test.com  
ФР.FNSendCustomerEmail();

ФР.Tax1=4;

ФР.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД

ФР.Summ1 = ОплатаНалом;
ФР.Summ4 = ОплатаКартой;
ФР.FNCloseCheckEx();

Показать
28. Yashazz 2852 27.06.17 16:24 Сейчас в теме
НалогооблАжение от слова Лажа? )))
По сути да, верно. И это описано в руководстве)
29. user648052_it 06.07.17 14:45 Сейчас в теме
Подскажите пожалуйста, для операции FNOperation в каких реквизитах указывать такие поля как "Сумма по чеку постоплатой (кредит)" и "Сумма по чеку наличными" ? И еще в этой же операции есть реквизит Summ1, что в него необходимо записывать при частичных оплатах на опте?
30. sssss_aaaaa_2011 06.07.17 15:37 Сейчас в теме
Какая может быть сумма по ЧЕКУ в ТОВАРНОЙ строке? Какие еще виды платы в ТОВАРНОЙ строке?
31. user648052_it 06.07.17 15:59 Сейчас в теме
На форуме ФНС есть примеры реализаций для оптовиков, так вот там в Части 3 есть пример с предоплатой и постоплатой (отсрочкой оплаты с частичными погашениями). Исходя из этих примеров оптовик при первой отгрузке клиенту печатает чек с указанием для каждой товарной позиции признака способа расчета "Передача в кредит", далее когда клиент приносит часть оплаты за отгрузку, оптовик печатает чек с выборочными позициями, в котором напротив каждой погашаемой позиции указывается признак способа расчета "Оплата кредита", а в подвале чека помимо графы "Сумма чека наличными" печатается графа "Сумма по чеку постоплатой (кредит)" в которой указывается сумма долга по отгрузке. Так вот вопрос: как это реализовать в рамках операции FNOperation ? Берем документацию от 18.05.2017 Драйвера ККТ 4.13 и видим в разделе для операции FNoperation, указывается реквизит Summ1, когда пытаюсь в Summ1 указать сумму по каждой позиции то при вызове FNCloseCheckEx выдается ошибка что сумма всех оплат меньше итога. Но я же указываю признак "Передача в кредит", в чем ошибка?
32. sssss_aaaaa_2011 06.07.17 16:18 Сейчас в теме
(31) В том, что пример на форуме ФНС не имеет ничего общего с реальной жизнью драйвера от Штрих.
37. user648052_it 06.07.17 17:25 Сейчас в теме
(32)
том, что пример на форуме ФНС не имеет ничего общего с реальной жизнью драйвера от Штрих.


т.е. начиная с 1 июля все оптовики обязаны прекратить принимать оплаты наличкой и ждать погоды с моря ?
39. sssss_aaaaa_2011 06.07.17 17:47 Сейчас в теме
(37)
т.е. начиная с 1 июля все оптовики обязаны прекратить принимать оплаты наличкой и ждать погоды с моря ?
Что за чушь? И что мешает работать с наличкой на ФФД 1.0? При чем тут признаки типа оплаты на каждой товарной строке и т.д.?
41. user648052_it 06.07.17 17:59 Сейчас в теме
(39)
Что за чушь? И что мешает работать с наличкой на ФФД 1.0? При чем тут признаки типа оплаты на каждой товарной строке и т.д.?


По закону можно проводить чеки если оплата полная, т.е. сумма отгрузки равна сумме внесенной наличности (ну или больше, со сдачей). Если же приходит часть суммы наличкой, то как аванс мы ее проводить не можем, т.к. по сути авансом это не является, и предоплата на ФФД 1.0 не работает...какие еще варианты?
nike-arz; +1 Ответить
33. sssss_aaaaa_2011 06.07.17 16:22 Сейчас в теме
(31)
Но я же указываю признак "Передача в кредит",
Кстати, где и как указываете?
35. user648052_it 06.07.17 17:21 Сейчас в теме
(33)
Кстати, где и как указываете?


FR.PaymentTypeSign = 6; // 7 - Оплата Кредита
51. sssss_aaaaa_2011 07.07.17 16:56 Сейчас в теме
(35)
FR.PaymentTypeSign = 6; // 7 - Оплата Кредита
И где сие описано? Или методом научного тыка?
53. user648052_it 07.07.17 18:19 Сейчас в теме
(51)

это написано в Части3 примеров выложенных ФНС на официальном форуме
ссылка: https://forum.nalog.ru/index.php?showtopic=782331
55. sssss_aaaaa_2011 07.07.17 19:59 Сейчас в теме
(53) 1. Вы отдаете себе отчет, что это только проект и он может еще 100500 раз поменяться?
2. Похоже, дают его тоьлко избранным, в число которых я не вхожу. Еще один повод не закладываться на него.
56. user648052_it 07.07.17 20:23 Сейчас в теме
(55)

К сожалению я долго искал ответ на вопрос как проводить частичные продажи, чтобы они соответствовали 54-ФЗ, т.е. в чеках были полные наименования товаров и прочее, но не нашел ответа даже у самих налоговиков, и единственное что осталось это реализовать ФФД 1.05
34. nike-arz 06.07.17 16:43 Сейчас в теме
Совершенно верно. Ошибка будет. Первое: данные действия должны происходить только при использовании ФФД 1.05 или 1.1 На данный момент все используют ФФД 1.0. Второе недостающую сумму, которую вы указывали как предоплату или аванс надо заносить в 15 или 16 (точно не помню) операционный регистр. Но при любых действиях сумма товара и сумма оплат должна совпадать.
36. user648052_it 06.07.17 17:23 Сейчас в теме
(34)
Совершенно верно. Ошибка будет. Первое: данные действия должны происходить только при использовании ФФД 1.05 или 1.1 На данный момент все используют ФФД 1.0. Второе недостающую сумму, которую вы указывали как предоплату или аванс надо заносить в 15 или 16 (точно не помню) операционный регистр. Но при любых действиях сумма товара и сумма оплат должна совпадать.


Фискальный переведен в режим ФФД 1.05 через Таблицу 17. Можно поподробнее про операционные регистры, это в обход команды FNoperation ?
38. nike-arz 06.07.17 17:36 Сейчас в теме
Объект.Сумма1 = ?(ПараметрыККТ.ПолученоНал = 0,0,ПараметрыККТ.ПолученоНал); //Наличная оплата
	Объект.Сумма2 = 0; //Оплата платежной картой
	Объект.Сумма3 = 0; //Оплата платежной картой
	Объект.Сумма4 = ?(ПараметрыККТ.ПолученоБезНал = 0,0,ПараметрыККТ.ПолученоБезНал); //Оплата платежной картой
	Объект.Сумма5 = 0; //
	Объект.Сумма6 = 0; //
	Объект.Сумма7 = 0; //
	Объект.Сумма8 = 0; //
	Объект.Сумма9 = 0; //
	Объект.Сумма10 = 0; //
	Объект.Сумма11 = 0; //
	Объект.Сумма12 = 0; //
	Объект.Сумма13 = ?(ПараметрыККТ.СуммаДисконта = 0,0,ПараметрыККТ.СуммаДисконта); //Оплата дисконтом
	Объект.Сумма14 = 0;//
	Объект.Сумма15 = ?(ПараметрыККТ.Предоплата + ПараметрыККТ.СуммаСертификатов = 0,0,ПараметрыККТ.Предоплата + ПараметрыККТ.СуммаСертификатов);//Оплата предоплатой и сертификатом
	Объект.Сумма16 = 0;//последующая Оплата кредитом
Показать


К сожалению использую ФФД 1.0 и более подробно рассказать не могу.
user648052_it; +1 Ответить
45. user648052_it 07.07.17 13:24 Сейчас в теме
(38)

Попробовал передать сумму постоплаты через поле Сумма16, в офд пришел чек, а в подвале сумма указана "Сумма по чеку встречным представлением", попробовал потом через поле Сумма15 - чек вообще не пробивается, ругается на сумму безналичной оплаты...где передавать сумму постоплаты?
46. sssss_aaaaa_2011 07.07.17 14:28 Сейчас в теме
(45) Может таки дождаться готовности ВСЕХ участников процесса к работе с ФФД 1.05 и не бежать впереди паровоза?
48. user648052_it 07.07.17 14:48 Сейчас в теме
(46)

Уже разобрался с Суммой15, а насчет дождаться - не получается, частичные платежи массово идут, а в ФФД 1.0 я не нашел способа их проведения
49. nike-arz 07.07.17 14:51 Сейчас в теме
(48)Как со всем разберешься. Опиши опыт в теме. Думаю всем будет интересно.
50. sssss_aaaaa_2011 07.07.17 16:53 Сейчас в теме
(48)
Уже разобрался с Суммой15
И что там было?
52. user648052_it 07.07.17 18:18 Сейчас в теме
(50)

Не аннулировал предыдущие неудачные попытки продаж
40. nike-arz 06.07.17 17:53 Сейчас в теме
На ФФД 1.0 признаки способа расчета не работают. Данные теги не передаются в ОФД и так далее в ФНС. Поэтому на ФФД 1.0 авансовые платежи не учитываются.
42. user648052_it 06.07.17 18:05 Сейчас в теме
(40)
На ФФД 1.0 признаки способа расчета не работают. Данные теги не передаются в ОФД и так далее в ФНС. Поэтому на ФФД 1.0 авансовые платежи не учитываются.


насколько актуальная данная информация? ОФД не принимаю все или все такие какие то принимают?
43. nike-arz 07.07.17 08:33 Сейчас в теме
(42) Все зависит на каком ФФД работает ваш Фискальный накопитель. Насколько мне известно ФН для 1.05 начали изготавливать совсем недавно. У меня 7 касс и на всех стоят ФН с ФФД 1.0
44. user648052_it 07.07.17 08:58 Сейчас в теме
(43) В таблице 17 в графе 17 стоит 2, что согласно вот этому описанию https://forum.shtrih-m-partners.ru/index.php?topic=32170.0 означает ФФД 1.05
47. sssss_aaaaa_2011 07.07.17 14:31 Сейчас в теме
(44) Это означает настройку кассы работать с этим форматом. ФН - не касса и его работа этой настройкой не регулируется. ФН, как уже было указано, пока все работают только с ФФД-1.0
54. user648052_it 07.07.17 18:30 Сейчас в теме
Выкладываю итоговый результат работы:

чтобы пробить частичную оплату необходимо сначала в ФнОперация передать 6 в качестве признака способа расчета и вызвать ВыпуститьЧекНомер1 передав ему сумму всей накладной, далее при каждом платеже вызывать ФнОперация с указанием 7 в качестве признака способа расчета и ВыпуститьЧек с суммой которую вносит покупатель.
Вроде все согласно метод рекомендациямот фнс, если что-то напутал, поправьте
//**************************************************************************************************
Процедура ФнОперация(ТипЧека,Цена,Количество,Налог,Сумма, ПризнакСпособаРасчета, ПризнакПредметаРасчета, Наименование)
	FR2.CheckType = ТипЧека;
	FR2.Price = Цена;
	FR2.Quantity = Количество;
	FR2.Tax1 = Налог;
	FR2.Department = 1;
	FR2.Summ1 = Сумма;
	FR2.PaymentTypeSign = ПризнакСпособаРасчета;
	FR2.PaymentItemSign = ПризнакПредметаРасчета;
	FR2.StringForPrinting = Наименование;  
	FR2.FNOperation();  
КонецПроцедуры        

//**************************************************************************************************
Процедура ВыпуститьЧекНомер1(Сумма)
	FR2.Summ15 = Сумма;
	FR2.StringForPrinting = " ";
	FR2.FNCloseCheckEx();
КонецПроцедуры    

//**************************************************************************************************
Процедура ВыпуститьЧек(Сумма)
	FR2.Summ1 = Сумма;   
	FR2.StringForPrinting = " ";
	FR2.FNCloseCheckEx();
КонецПроцедуры
Показать
66. Serge_ASB 26.09.18 13:56 Сейчас в теме
(54)
А если мне нужно просто заполнить PaymentTypeSign и PaymentItemSign, нужно ли обязательно заполнять все остальные поля, поскольку они выводятся Командой "Продажа"?
Для чего, вообще, предназначена команда ФНОперация?
57. zels 169 14.07.17 09:45 Сейчас в теме
Кто знает, как настроить ШТРИХ-М 01Ф, чтобы НДС печатался в каждой строке товара? В таблице 1 задавал Исчисление, Печать налогов
0,1 - только итог
1,1 - ошибка 35h
0,2 - только итог
1,2 - ошибка 35h
58. sssss_aaaaa_2011 14.07.17 10:29 Сейчас в теме
(57) Внимательно смотрим таблицу 17
59. zels 169 14.07.17 11:06 Сейчас в теме
(58) Региональные настройки?
60. zels 169 14.07.17 11:48 Сейчас в теме
(58) СПАСИБО огромное. В таблице 17 в строке "печать налога в операции" надо поставить 1.
61. gragden 54 30.01.18 15:26 Сейчас в теме
Яков, прошу прощения, я случайно минус поставил, отличная статья
62. rougudz 19.06.18 18:09 Сейчас в теме
Хелп кто писал самоитоятельно, сие касается авансов т.е. расчета подарочными сертификатами, пришлось при закрытии чека метод CloseCheck() заменить на FNCloseCheckEx()

выглядит теперь сие вот так:
FR.Пароль=30;
	FR.Summ1 = ВнесеноНаличных; 
	FR.Summ2 = 0;
	FR.Summ3 = 0;
	FR.Summ4 = ВнесеноПоПластиковойКарте;
	FR.Summ14 = СуммаПредварителнойОплаты; // аванс (расчет подорочным сертификатом)
	//FR.Summ15 = 0; // кредит
	FR.DiscountOnCheck=0; // скидка на чек
	FR.PrintString();
	//FR.CloseCheck();
	FR.FNCloseCheckEx();
Показать


но в налоговую теперь все стало уходить как оплата по предоплате, т.е. как будто в Summ14 я передаю всю сумму оплаты. хотя там ноль, а вся сумма в Summ4 или Summ1.
ни кто не сталкивался с такой проблемой?
63. Iriha_ko 04.07.18 16:27 Сейчас в теме
с 01 июля обязательные реквизиты ИНН покупателя и ИНН кассира. Кто-нибудь вносил их в чек? Какой командой или реквизитом это делается?
64. Yashazz 2852 04.07.18 23:55 Сейчас в теме
(63) Если API ещё не допилили, то, думаю, просто как вывод произвольной строки на чек. Хоть в шапку или подвал засунуть)
65. Serge_ASB 24.09.18 17:11 Сейчас в теме
(63)
ИНН Кассира передается тегом 1203.
Передача тега - после открытия чека
Примерно так:
Прль = ФР.Пароль;
ФР.Пароль = 30;  
ФР.НомерТега = 1203;    //TagNumber
ФР.ТипТега = 7;            //TagType
ФР.ЗначениеТегаСтрока = СокрЛП(ИННКассира);  //TagValueStr    
ФР.FNSendTag(); // отправка тега
ФР.СтрокаДляПечати = "";
ФР.Пароль = Прль;
Показать

ИНН Кассира - как вариант - реквизит справочника Сотрудники (коим кассир является)

А вот ИНН покупателя - он откуда возьмется, при розничной продаже?
67. Seeker 18.10.18 13:08 Сейчас в теме
(63)
С чего вы решили что ИНН Кассира обязательное поле?
согласно вот этому документу https://its.1c.ru/db/kkt#content:104:hdoc ИНН кассира (тег 1203) не обязательно или как пишет 1С "может присутствовать".
68. VSY666 4 11.12.18 17:49 Сейчас в теме
Подскажите почему ручной расчет налогов не работает, нам нужно ндс по 18/118 пробить и сумма ндс берется только с разницы сделки
например: сумма 100 р. , ндс 5 р. т.к. ставка ндс 18/118

написал код, и не могу понять почему фискальник ругается на некорректные данные


Рез=неопределено;
	
	Если фр.ECRMode<>2 и фр.ECRMode<>3 и фр.ECRMode<>4 и фр.ECRMode<>8 Тогда // смена уже закрыта, или другой режим
		Возврат 
	КонецЕсли;
	
	//фр.CheckType=рПараметры.РежимЧека; // «0» - продажа, «1» - покупка, «2» - возврат продажи, «3» - возврат покупки.
	КодОшибкиОборудования=фр.ResultCode;
	//	Возврат Ложь;
	//КонецЕсли;	
	
	//фр.StringForPrinting="=========================================­===";
	фр.UseReceiptRibbon=Истина;
	фр.UseJournalRibbon=Ложь;
	
	//фр.PrintString();
	
	фр.Quantity=Количество;
	фр.Price=Цена;
	фр.Department=Отдел;
	фр.Tax1=НомерНалога;
	фр.Tax2=0;
	фр.Tax3=0;
	фр.Tax4=0;
	фр.StringForPrinting=СокрЛП(Наименование);
	ФР.ЗначениеНалога1Вкл = РучнойРасчетНалогов;
	
	Если НомерНалога = 5 Тогда //если это группа 5 т.е 18/118 ндс
		фр.summ1 = Товар.Сумма; 
		фр.Summ1Enabled = 1; 
		//Если Summ1Enabled имеет значение "ложь", то сумма операции рассчитывается кассой как
		//цена* количество, в противном случае сумма операции берётся из значения Summ1 и не должна
		//отличаться более чем на +-1 коп от рассчитанной кассой
		фр.TaxValue1  = Товар.СуммаНалога1;
		ФР.ЗначениеНалога1Вкл = 1;
		фр.Summ14  = Товар.Сумма;
		фр.ИтогЧека = Товар.Сумма;
	КонецЕсли;	
	
	//Работает в режимах 2 (проверка на окончание 24 часов производится запросом из ФП до
	//выполнения операции), 4, 7, 8 (если статус 8-го режима ККМ=0) и 9	
	Если фр.CheckType=0 Тогда
		рез=фр.Sale(); // продажа
	ИначеЕсли фр.CheckType=1 Тогда
		рез=фр.Buy(); // покупка
	ИначеЕсли фр.CheckType=2 Тогда
		рез=фр.ReturnSale(); // возврат продажи
	ИначеЕсли фр.CheckType=3 Тогда
		рез=фр.ReturnBuy(); // возврат покупки
	КонецЕсли;	
	
	
	ФР.ПризнакПредметаРасчета = ПризнакПредметаРасчета;
	ФР.ПризнакСпособаРасчета = ПризнакСпособаРасчета;
	
	
	Если рез<>0 Тогда
		Сообщить("НапечататьЧек, ошибка оформления записи продажи для "+СокрЛП(Наименование)+": "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат 
	КонецЕсли;		
	
	
	
	рез=фр.CheckSubTotal();
	Если рез<>0 Тогда
		Сообщить("НапечататьЧек, ошибка получения подытога чека: "+фр.ResultCodeDescription);
		рКодОшибки=фр.ResultCode;
		Возврат
	КонецЕсли;	
	
	фр.DiscountOnCheck=0; // в данной версии считается, что скидка уже заложена в изменённых ценах
Показать
69. Yashazz 2852 12.12.18 13:18 Сейчас в теме
А в какой момент он ругается-то, на каком операторе? На CheckSubTotal?
70. VSY666 4 13.12.18 07:24 Сейчас в теме
(69) вот в этот момент выдает что передаются неверные параметры и возвращает ошибку рез=фр.Sale(); // продажа
71. VSY666 4 13.12.18 07:30 Сейчас в теме
(69) почитал на разных источниках не нашел что именно передавать при ручном расчете налогов, а ведь нужно очень при ставке 18/118 передавать наш расчитанный НДС который естественно меньше от общей суммы
вот тут почитал https://forum.infostart.ru/forum81/topic176078/ пишут что атол без проблем принимает ставку, а у штриха это вроде как не работает. Но ведь сам то параметр есть включения и отключения ручного расчета налогов
72. Raideres 2 15.02.19 16:53 Сейчас в теме
КАК ПЕРЕДАТЬ В Z ОТЧЕТ ФАМИЛИЮ КАССИРА
73. atdonya 15.05.19 17:02 Сейчас в теме
(72)
КАССИРА

Насколько я понял, никак - отчеты печатаются только от администратора
74. Yashazz 2852 02.08.19 15:04 Сейчас в теме
(72) Однозначно никак. Действительно, только от админа всё. Ну разве что можно в утилите в рабочих таблицах менять строковое представление, кто есть админ, т.е. обладатель кодов 29 и 30. Это и программно можно сделать.
75. foliage 06.08.19 09:59 Сейчас в теме
Использую AddCashIn.Context, функцию РегистрацияПродажи (Документация к штриховскому Кассиру 5)
Кассовый аппарат Штрих RR-01

Функция РегистрцияПродажи( Знач БлокСтрок, Знач СтрокаККМ, Знач Сумма_дрб, Знач Количество_дрб, Знач Секция_инт, Знач Налоги, КодОшибки_инт = 0, Знач Регистрация_Форма = Null, Знач ДопПараметры=Null) Экспорт

Что такое ДопПараметры и для чего их можно использовать?
Задача - передавать в ОФД дополнительные данные, которые должны отображаться в чеке ОФД.

"Доппараметры" подойдут?
76. newtandy 03.10.19 13:20 Сейчас в теме
Добрый день!
Ни как не могу разобраться с отправкой в кассовый аппарат ШТРИХ-М-02Ф тега 1229 (сумма акциза)
Использую драйвер 4.14.0.772

Судя по документации штриха тег 1229 имеет тип 3 (Тип VLN). Для тегов этого типа необходимо использовать поле TagValueBin (тип строка ) для передачи суммы акциза.

ККМ.Password = ПарольКассира ;
ККМ.TagNumber = 1229 ;
ККМ.TagType = 3 ;
ККМ.TagValueBin = ЗначениеТега ;
ККМ.TagValueLength = 6 ;
ККМ.FNSendTagOperation() ;

и вот возникает вопрос что должно быть в переменной ЗначениеТега.

Попробовал отправлять этот тег через программу "Тест драйвера".
Судя по всему в значение тега в этой программе необходимо указывать строку без разделителей дробной части - для 45.00 - указываем "4500" - из теста драйвера в чек в этом случае попадет 45.00
В логе теста драйвера прописывается следующая информация:

[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagNumber
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagNumber: 1229
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagType
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagType: 3
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagValueBin
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagValueBin: ь
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagValueLength
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR Set_TagValueLength: 6
[03.10.2019 10:19:12.369] [00008328] [DEBUG] TDrvFR FNSendTagOperation

Нужна помощь - какая информация должна быть передана в переменной ЗначениеТега, для корректной установки суммы акциза
77. Yashazz 2852 04.10.19 01:34 Сейчас в теме
(76) Сам сейчас занимаюсь этим же вопросом, только для 1227 и 1228; смогу сообщить что-то внятное - отпишусь.
78. newtandy 04.10.19 09:29 Сейчас в теме
(77)теги 1227 и 1228 имеют тип строка - для них все просто
ККМ.Password = ПарольКассира ;
ККМ.TagNumber = 1227 ;
ККМ.TagType = 7 ;
ККМ.TagValueStr= "НАИМЕНОВАНИЕ_ ПОКУПАТЕЛЯ";
ККМ.FNSendTag()   ; 


причем эти теги привязаны к чеку а не к операции в чеке - поэтому ККМ.FNSendTag()
79. newtandy 04.10.19 13:27 Сейчас в теме
(76)После отправки запроса на суппорт штриха решение нашлось:

"Да, есть ньюанс в драйвере. Попробуйте так:

Driver.TagNumber = 1229;
Driver.TagType = 3;
Driver.TagValueLength = 6;
Driver.TagValueVLN = "4500";
Driver.FNSendTagOperation();

Т.е. вместо TagValueBin используем TagValueVLN."
Оставьте свое сообщение

См. также

Печать покупателя в чеке ККМ с 01.07.2019 25

Отчеты и формы Программист Бухгалтер Пользователь Расширение (cfe) v8 ERP2 БУ Кассовые операции Абонемент ($m) ККМ Печатные формы документов

C 01.07.2019 если организация/ИП покупает у другой организации/ИП товары, работы или услуги, то в Чеке ККМ требуется указать: Покупателя (тег 1227) и ИНН (тег 1228). Если чек отправляется в ОФД без этих данных, то будет штраф . Но в 1С ERP вывод данных полей не предусмотрен. Предлагаемое расширение устраняет данную проблему.

1 стартмани

17.07.2019    6874    15    sapervodichka    10       

Эмулятор ККМ по стандарту ФФД 1.1 21

Инструменты и обработки Программист Архив с данными v8 Розница УТ11 Россия Windows Кассовые операции Абонемент ($m) Разработка внешних компонент ККМ

Эмулятор драйвера ККМ по стандарту ФФД 1.1 предназначен для использования всех возможностей программы, при отсутствии физической кассы. Подойдет как программистам при разработке интерфейса РМК, например, так и пользователям для тестирования возможностей программы.

1 стартмани

30.12.2018    9002    81    Matveymc    19       

ККТ Атол: настраиваем работу по новому порядку. 54ФЗ, ФФД 1.05, НДС 20%. + Работа ККТ по сети или как работать c ККТ из терминального сервера RDP + Работа в LINUX 22

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

Настройка ККТ АТОЛ для работы по сети. Обработка обслуживания ККТ для конфигураций на обычных формах. Тестировал на УПП 1.3.106.2, УТ10.3.47.3. Платформа 8.3.10.2753

1 стартмани

14.12.2018    30326    49    Johny_v    42       

АТОЛ ВЕБ-СЕРВИС. Обработка для работы с ККТ 54 ФЗ + ИЗМЕНЕНИЯ С 01.07.2019 36

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v8 КА1 УТ10 УПП1 БГУ БАУ 1С:CRM Россия Windows Кассовые операции Абонемент ($m) ККМ

Хотите ускорить печать чеков, или печатать с разных рабочих мест на один фискальный регистратор? В этом вам поможет, настроенный веб-сервис от фирмы АТОЛ, а данная разработка позволит интегрировать его с вашей программой 1С.

4 стартмани

03.12.2018    18951    150    karpik666    168       

Подключение онлайн касс (ФЗ-54) к старой 1С конфигурации УТ 10.2. Описание и реализация проекта 11

Статья Программист Конфигурация (md, cf) v8 Розничная и сетевая торговля (FMCG) Россия Windows Кассовые операции Розничная торговля Абонемент ($m) ККМ

Статья предназначена в первую очередь начинающим 1С программистам, а также будет полезна знакомым с ИТ-спецификой управленцам, пред которыми встанет вопрос об интеграции новой онлайн кассы, работающей по ФЗ-54 со старой информационной системой. В статье изложен ряд возможных подходов к решению задачи и показана реализация оптимального в данном случае варианта. Здесь нет готового тиражного решения, с одной стороны это пример реализации как иллюстрация к тексту, а с другой это рабочая программа для случая описанного ниже и если ваш случай похож, то решение с минимальными затратами может быть адаптировано. Также я слегка приоткрыл «фрилансерскую кухню».

1 стартмани

28.11.2018    5560    15    Petr54-ru    13       

Подключение нескольких касс к РМК (Розница 2.2). Расширение. Поддержка новой версии Розница 2.2.11 9

Инструменты и обработки Системный администратор Бухгалтер Пользователь Расширение (cfe) v8 Розница Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Кассовые операции Розничная торговля Абонемент ($m) ККМ Рабочее место

Работа с несколькими кассами в программе 1С:Розница 2.2, одновременное подключение ККТ с передачей данных, Фискального регистратора, Принтера чеков, Эмулятора и пр. Будет работать во всех версиях розницы с режимом совместимостью выше 8.3.10, изменения в конфигураций не требуется. Обязательное условие выключить безопасный режим в расширении.

10 стартмани

08.10.2018    4835    17    tigrandis    30       

Загрузка чека онлайн-касс (загрузка товаров из чека) 38

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v8 1cv8.cf Кассовые операции Розничная торговля Абонемент ($m) Внешние источники данных WEB

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) с сервера ФНС proverkacheka.nalog.ru

2 стартмани

08.10.2018    7123    23    echo77    32       

Загрузка табличной части документов "Ведомость в банк" или "Ведомость в кассу". ЗУП 3.1 из xls файла. 8

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::СПР ЗУП3.x БУ Банковские операции Зарплата Кассовые операции Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

Загрузка \ заполнение табличной части документов "Ведомость в банк" или "Ведомость в кассу" ЗУП 3.1 из xls файла. Для работы обработки Excel устанавливать не надо. Работает во всех клиентах и вариантах работы, клиент-серверном, файловом и web.

2 стартмани

14.09.2018    4866    58    kg2    15       

Быстрая настройка ККМ из 1С с использованием драйвера от Атол без тест-драйвера 8

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 Розница Windows Кассовые операции Абонемент ($m) ККМ

В нашей компании на кассовых местах подключено несколько ККМ от Атола. При подключении к штатным разъемам USB на материнской плате все работает без проблем. Проблемы в тех магазинах, где кассы подключаются через USB-Hub. Данная обработка позволяет быстро, без запуска "Тест-драйвера" и "Управление драйверами", настроить кассовое оборудование. Протестировано на 32-х битной версии 1С и конфигурации 1С:Розница 2.2 с версиями драйверов от Атол 8.16.1.8701 и 9.12.1.6236

1 стартмани

27.08.2018    10261    14    valerasv    7       

Продажа с двух касс ККМ в 1С:Розница 2.2. Выбор, по какой кассе пробить чек 12

Инструменты и обработки Бухгалтер Пользователь Архив с данными v8 Розница Кассовые операции Розничная торговля Абонемент ($m) ККМ

Данное расширение конфигурации позволяет выбрать из списка кассу (ККМ), по которой необходимо пробить чек.

3 стартмани

09.08.2018    6478    22    pogroleg    39       

Эмулятор эквайрингового терминала 17

Инструменты и обработки Программист Архив с данными v8 Розница Россия УУ Windows Кассовые операции Абонемент ($m) ККМ

Эмулятор эквайрингового терминала для тестирования взаимодействий с разрабатываемыми или типовыми решениями.

1 стартмани

26.07.2018    9737    105    trigor    15       

Доработанное РМК. Розница 2.2 10

Отчеты и формы Руководитель проекта Расширение (cfe) v8 Розница Россия Кассовые операции Розничная торговля Абонемент ($m) Рабочее место

Расширение для конфигурации Розница 2.2. В режиме РМК добавляет на форму кнопки "Создать заказ", "Создать новую дисконтную карту".

3 стартмани

26.06.2018    5347    9    rounder    0       

Атол ККТ:Онлайн 54ФЗ для 1С 8.1 УТ 10.3 (без изменения конфигурации) 11

Инструменты и обработки Системный администратор Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 Россия Кассовые операции Абонемент ($m) ККМ Фискальный регистратор

Обработка обслуживания драйвера "АТОЛ: Драйвер ККТ (54ФЗ) версия 8.16" для Управление торговлей 10.3 на платформе 1С:8.1. Не требует изменения конфигурации - подключение как "Фискальный регистратор".

4 стартмани

15.06.2018    31944    110    1st    61       

Пробитие чеков через ККМ в офисе (для курьеров) 12

Инструменты и обработки Пользователь Расширение (cfe) v8 v8::ОУ Розница УТ11 Россия БУ Кассовые операции Розничная торговля Абонемент ($m) ККМ Фискальный регистратор

Предлагается интеграция 1С с ККТ СтарРус. Поддерживается одновременная работа с разных рабочих мест. ККТ СтарРус работает как сервер, и принимает команды через API по http-протоколу, что позволяет пробивать чеки через центральную базу 1С для интернет-магазина и для курьеров.

1 стартмани

07.06.2018    17165    27    Kutuzov    12       

Печать на ККТ текстового документа из УТ 10.3 8

Инструменты и обработки Программист Архив с данными v8 v8::ОУ УТ10 Россия Кассовые операции Розничная торговля Абонемент ($m) ККМ

Показан способ печати нефискальных, произвольного текстового содержания документов на кассах-онлайн на примере 1С:Управление торговлей 10.3.

1 стартмани

25.05.2018    9266    21    ifal    0       

Выбор цены в РМК для УТ 11.3 и УТ 11.4 (расширение) 18

Отчеты и формы Бухгалтер Пользователь Расширение (cfe) v8 v8::ОУ УТ11 Россия УУ Кассовые операции Розничная торговля Абонемент ($m) Рабочее место

Расширение для УТ 11.3 и УТ 11.4, разрешает в рабочем месте кассира выбор вида цены или установку произвольной цены на каждую позицию.

1 стартмани

29.12.2017    19044    109    kassbar    76       

Загрузка ОФД (ofd.ru, ofd-ya.ru, taxcom.ru, platformaofd.ru, ofd.kontur.ru, online.sbis.ru, life-pay.ru, modulpos.ru, 1-ofd.ru, Экспресс касса, subtotal.ru, sberbank.ru/ofd, chekonline.ru, initpro.ru) 12

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 Россия БУ Кассовые операции Абонемент ($m) Внешние источники данных

Обработка по загрузке файлов из основных ОФД. Возвраты вычитаются из внесенных денег. Тестирование проводилось на Бухгалтерия предприятия, редакция 3.0 (3.0.54.15)

1 стартмани

28.12.2017    11418    63    ikbokov    6       

Загрузка кассовых чеков с сервера ФНС. Расширение для 1С: Деньги 22

Инструменты и обработки no Расширение (cfe) v8 1cv8.cf Домашние учет и финансы Россия УУ Кассовые операции Абонемент ($m) WEB

Для тех, кто ведет домашние финансы в 1С:Деньги. Расширение поможет сократить время на ввод данных о расходах, вместо набивания данных руками, данные чека (сумму и товары) можно загрузить из электронного чека, который хранится на сервере ФНС.

1 стартмани

17.11.2017    14780    62    Bazil    49       

Сравнение и синхронизация баз УТ-БП 10

Инструменты и обработки Системный администратор Программист Бухгалтер Внешняя обработка (ert,epf) v8 БП3.0 УТ11 БУ УУ Банковские операции Кассовые операции Оптовая торговля Розничная торговля Абонемент ($m) Обработка документов Анализ учета

Обработка позволяет быстро синхронизировать документы в базах УТ и БП. Будет полезна для бухгалтеров, специалистов поддержки, программистов, руководителей. Тестировалась на конфигурациях Бухгалтерия предприятия, редакция 3.0 (3.0.52.39) и Управление торговлей, редакция 11 (11.3.4.93), платформа 8.3.10.2299.

2 стартмани

08.11.2017    5520    30    leossb    4       

Загрузка в 1С:Бухгалтерию 3.0 данных из ОФД о денежных поступлениях (чеках) 20

Инструменты и обработки Бухгалтер Архив с данными v8 v8::БУ БП3.0 Россия БУ Кассовые операции Абонемент ($m) Обработка документов Загрузка и выгрузка в Excel

Если Ваша торговая точка (ККМ) отделена от 1С:Бухгалтерии, а вносить поступление наличных за день в 1С:Бухгалтерию надо, то автоматизировать процесс оформления наличных в 1С:Бухгалтерию можно!

5 стартмани

09.08.2017    32128    197    ah7777777    104       

Эмулятор ККТ с передачей данных для УПП 1.3.92+, КА 1.1.87+, УТ 10.3.43+ 18

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 КА1 УПП1 Кассовые операции Абонемент ($m) ККМ

Простейший эмулятор обработки обслуживания ККТ с передачей данных.

1 стартмани

28.07.2017    30995    246    Brawler    35       

Загрузка всех онлайн-чеков с сервиса проверки чеков ФНС – обработка для получения данных о покупках по чекам онлайн-касс с загрузкой в Авансовый отчет 13

Инструменты и обработки Системный администратор Программист Бухгалтер Пользователь Внешняя обработка (ert,epf) v8 1cv8.cf Россия Документооборот и делопроизводство Кассовые операции Розничная торговля Учет ТМЦ Абонемент ($m) Внешние источники данных WEB Бухгалтерия

В продолжение статьи «Свой кусочек информационного пирога по 54-ФЗ – обработка для получения данных о своих покупках по чекам ОФД» (на примере сети магазинов «Лента») (http://infostart.ru/public/647711/). Однако, в предыдущей публикации был показан пример получения данных с сервиса ОФД Такском по одному магазину, в новой публикации – показан пример загрузки всех чеков по всем ОФД непосредственно с сервиса проверки чеков ФНС. Опубликованы обработки, позволяющие работать по двум схемам: вносить данные по каждому чеку, получая данные с ФНС, или загружать чеки в мобильное приложение ФНС, выбирая в последующем для загрузки нужные чеки из списка.

3 стартмани

26.07.2017    16765    82    delta    10       

Печать чека ККМ в отчетах о розничных продажах 10

Отчеты и формы Бухгалтер Конфигурация (md, cf) v8 v8::БУ БП3.0 БУ Кассовые операции Абонемент ($m) ККМ

Возможность вывода на печать чека ККМ (Безналичная оплата) в отчетах о розничных продажах.

1 стартмани

24.07.2017    8292    1    maksa2005    2       

Свой кусочек информационного пирога по 54-ФЗ – обработка для получения данных о своих покупках по чекам ОФД (на примере сети магазинов «Лента») 11

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия БУ УУ Кассовые операции Розничная торговля Абонемент ($m) Внешние источники данных Мобильная разработка

Новшества по 54-ФЗ в области новой ККТ и все новые аббревиатуры из двух и трех букв (ОФД, ФН, ФД и т.д.) – одни из главных событий в торговой отрасли 2016-2017-2018 гг. Несмотря на всю сложность выполнения новых обязательных требований для магазинов, для рядовых пользователей появляется возможность автоматизировать получение данных о своих покупках от Операторов фискальных данных (ОФД). Вашему вниманию предлагается несколько вариантов использования данных со своих онлайн-чеков (на примере получения данных о покупках в магазинах «Лента»).

1 стартмани

11.07.2017    14283    6    delta    9       

Рабочее место кассира 1С:Розница 2.2 (РМК) как Фронт-офис с поиском по цене и только положительными остатками 30

Инструменты и обработки Бухгалтер Пользователь Внешняя обработка (ert,epf) v8 Розница Розничная и сетевая торговля (FMCG) Россия БУ УУ Кассовые операции Розничная торговля Абонемент ($m) Рабочее место

РМК Розница 2.2.9 с изменениями: 1) Только положительные остатки 2) Поиск по цене 3) Форма РМК с полем ввода (полем поиска) 4) Форма подбора товаров с окном характеристик 5) Внесение ден.средств без РКО и др.

1 стартмани

11.07.2017    31109    121    Vlx    79       

БП 2.0 онлайн-касса (ККТ с передачей данных) 54 ФЗ 20

Инструменты и обработки Системный администратор Программист Бухгалтер Конфигурация (md, cf) v8 v8::БУ БП2.0 Россия БУ Кассовые операции Розничная торговля Абонемент ($m) ККМ Фискальный регистратор

Изменения для объединения с конфигурацией "Бухгалтерия предприятия 2.0" с функционалом для работы с ККТ с передачей данных в ОФД (онлайн-касса), сделана согласно методическим указаниям.

3 стартмани

09.07.2017    30738    135    bob_    53       

Кассовая книга по подразделениям без доработки (Бухгалтерия 3.0 ПРОФ) 10

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::БУ БП3.0 Россия БУ Кассовые операции Абонемент ($m) Бухгалтерские

Внешний отчет "Кассовая книга" для БП 3.0 ПРОФ формируется по каждому обособленному подразделению отдельно (требование законодательства). Доработка типовой конфигурации не требуется! Реализована нумерация документов ПКО и РКО отдельно для каждого подразделения (перенумерацией). Типовой функционал по нумерации листов Кассовой книги по головному подразделению не нарушен.

9 стартмани

08.07.2017    14697    185    SmArtist    31       

Простая печать чеков в соответствии с 54-ФЗ. 4

Инструменты и обработки Системный администратор Программист Бухгалтер Руководитель проекта Архив с данными v8 v8::БУ БП3.0 Россия БУ Windows Кассовые операции Абонемент ($m) Фискальный регистратор

Простая программа для печати чеков на фискальных регистраторах через драйвер компании Штрих-М. Соответствует 54-ФЗ. Подходит для интернет-магазинов.

3 стартмани

07.07.2017    22251    25    Rik30    14       

Эмулятор ККТ 14

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Россия Windows Кассовые операции Абонемент ($m) Фискальный регистратор

В связи с применением федерального закона 54 о кассах online появилось новое торговое оборудование ККТ. К сожалению, на просторах интернета я не нашёл Эмулятора под данный вид торгового оборудования. Обработка подойдёт для следующих конфигураций: УПП1.3, УТ10.3, КА1.1 и других, в которых применяется версия API 2.05 P.S. Версия API - это версия взаимодействия конфигурации 1С с обработкой обслуживания торгового оборудования.

1 стартмани

14.06.2017    35757    264    zaoproxy    26       

Обновление Бухгалтерии 2.0 для работы с 54-ФЗ Онлайн кассы 20

Инструменты и обработки Бухгалтер Конфигурация (md, cf) v8 v8::БУ БП2.0 Россия БУ Кассовые операции Абонемент ($m) ККМ SMS рассылки Email

Типовая конфигурация БП 2.0 не поддерживает работу с онлайн кассами. Это обновление конфигурации БП 2.0 позволяет подключить онлайн кассы, печатать чеки, отправлять их по email или SMS.

1 стартмани

08.06.2017    28493    276    Zorkon    120       

Загрузка чеков в 1С:Деньги 15

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Домашние учет и финансы Россия УУ Кассовые операции Абонемент ($m) Обработка документов WEB

Загрузка чеков в 1С:Деньги с сайта налог.ру. Обработка загружает данные чека с сайта налоговой, сопоставляет наименования с сайта со статьями расхода, из ранее загруженных документов.

1 стартмани

29.04.2017    13125    36    a22011973    24       

54-ФЗ: Онлайн-кассы для 1С 8.1 УТ 10.2. Поддержка Native драйверов Атол 12

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

Доработан и адаптирован функционал работы ККТ по 54_ФЗ на УТ 10.2 платформы 8.1. Поддержка драйверов Атол версии 9 (native) и эмулятора ККТ. Код полностью открыт и внесены комментарии для самостоятельной доработки. Протестировано на Атол 11Ф. Распространяется как есть.

10 стартмани

18.04.2017    41457    127    Atom74    69       

FR_Atol_Shtrih.exe печать чеков для ККМ АТОЛ и ШТРИХ на основании текстового файла, где содержится описание товаров, цен, НДС (все требования 54ФЗ поддержка изменений от 01/07/19). Для 1С (7.7 и:8 УФ, Обычных Формы) есть готовые обработки 68

Инструменты и обработки Системный администратор Программист Архив с данными v7.7 v8 v8::УФ 1cv8.cf 1cv7.md Россия Windows Кассовые операции Оптовая торговля Розничная торговля Абонемент ($m) ККМ Фискальный регистратор

Это программа печати чеков, которая читает обычный текстовый файл, где перечислено, что надо распечатать на ФР - описание содержимого чека. Такой механизм позволяет использовать комплект для WEB сайтов, для не типовых или сильно измененных 1с7 или 1с8. Для любых программ которые умеют работать с текстовыми файлами (будь то CLIPPER,FOXPRO,JAVA, WSH, VBS итд). Внутри комплекта лежат готовые внешние печатные формы для печати из документов Реализация товаров и услуг 1с8 УТ10, БП2, БП2Базовая, БП2Корп, УТ11, БП3, БП3Базовая, БП3Корп, Для 1с:ТиС 7.7 Реализация ТМЦ, Бух4.5, Бух1.3 и Печать из ПКО Подключать ФР к 1С не надо! Не надо открывать смену. Подходит для любой конфигурации, для любого документа. Более 300 внедрений на ккм Штрих-Мини-ФР-К, Штрих ОнЛайн Атол 11Ф, 55Ф, 30. Возможна пробитие оплаты наличным или VISA  (Электронные деньги). Поддерживает передачу в ОФД имени кассира, телефон или email покупателя. Для каждого чека можно поменять ОСН (ЕНВД, Доходы-расходы итд). Возможна печать чека с выровненными колонками, Наименование,Количество Цена, Сумма, в этом случае фискализация будет одной строкой с общей суммой. Можно пробить не фискальный чек. (чек будет, но в налоговую не уйдет). Добавлена расшифровка длинных наименований, что актуально для Штрих (программа сама переносит длинные наименования на след строку). Есть внесение и выплата денег. 29.06.17 добавлено пробитие 2 видов оплат в одном чеке.

7 стартмани

11.04.2017    50886    173    ah7777777    473       

ФЗ-54. Печать кассового чека на основании «Реализация товаров и услуг» + автоматическое создание «Приходного кассового ордера». Для ККМ онлайн. УТ 10.3 и УТ 11.1(и выше) 19

Отчеты и формы Бухгалтер Руководитель проекта Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 УТ11 Россия БУ Кассовые операции Розничная торговля Абонемент ($m) Печатные формы документов

Для организаций, принимающих от контрагентов оплату наличными, и перешедших на ККМ-онлайн, согласно ФЗ-54 необходимо печатать кассовый чек с детализацией. Обработка позволяет печатать чек ККМ непосредственно из документа «Реализация товаров и услуг».

5 стартмани

27.03.2017    39823    226    Vagner_Hate    219       

Дополнения для конфигурации 1С:Деньги 8

Инструменты и обработки no Расширение (cfe) v8 1cv8.cf Домашние учет и финансы УУ Банковские операции Финансовый учет и бюджетирование (FRP) Кассовые операции Абонемент ($m) Рабочее место

В процессе использования конфигураций, всем нам периодически хочется каких-то мелочей, которые упростили бы использование этих конфигураций. Здесь я хочу представить некоторые мелочи, которые, как мне кажется, не помешали бы конфигурации 1С:Деньги.

1 стартмани

13.03.2017    9310    6    lopatin    6       

ФЗ-54 Подключение фискальных регистраторов с ФН по TCP. Доработка Розницы 1.0. Обработка обслуживания Штрих-М для драйверов версии 4.13 30

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 КА1 УТ10 Розница Розничная и сетевая торговля (FMCG) УУ Розничная торговля Абонемент ($m) Фискальный регистратор

Обработка осуществляет обслуживание фискальных регистраторов, поддерживаемых драйвером "Штрих-М" версии 4.13 для конфигураций на обычных формах. Обработка позволяет подключать ФР как по TCP, так и через COM. Поддерживается работа двух компонент: "AddIn.SMDrvFR1C20" и "AddIn.SMDrvFR1C". Соответственно обе компоненты должны быть зарегистрированы в системе.

2 стартмани

26.01.2017    60926    171    sdv88    120       

Печать QR кода на слип чеке из 1С:УТ 10.3 для драйверов Штрих-М и АТОЛ 8

Инструменты и обработки no Внешняя обработка (ert,epf) v8 УТ10 Россия Кассовые операции Розничная торговля Абонемент ($m) Фискальный регистратор

Печать QR-кода на слип чеке, при продаже алкогольной продукции. Одна обработка для ФР работающие с драйверами Штрих-М и вторая обработка для ФР работающие с драйверами АТОЛ.

1 стартмани

08.08.2016    28545    105    delsoft    7       

Печать QR из УТ 10.3 Fprint ЕГАИС 21

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::ОУ УТ10 Розничная и сетевая торговля (FMCG) Windows Розничная торговля Абонемент ($m) Фискальный регистратор

На чековой ленте теперь необходимо печатать QR со ссылкой на чек в системе ЕГАИС. Стандартная обработка работы с фискальными регистраторами АТОЛ в УТ 10.3 этого делать не умеет. Не умеет - научим, не захочет - заставим. В статье приведен весь исходный код.

1 стартмани

19.06.2016    29574    60    erutan    26