Всем привет, хочу разобраться в функционале по расчету себестоимости. У меня имеется в форме калькуляции несколько вариантов расчета:
1) Вид цен “Учетная”
2) Плановая Себестоимость, сам создал
Сложность в том что, когда задают Вид цен “ Плановая Себестоимость ”, себестоимость не считается. Но когда задаю Вид цен “Учетная”, себестоимость рассчитывается. В коде бросается в глаза эта строчка
Для Вид цен “Учетная”, условие срабатывает и ТаблицаПроверки не заполняется. При этом себестоимость рассчитывается. А у Вид цен “ Плановая Себестоимость, это условие не срабатывает и заполняется ТаблицаПроверки и себестоимость не рассчитывается.
Такое ощущение, что код берет данные из разных мест, при этом на форме ДанныеЗаказа.Калькуляция найти не могу, что бы понять откуда берутся данные, может не туда смотрю?
Ниже выложил полностью код
1) Вид цен “Учетная”
2) Плановая Себестоимость, сам создал
Сложность в том что, когда задают Вид цен “ Плановая Себестоимость ”, себестоимость не считается. Но когда задаю Вид цен “Учетная”, себестоимость рассчитывается. В коде бросается в глаза эта строчка
Если ТипЗнч(СтрокаТабличнойЧасти.Номенклатура)<>Тип("СправочникСсылка.Номенклатура")
Для Вид цен “Учетная”, условие срабатывает и ТаблицаПроверки не заполняется. При этом себестоимость рассчитывается. А у Вид цен “ Плановая Себестоимость, это условие не срабатывает и заполняется ТаблицаПроверки и себестоимость не рассчитывается.
Такое ощущение, что код берет данные из разных мест, при этом на форме ДанныеЗаказа.Калькуляция найти не могу, что бы понять откуда берутся данные, может не туда смотрю?
СтрокиПроверки = ДанныеЗаказа.Калькуляция.Выгрузить();
Ниже выложил полностью код
&НаСервере
Процедура ПоказатьОшибкиРасчетаСебестоимости(Источник = Неопределено, КлючСвязи = Неопределено)
ТаблицаПроверки = ДанныеЗаказа.Калькуляция.Выгрузить().СкопироватьКолонки("Номенклатура, Характеристика, РучноеИзменение, СебестоимостьЕдиницы");
Если КлючСвязи = Неопределено Тогда
СтрокиПроверки = ДанныеЗаказа.Калькуляция.Выгрузить();
Иначе
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("Источник", Источник);
СтруктураПоиска.Вставить("КлючСвязи", КлючСвязи);
СтрокиПроверки = ДанныеЗаказа.Калькуляция.Выгрузить(СтруктураПоиска);
КонецЕсли;
Для каждого СтрокаТабличнойЧасти Из СтрокиПроверки Цикл
Если ТипЗнч(СтрокаТабличнойЧасти.Номенклатура)<>Тип("СправочникСсылка.Номенклатура")
ИЛИ СтрокаТабличнойЧасти.СебестоимостьЕдиницы<>0
ИЛИ СтрокаТабличнойЧасти.РучноеИзменение Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТаблицаПроверки.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТабличнойЧасти);
КонецЦикла;
ТаблицаПроверки.Свернуть("Номенклатура, Характеристика, РучноеИзменение, СебестоимостьЕдиницы");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаПроверки", ТаблицаПроверки);
ПоказатьПрикрепленные файлы:

По теме из базы знаний
- Как читать чужой код? Часть 2. Доработка типовой конфигурации. Обновление доработанной типовой конфигурации
- ТЗ как обязательный атрибут в автоматизации. Реальные кейсы из 16-ти летнего опыта
- Зачем и как читать чужой код? Какой результат ожидаем получить? Основные подходы
- ДРАКОН – практика разработки и поддержка 1С:ERP командой подрядчиков и командой заказчика. История одной задачи
- Код-ревью с помощью ИИ. Текущие возможности и тренды
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот