Доработка конфигурации УПП 1.2  для работы с ШТРИХ-МПЕЙ-Ф

25.05.20

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

Работа с ККТ ШТРИХ-МПЕЙ-Ф на примере доработки конфигурации УПП 1.2 (1.2.19.1).

Скачать файл

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

Наименование По подписке [?] Купить один файл
Редактирование конфигурации УПП 1.2  для работы с ШТРИХ-МПЕЙ-Ф:
.epf 24,79Kb
0
0 Скачать (1 SM) Купить за 1 850 руб.

 

  1. Изменение конфигурации УПП.

Для того чтобы конфигурация  УПП, редакция 1.2(1.2.19.1)  смогла обмениваться заказами с ККТ Штрих-МПЕЙ-Ф используем логику обмена конфигурации и Штрих-М Кассира текстовыми файлами.

Во-первых, включим в документе “ЗаказПокупателя”(Форма документа) поддержку обработки

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

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

                Если Вид = Перечисления.ВидыТорговогоОборудования.СканерШтрихКода

                               Или Вид = Перечисления.ВидыТорговогоОборудования.СчитывательМагнитныхКарт

                               Или Вид = Перечисления.ВидыТорговогоОборудования.ККМOffLine Тогда//>>

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

                КонецЕсли;

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

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

Добавим на форме заказа новую кнопку “в М-ПЕЙ”, означающую выгрузку данных из документа и процедурой:

Процедура ОсновныеДействияФормыМ_ПЕЙ(Кнопка)

                Если Товары.Количество() = 0 Тогда

                               Предупреждение("Список товаров пуст.");

                               Возврат;

                КонецЕсли;

                мСерверТО = ПолучитьСерверТО();

                МассивККМ = мСерверТО.ПолучитьСписокУстройств(

                                Перечисления.ВидыТорговогоОборудования.ККМOffLine,

                                Справочники.КассыККМ.ПустаяСсылка());

                 

                мСписокККМ    = Новый СписокЗначений();

                ККМ           = Неопределено;

                Вид           = Неопределено;

                Представление = Неопределено;

                Для Каждого ККМ Из МассивККМ Цикл

                               мСерверТО.ПолучитьПредставлениеУстройства(ККМ, Вид, Представление);

                               Если (Представление="Штрих-М: MPAY-Ф") Тогда

                                               мСписокККМ.Добавить(ККМ, Представление);

                                               ККМOffline = мСписокККМ[0].Значение;;

                                               Прервать;

                               КонецЕсли;           

                КонецЦикла;                                                       

                Шапка = ЗаполнитьШапку();

                Результат = мСерверТО.ВыгрузитьЗаказыККМ(ККМOffline, Ссылка, Шапка);

                Если НЕ ЗначениеЗаполнено(Результат) Тогда

                               КолВо = Товары.Количество() + Услуги.Количество();

                               ОписаниеРезультата = "Выгрузка заказов завершена успешно.

                                                                                                               |Выгружено " + СокрЛП(КолВо) + " строк.";

                Иначе

                               ОписаниеРезультата = мСерверТО.ПолучитьТекстОшибкиККМOfflineТО(Результат);

                КонецЕсли;

                Предупреждение(ОписаниеРезультата);

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

И описание функций  “СтатусЗаказа” и “ЗаполнитьШапку”

 

Функция ЗаполнитьШапку()

                СтрукВз = Новый Структура("store, date, number, externalnumber, doctype, uuid, posted, status, deliveryaddress, customer, prepayment");

                СтрукВз.store                                       = Ссылка.СкладГруппа.Код;

                СтрукВз.date                                         = Ссылка.Дата;

                СтрукВз.number                                   = Ссылка.Номер;//Ссылка.НомерИнтернетЗаказа;

                СтрукВз.externalnumber       = Ссылка.Номер;

                СтрукВз.doctype                   = "30";

                СтрукВз.uuid                                        = Строка(Ссылка.УникальныйИдентификатор());

                СтрукВз.posted                                     = ?(Ссылка.Проведен,1,0);

                СтрукВз.status                                      = СтатусЗаказа();

                СтрукВз.deliveryaddress       = Ссылка.АдресДоставки;  

                СтрукВз.customer                 = Ссылка.Контрагент.Наименование;//Ссылка.НаименованиеПокупателя; 

                СтрукВз.prepayment                             = Ссылка.СуммаОплаты;   

               

                Возврат СтрукВз;

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

