Удобный выбор документа расчета в РМК. Розница 2.3
У клиента в РМК при нажатии кнопки «Документ расчета (Ctrl+F11)» показывается список документов, привязанный к контрагенту:
Но предварительные чеки пробиваются по заказам с сайта. Фамилии клиентов тут использовать неудобно, удобнее спользовать номер заказа. К тому же даже тут регистрация безналичной оплаты показывается без номера, требуется развернуть окно на весь экран.
Поэтому была сделана небольшая доработка, которая делает отбор по заказу клиента.
Регистрация оплаты связана с заказом по документу-основанию:
Я добавил в форму ФормаВыбораДокументаРасчета обработки РМКУправляемыйРежим поле выбора заказа клиента:
&НаСервере Процедура дор_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка) ДобавляемыеРеквизиты = Новый Массив; ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("дор_ЗаказПокупателя", Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя"), , , Истина)); ИзменитьРеквизиты(ДобавляемыеРеквизиты); Элемент = ЭтаФорма.Элементы.Добавить("дор_ЗаказПокупателя", Тип("ПолеФормы"), Элементы.ГруппаОбщая); Элемент.Вид = ВидПоляФормы.ПолеВвода; Элемент.ПутьКДанным = "дор_ЗаказПокупателя"; Элемент.АвтоМаксимальнаяШирина = ложь; Элемент.Ширина = 12; //Элемент.РастягиватьПоГоризонтали = ложь; Элемент.Заголовок = "Заказ"; Элемент.УстановитьДействие("ПриИзменении", "дор_ЗаказПокупателяПриИзменении"); //Делаем все в одном стиле Элемент.Шрифт = Элементы.Контрагент.Шрифт; Элемент.ШрифтЗаголовка = Элементы.Контрагент.ШрифтЗаголовка; КонецПроцедуры
Обратите внимание, шрифт поля и его заголовка копируется из другого элемента формы для единого стиля.
И при выборе этого поля оставляю только регистрации оплаты по этому заказу:
В данном примере было несколько тестовых регистраций оплаты, поэтому они выводятся все.
Код расширения выглядит так:
&НаКлиенте Процедура дор_ЗаказПокупателяПриИзменении(Элемент) //Устанавливаем контрагента заказа Контрагент = ОбщегоНазначенияРТВызовСервера.ЗначениеРеквизитаОбъекта(ЭтаФорма.дор_ЗаказПокупателя, "Контрагент"); //Делаем стандартное заполнение списка КонтрагентПриИзменении(Элементы.Контрагент); //Фильтруем список документов по заказу дор_ФильтроватьСписокВыбораПоЗаказу(ЭтаФорма.дор_ЗаказПокупателя); КонецПроцедуры &НаСервере Процедура дор_ФильтроватьСписокВыбораПоЗаказу(Заказ) КУдалению = Новый Массив(); //Здесьб будут лишние строки Для Каждого Строка ИЗ Список Цикл Если Заказ <> Строка.ЗаказПокупателя Тогда КУдалению.Добавить(Строка); КонецЕсли; КонецЦикла; //Удаляем лишние строки Для Каждого Строка Из КУдалению Цикл Список.Удалить(Строка); КонецЦикла; КонецПроцедуры
Вот такие заплатки приходится делать, т.к. 1С мало думает об удобстве пользователей.
Среда: 2.3.10.61 Объем: 0.8 час.
Свежие комментарии