Всем добрый!
Пожалуйста помогите решить проблемку.
1С:Предприятие 7.7 (7.70.027) ТиС для Украины (7.70.004)
Задача вот такая:
Нужно найти весь товар в определённом ценовом диапазоне , найти Приходную цену (каждого товара) и вычислить (для каждого товара) Розничную цену в процентах.
напр. Розничная=Приходная+%
Вот код:
//*******************************************
Процедура Сформировать()
Спр = СоздатьОбъект("Справочник.Номенклатура");
Цены = СоздатьОбъект("Справочник.Цены");
Цены.ИспользоватьДату(ТекущаяДата());
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() > 0 Цикл
Если Спр.ЭтоГруппа()=0 Тогда
Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент());
Если Цены.НайтиПоНаименованию("Приходная") = 1 Тогда
Закупка=Цены.Цена;
Если (Закупка>=9.76) и (Закупка<=9.78) Тогда
СуммаНаценки=Закупка*30/100;
Цены.Цена=Закупка+СуммаНаценки;
Сообщить("_____________________________________________");
Сообщить(Спр.ТекущийЭлемент());
Сообщить(Закупка);
Сообщить(Цены.Цена);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Этот код правильно отрабатывается только тогда, когда Приходная цена находится на 5 (или ниже) позиции в списке Цен
Подскажите, где в коде ошибка или что нужно добавить?
P.S. С готовой обработкой «формирование цен» пользуемся. Но немного неудобно с ней работать. Буху приходится 10 раз вызывать и 10 раз забивать диапазон цен От и До. Каждый раз забивать процент наценки. С округлением тоже проблема. Не хочет 1С гибко округлять цены в зависимости от остатка до 25 или 75 коп или округлять цену, так как решит директор.
Например, если цена имеет остаток 25коп., а директору захотелось, чтобы остаток был 75коп.
Также обработка не может определить, что если, после формирования цен Розничная цена имеет меньшую цену, то её нельзя изменять. Обработка просто тупо перепишет уже имеющуюся большую цену на новую меньшую цену.
Вот мне и пришлось написать обработку, где бух в один присест заносит 10 разных диапазонов Приходных цен, на каждый из диапазонов устанавливает процент наценки, желаемое округление и указывает, нужно ли перезаписывать большую цену на меньшую.
Все отлично работает, кроме этой проблемы, которую я описал.
Код который тут поместил, это упрощённый вариант, отвечающий за выборку Приходных цен и наценки.
Спасибо.