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