//>>

Функция СтатусЗаказа()

                Если (Ссылка._СтатусЗаказа = Перечисления.MI_СтатусЗаказаПокупателя.НеВыполненныйЗаказ) Тогда

                               возврат "open";

                ИначеЕсли (Ссылка._СтатусЗаказа = Перечисления.MI_СтатусЗаказаПокупателя.ЗаказВыполнен) Тогда

                                Возврат "close";

                ИначеЕсли (Ссылка._СтатусЗаказа = Перечисления.MI_СтатусЗаказаПокупателя.ЗаказОтменен) Тогда

                               Возврат "cancel";  

                ИначеЕсли (Ссылка._СтатусЗаказа = Перечисления.MI_СтатусЗаказаПокупателя.ОтказОтВыполненияНаТекущейКкм) Тогда

                               Возврат "reject";

                Иначе

                               Возврат "";

                КонецЕсли;

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

Как видно из функции “СтатусЗаказа” необходимо добавить новое перечисление “ MI_СтатусЗаказаПокупателя ”, которое будет использоваться в статусе документа “Заказпокупателя”

 

Добавим в документ реквизит “_СтатусЗаказа”, который будет влиять на выгрузку в МПЕЙ:

Также необходимо изменить обработку “ТОСервер”(Модуль объекта), добавим функция “ВыгрузитьЗаказыККМ”:

Функция ВыгрузитьЗаказыККМ(Идентификатор, Товары, Шапка) Экспорт

	Обработка = Неопределено;
	Объект    = Неопределено;
	Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект);
	Если НЕ ЗначениеЗаполнено(Результат) Тогда
		Результат  = Обработка.ВыгрузитьЗаказы(Объект, Товары, Шапка);
		мОписаниеОшибки = Объект.ОписаниеОшибки;
	Иначе
		мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ККМ Off-Line");
	КонецЕсли;
	Возврат Результат;
КонецФункции 

2. Создание обработки для выгрузки в МПЕЙ

Создадим обработку “ShtrihMPAYOffline_v1.epf”:

         Отредактируем основную функцию “ВыгрузитьТовары”:

Функция ВыгрузитьТовары(Объект, Товары, ЧастичнаяВыгрузка = Неопределено) Экспорт
	Результат = мНетОшибки;
	Файл      = Новый ТекстовыйДокумент();
	Товар     = Неопределено;
	Разделитель = ";";

	Файл.ДобавитьСтроку("##@@&&");
	Файл.ДобавитьСтроку("#");

	Если ЧастичнаяВыгрузка <> Неопределено Тогда
		Если ЧастичнаяВыгрузка Тогда
			Файл.ДобавитьСтроку("$$$ADD");
		Иначе
			Файл.ДобавитьСтроку("$$$CLR");
		КонецЕсли;
	КонецЕсли;
	//>>
	ЗаполнитьГруппыТоваров(Файл,Товары);
	//<<
