Три желания клиента. Розница 2.3

Несколько мелких задач для клиента.

В окне ввода штрих-кода кнопка С сбрасывает весь ШК, а хотелось бы, чтобы очищал последнюю цифру:

Поправляем форму ФормаВводаЧисла обработки РМКУправляемыйРежим:

&НаКлиенте
Процедура КомандаСтереть(Команда)
	//+++Осипов 2023-02-06 ЗАМЕНА
	//ВводимоеЧисло = "";
	//ПервыйВвод = Ложь;
	//===
	ВводимоеЧисло = Лев(ВводимоеЧисло, СтрДлина(ВводимоеЧисло)-1);
	ПервыйВвод = ВводимоеЧисло = "";
	//-----
КонецПроцедуры

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

Делаю, выдает информацию в окне предупреждения:

Добавляю кнопку и делаю вызов функции, которую копирую из процедуры закрытия смены:

&НаКлиенте
Процедура дор_СостояниеПродаж(Команда)
	//Осипов 2023-02-06 +++
	//Осипов 2023-02-06 +++
	С = _Доп.ТаблицаНеПробитыхЧеков(ТаблицаКассККМОрганизаций[0].КассаККМ);
	Текст = "Продаж: " + С.ИтогСуммаПродаж + Символы.ПС + "Возвратов:" + С.ИтогСуммаВозвратов + Символы.ПС + "Оплата картой: " + С.ИтогОплатаКартой;
	ПоказатьПредупреждение(, Текст);
КонецПроцедуры



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	//Осипов 2023-02-06 +++
	ИмяКоманды = "дор_СостояниеПродаж";
	КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
	КомандаФормы.Действие = "дор_СостояниеПродаж";
	КомандаФормы.Заголовок = "ПРОДАЖИ";
	КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
	КомандаФормы.Отображение = ОтображениеКнопки.КартинкаИТекст;
	
	НовыйЭлемент = ЭтаФорма.Элементы.Добавить("дор_СостояниеПродаж", Тип("КнопкаФормы"), Элементы.ГруппаЧастотныхОпераций);
	//НовыйЭлемент.Вид = ВидКнопкиФормы.Гиперссылка;
	НовыйЭлемент.ИмяКоманды = ИмяКоманды;
	
	//Осипов 2023-02-06 ---
	
	...	
	
КонецПроцедуры

Сама скопированная функция, меняем информацию о непробитых на информацию о пробитых:

&НаСервере
Функция ТаблицаНеПробитыхЧеков(КассаККМ) Экспорт
	Объект = Новый Структура("КассаККМ", КассаККМ);
	УстановитьПривилегированныйРежим(истина);
	//Осипов 2023-02-06
	//+++ Ниже скопировано из Обработка.ЗакрытиеКассовойСмены.Форма.ПроверкаНепробитыхЧеков. Последняя строчка с Загрузить убрана

	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	...
	|	";
	
	
	//Осипов
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "Перечисление.СтатусыЧековККМ.ПустаяСсылка", "Перечисление.СтатусыЧековККМ.Пробитый");
	
	Запрос.УстановитьПараметр("КассаККМ"                  , Объект.КассаККМ);
	Запрос.УстановитьПараметр("ХозяйственнаяОперацияРКО"  , Перечисления.ХозяйственныеОперации.ВозвратОплатыКлиенту);
	Запрос.УстановитьПараметр("ХозяйственнаяОперацияПКО"  , Перечисления.ХозяйственныеОперации.ПоступлениеОплатыОтКлиента);
	
	Запрос.УстановитьПараметр("ВидДокументаЧек", "ЧекККМ");
	Запрос.УстановитьПараметр("ВидДокументаПКО", "ПриходныйКассовыйОрдер");
	Запрос.УстановитьПараметр("ВидДокументаРКО", "РасходныйКассовыйОрдер");
	Запрос.УстановитьПараметр("ВидДокументаЭО" , "ОплатаОтПокупателяПлатежнойКартой");
	
	ВозможностьИзмененияЧек = РольДоступна("ДобавлениеИзменениеЧековККМ")
							ИЛИ РольДоступна("ПолныеПрава");
	
	ВозможностьИзмененияПКО = РольДоступна("ДобавлениеИзменениеКассовыхОрдеров")
							ИЛИ РольДоступна("ПолныеПрава");
	
	ВозможностьИзмененияРКО = РольДоступна("ДобавлениеИзменениеКассовыхОрдеров")
							ИЛИ РольДоступна("ПолныеПрава");
	
	ВозможностьИзмененияЭО  = РольДоступна("ДобавлениеИзменениеОплатОтПокупателяПлатежнойКартой")
							ИЛИ РольДоступна("ПолныеПрава");
	
	Запрос.УстановитьПараметр("ВозможностьИзмененияЧек", ВозможностьИзмененияЧек);
	Запрос.УстановитьПараметр("ВозможностьИзмененияПКО", ВозможностьИзмененияПКО);
	Запрос.УстановитьПараметр("ВозможностьИзмененияРКО", ВозможностьИзмененияРКО);
	Запрос.УстановитьПараметр("ВозможностьИзмененияЭО" , ВозможностьИзмененияЭО);
	
	Результат = Запрос.Выполнить();
	ТаблицаЗапроса = Результат.Выгрузить();
	
	ИтогСуммаПродаж    = ТаблицаЗапроса.Итог("Сумма");
	ИтогСуммаВозвратов = ТаблицаЗапроса.Итог("Возврат");
	ИтогОплатаКартой   = ТаблицаЗапроса.Итог("ОплатаКартой");
	
	//ОсновнаяТаблица.Загрузить(ТаблицаЗапроса);
	
	//---Возвращаем
	Возврат Новый Структура("ИтогСуммаПродаж, ИтогСуммаВозвратов, ИтогОплатаКартой", ИтогСуммаПродаж, ИтогСуммаВозвратов, ИтогОплатаКартой);
	
КонецФункции

Да, чуть позже добавил в начало этой функции вызов УстановитьПривилегированныйРежим(истина), чтобы работало под любыми правами.

Еще клиент жалуется, что при нажатии кнопки быстрые товары, после выбора товара, таблица товаров съезжает вниз и приходится ее потом подтягивать руками.

Управлять пунктирной линией в 1С нельзя, поэтому решаем вопрос жестко — фиксируем высоту поля между кнопками и табличной частью товаров:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	//Осипов 2023-02-06 Пробуем откорректировать
	Элементы.СтраницыИнформации.Высота = 10;
	Элементы.СтраницыИнформации.РастягиватьПоВертикали = ложь;

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

Среда: Розница для Беларуси, редакция 2.2. Локализация для Республики Беларусь: СООО «1С-Минск». (2.2.11.2)
Объем: 1 час.

fixin

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

Читайте также:

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

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