Цена позиции чека отличается от цены прайс листа
Статья из закрытой задачи программиста (учётная запись IQ Bot). Существующие статьи не перезаписывались.
Проблема
Цена позиции чека отличается от цены прайс листа
Решение
Необходима была небольшая доработка:
&НаСервере &ИзменениеИКонтроль("ПроверитьЦеныПоПрайсЛистуЛокализация") Процедура Расш1_ПроверитьЦеныПоПрайсЛистуЛокализация()
Если ЗначениеЗаполнено(Объект.Ссылка) Тогда
СтруктураДействий = Новый Структура;
Если КонтролироватьАссортимент Тогда СтруктураДействий.Вставить( "ЗаполнитьЦенуПродажиПоАссортименту", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныПоАссортиментуВСтрокеТЧ(Объект)); ИначеЕсли ИспользуетсяЦенообразование25 Тогда СтруктураДействий.Вставить( "ЗаполнитьУсловияРозничныхПродаж", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияУсловийРозничныхПродажВСтрокеТЧ(Объект, ОбъектХраненияУсловийПродаж)); Иначе СтруктураДействий.Вставить( "ЗаполнитьЦенуПродажи", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныРозницаВСтрокеТЧ(Объект)); КонецЕсли;
Если КонтролироватьАссортимент Тогда
СтруктураДействий.Вставить("ПроверитьАссортиментСтроки", ПараметрыПроверкиАссортимента(Объект));
КонецЕсли;
ТаблицаТоваров = Объект.Товары.Выгрузить();
ОбрабатываемыеСтроки = Новый Массив; Для Каждого СтрокаТаблицы Из ТаблицаТоваров Цикл ОбрабатываемыеСтроки.Добавить(СтрокаТаблицы); КонецЦикла;
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ( ОбрабатываемыеСтроки, СтруктураДействий, ТаблицаТоваров);
Для Каждого СтрокаСЦенойПрайса Из ОбрабатываемыеСтроки Цикл
//++ Локализация ИмяРеквизитаЕстьОшибкаВЦенеПоМРЦ = РозничныеПродажиКлиентСерверЛокализация.ИмяРеквизитаЕстьОшибкаВЦенеПоМРЦ(); Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(ЭтотОбъект, ИмяРеквизитаЕстьОшибкаВЦенеПоМРЦ) И ЭтотОбъект[ИмяРеквизитаЕстьОшибкаВЦенеПоМРЦ] = Истина Тогда
Если Не КонструкторИСМПОбщегоНазначенияКлиентСервер.ДоступноПолеМРЦ(СтрокаСЦенойПрайса.ВидПродукцииИС) Тогда Продолжить; КонецЕсли; КонецЕсли; //-- Локализация
НомерСтроки = СтрокаСЦенойПрайса.НомерСтроки; СтрокаТЧТовары = Объект.Товары[НомерСтроки - 1]; #Удаление Если СтрокаСЦенойПрайса.Цена <> СтрокаТЧТовары.Цена Тогда
ТекстСообщения = СтрШаблон(
НСтр("ru = 'В строке №%1 для ""%2"" цена позиции чека - ""%3"" отличается от цены прайс-листа - ""%4""'"),
НомерСтроки,
СтрокаТЧТовары.Номенклатура,
СтрокаТЧТовары.Цена,
СтрокаСЦенойПрайса.Цена);
РозничныеПродажиВызовСервера.ЗаписьВЖурналРегистрации( ТекстСообщения, "ОткрытиеОтложенногоЧека", Объект.Ссылка); ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
КонецЕсли; #КонецУдаления
…
Служебное
- Тема: Права доступа
- Задача: 000014174
- Статус: Сдана клиенту
- Ответ: Гниловский Алексей