Для Каждого Товар Из Товары Цикл
		Если ТипЗнч(Товар.КодТовара) <> Тип("Массив") Тогда
			Гр_Родитель_Код = Справочники.Номенклатура.НайтиПоНаименованию(Товар.Номенклатура).Родитель.Код;
			КодГр = Преоб(Гр_Родитель_Код);
			Если КодГр=-1 Тогда
				КодГр = 0;;
			КонецЕсли;	
			Строка = Формат(Товар.ПЛУ, "ЧЦ=13; ЧДЦ=0; ЧГ=0")   + Разделитель +
			Формат(Товар.КодТовара, "ЧЦ=13; ЧДЦ=0; ЧГ=0")      + Разделитель +
			ИсключитьСпецСимв(Товар.Номенклатура)              + Разделитель +
			ИсключитьСпецСимв(Товар.Номенклатура)              + Разделитель +
			Формат(Товар.Цена, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧГ=0")    + Разделитель +
			Формат(Товар.Остаток, "ЧЦ=17; ЧДЦ=3; ЧРД=.; ЧГ=0") + Разделитель +
			"0"                                                + Разделитель +
			?(Товар.ВесовойТовар, "1", "0")                    + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			"0"                                                + Разделитель +
			Формат(КодГр, "ЧЦ=13; ЧДЦ=0; ЧГ=0")      		   + Разделитель + //16-Код род группы
			"1";
			Файл.ДобавитьСтроку(Строка);
		Иначе

Где функция “ЗаполнитьГруппыТоваров”:

Функция ЗаполнитьГруппыТоваров(Файл,Товары)

               

                Для каждого Товар из Товары Цикл

                               Тов = Справочники.Номенклатура.НайтиПоНаименованию(Товар.Номенклатура);

                               Если Тов.Пустая() Тогда

                                               Сообщить("Для товара "+ Товар.Номенклатура+" не нашли соответствие!");

                               Иначе

                                               ДобавитьРодителя(Тов.Родитель);

                               КонецЕсли;           

                КонецЦикла;

                Разделитель = ";";

                Для каждого Гр из ТабГрупп Цикл

                               КодГр = Преоб(Гр.Группа.Код);

                               Если КодГр=-1 Тогда

                                               Продолжить;

                               КонецЕсли;           

                               КодГрР = Преоб(Гр.Группа.Родитель.Код);

                               Строка = Формат(КодГр, "ЧЦ=13; ЧДЦ=0; ЧГ=0")                       + Разделитель +

                                               ""                                                                                                                                                                         + Разделитель +

                                               Гр.Группа.Наименование                                    + Разделитель +

                                               Гр.Группа.наименование                              + Разделитель +

                                               ""                                                                                                                                                                                        + Разделитель +

                                               ""                                                                                                                                                                                                         + Разделитель +

                                               "0"                                                                         + Разделитель +

                                               "0"                                                                                                                            + Разделитель +

                                               "0"                                                              + Разделитель +//9

                                               "0"                                                                      + Разделитель +

                                               "0"                                                              + Разделитель +

                                               "0"                                                                      + Разделитель +

                                               "0"                                                                         + Разделитель +

                                               "0"                                                                         + Разделитель +

                                               "0"                                                                         + Разделитель +

                                               Формат(КодГрР, "ЧЦ=13; ЧДЦ=0; ЧГ=0")                                                     + Разделитель +//16-Код род группы

                                               "0"                                                 + Разделитель ;//17-Товар или группа: для    группы “0”

                                               Файл.ДобавитьСтроку(Строка);

                КонецЦикла;        

                Возврат Истина;

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

И другие дополнительные функции:

 

Функция ИсключитьСпецСимв(НаимТовара)

                Если Найти(НаимТовара,";")>0 Тогда

                               Врем = СтрЗаменить(НаимТовара,";","##");

                               Возврат Врем;

                КонецЕсли;

                Возврат   НаимТовара;

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

Процедура ДобавитьРодителя (Родитель)

                Если Родитель.Пустая() Тогда

                               Возврат;

                Иначе

                               СтрПоиска = Новый структура("Группа",Родитель.Ссылка);

                               Масс = ТабГрупп.НайтиСтроки(СтрПоиска);

                               Если Масс.Количество()=0 Тогда

                                               стр = ТабГрупп.Добавить();

                                               стр.Группа = Родитель.Ссылка;

                               КонецЕсли;           

                               ДобавитьРодителя(Родитель.Родитель);

                КонецЕсли;           

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



Функция Преобразовать(Строка) Экспорт

                ии=1;

                Сум="";

                Пока ии<СтрДлина(Строка)+1 Цикл

                               Стр = Сред(Строка,ии,1);

                               Попытка

                                               а=Число(Стр);

                                               Сум=Сум+Стр;

                               Исключение

                                               ф=0;

                               КонецПопытки;    

                               ии=ии+1;

                КонецЦикла;        

                Возврат Сум;

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



Функция Преоб(Б)

                Попытка

                               А = Число(Б);

                               Возврат Преобразовать(А);

                Исключение

                               Возврат -1;

                КонецПопытки;    

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

    

 

  1. Настройка

Подключить обработку «ShtrihMPAYOffline_v1.epf»

    1. Открыть «Подключение и настройка торгового оборудования»

    1. Заполнить параметры выгрузки заказа. Путь файл заказа «…pos.spr» - файл который по умолчанию стоит в МПЕЙ

    1. Нажать кнопку «Проверка», если все корректно то выйдет сообщение «торговое оборудование настроено корректно».

 

 

  1. Создадим заказ покупателя и заполним все поля. Статус заказ и т.д.

  1. Выгрузка происходит по кнопке «Выгрузка заказа-> в- МПЕЙ».
  2. Полученные данные на флэшке(они должны находится в корне), вставляем в МПЕЙ
  3. Заходим в «Меню», «0.Еще…» -> «1.Обмен» -> «1.Файловый обмен» -> «1.Загрузка справочника». Если все успешно, система сообщит сколько строк было загружено

Просмотр заказа «Меню» -> «9.Подбор заказа»

4. Примечание:

          -  Описание работы с Штрих-М ПЕЙ-Ф https://wiki.sftserv.ru/index.php/Выгрузка_товаров_в_ККТ_ШТРИХ-МПЕЙ-Ф

- Ссылка для загрузки заказа https://kkm.solutions/wiki/doku.php?id=кассир5:форматобменаданными:заказпокупателя

УПП Штрих-МПЕЙ ШТРИХ-MPAY-Ф

См. также

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

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

6000 руб.

27.02.2017    816442    5207    9785    

2950

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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 или интернет. Поддержка маркировки и разрешительного режима. Поддержка пробития чеков с новыми ставками НДС 5% и НДС 7%.

7900 руб.

25.05.2015    342330    2067    3121    

1083

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

Расширение для типовых конфигураций для Управляемых форм позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

9500 руб.

27.08.2018    125769    671    603    

897

ККМ Кассовые операции Розничная торговля Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Платные (руб)

«Сервер ККМ» позволяет приложениям работать с фискальными регистраторами по локальной сети или интернет, организовать печать на одном ККМ с нескольких рабочих мест с поддержкой очереди печати. Поддерживаются ВСЕ ревизии требований фирмы 1С к разработке драйверов ККТ от 2.2 до 4.4. В поставке есть драйверы для операционных систем Linux, Android, MacOs и Windows. Поддержка драйверов Атол, Штрих и 1С-совместимых драйверов для ККТ ревизии 4.4. Поддержка 54-ФЗ и разрешительного режима, ФФД 1.05,1.1,1.2. Подключается к 1С Торговля и склад 7.7, 1С:УТ 10/11, 1С:УНФ 1.6/3, 1С:Розница 1/2/3, 1С:БП 2/3, 1С КА 1/2., 1С:ERP, УПП. Ускоряет печать из терминального сеанса Windows. Работает с разрешительным режимом даже из старых конфигураций. Предоставляет REST API для печати через веб-сервис. Поддерживаются новые ставки НДС 5% и 7%.

5000 руб.

02.09.2016    139930    203    196    

196

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

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

7900 руб.

22.03.2019    86981    571    479    

197

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

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

5880 руб.

12.04.2023    10938    61    3    

50

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

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

4560 руб.

07.08.2018    78018    511    359    

369

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

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

6000 руб.

31.07.2017    174566    603    609    

211
Оставьте свое сообщение