Несколько касс ККМ на одну организацию УНФ3

При переходе на новое РМК УНФ «порадовала» сообщением: «на организацию подключено несколько касс ккм допустима одна«.

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

Проблема возникает в форме РМК обработки РабочееМестоКассира в процедуре ПроверитьОбщуюВозможностьРаботы:

Поправил, чтобы касса бралась из константы — в модуле ОбщегоНазначенияРМКУНФ:


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

Создал расширение, добавил туда константу нкноо_ОсновнаяКассаККМ.

Сделал возможность ее выбора в интерфейсе пользователем, добавив в подсистему.

Отлаживал еще на старом РМК, хотел не мешать пользователям, и не менять постоянно константу «Использовать новое РМК»:

Поэтому сделал вот такое расширение модуля ОбщегоНазначенияРМКПереопределяемый:

&Вместо("ОпределитьВозможностьЗапускаРМК")
Процедура нкноо_ОпределитьВозможностьЗапускаРМК(МожноОткрыватьРМК)
	ПродолжитьВызов(МожноОткрыватьРМК);
	МожноОткрыватьРМК = истина; //Всегда, чтобы можно было отлаживаться
КонецПроцедуры

Это позволяет открывать обработку «Рабочее место кассира» через все функции.

Ну и еще дополнительно сделал в форме РМК отображение и выбор кассы, при ее выборе РМК просто закрывается и открывается по новой:


&НаКлиенте
Процедура нкноо_нкноо_КассаПриИзмененииПосле(Элемент)  
	//Меняем основную кассу           
	Если Объект.Товары.Количество() = 0 Или ФормаЗамороженаПослеПробитияЧека() Тогда
		нкноо_УстановитьОсновнуюКассу();
	Иначе     
		//Если чек открыт
		нкноо_ПолучитьОсновнуюКассу();
		ПоказатьПредупреждение(, "Кассу можно менять только при пустом чеке!");
	Конецесли;
	
	//Если РМК стартовало, тогда можем менять кассу
	Если ЗначениеЗаполнено(Объект.КассаККМ) Тогда
		ЭтаФорма.Закрыть();
		ОткрытьФорму("Обработка.РабочееМестоКассира.Форма.ФормаРМК");
		//Объект.КассаККМ = нкноо_Касса; 
		//ПриПереключенииКассыККМ(); //Вызываем типовую логику 1С
	КонецЕсли;

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

&НаКлиенте
Процедура нкноо_ПриОткрытииПосле(Отказ)
	нкноо_ПолучитьОсновнуюКассу();
	//Прячем вначале кассу
	//Элементы.нкноо_Касса.Видимость = ложь;
КонецПроцедуры



//=== РАБОТА С КОНСТАНТАМИ ===

Процедура нкноо_УстановитьОсновнуюКассу()
	УстановитьПривилегированныйРежим(Истина);
	Константы.нкноо_ОсновнаяКассаККМ.Установить(нкноо_Касса);
КонецПроцедуры

Процедура нкноо_ПолучитьОсновнуюКассу()
	УстановитьПривилегированныйРежим(Истина);
	нкноо_Касса = Константы.нкноо_ОсновнаяКассаККМ.Получить();
КонецПроцедуры

Пробовал вызывать смену кассы, но не работает, там все продажи сваливаются все равно в одну кассовую смену, лучше программно переключать форму РМК.

Также сделал контроль, если товары подобраны, чтобы касса не переключалась. И еще добавил колонку продавец, просто перетащив ПродавецПредставление в список товаров, потому что в новом РМК возможно несколько продавцов на чек:

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

Среда: УНФ 3.0.6.200 Объем: 1.5 час.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 2

  1. Берик:

    Здравствуйте, как с вами связаться?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *