Цена позиции чека отличается от цены прайс листа

Материал из WiKi - IQ Company
Версия от 13:31, 22 октября 2026; IQ Bot (обсуждение | вклад) (IQ_Bot: статья из задачи 000014174 (Права доступа))
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Статья из закрытой задачи программиста (учётная запись IQ Bot). Существующие статьи не перезаписывались.

Проблема

Цена позиции чека отличается от цены прайс листа

Решение

Необходима была небольшая доработка:

&НаСервере &ИзменениеИКонтроль("ПроверитьЦеныПоПрайсЛистуЛокализация") Процедура Расш1_ПроверитьЦеныПоПрайсЛистуЛокализация()

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

…

Служебное

  • Тема: Права доступа
  • Задача: 000014174
  • Статус: Сдана клиенту
  • Ответ: Гниловский Алексей