gifts2017

Расчет плановой себестоимости в УПП 1.3

Опубликовал Руслан Титов (Программе) в раздел Обработки - Ценообразование, прайсы

Измененная обработка расчета плановой себестоимости, созданная на основе типовой

Обработка, позволяющая достаточно быстро сформировать плановые цены на продукцию, выпускаемую по спецификациям и тех.процессам, с любым количеством вложений в продукции.

Удобства обработки:

1. Обработка сама производит разузловку продукции и полуфабрикатов по спецификациям.

2. В дереве отображаются тех. процессы, привязанные к спецификациям.

3. Регистрация цен производится нажатием одной кнопки, после чего все плановые цены (исключая покупные изделия) будут зарегистрированны в системе.

Как работает:

1. На первой вкладке обработки задаем отбор по полям: Номенклатура, Вид номенклатуры, Вид воспроизводства.

2. На той же вкладке заполняем поля: Дата спецификации, Тип цен расчета.

3. После нажимаем Далее, выводится список отобранной номенклатуры, проверям и жмем Далее.

4. Последний этап, на котором данные по плановой цене конечной детальки будут сформированы. После просмотра дерева жмем Зарегистрировать цены или просто закрываем обработку. 

Скачать файлы

Наименование Файл Версия Размер
Расчет плановой себестоимости 34
.epf 20,69Kb
12.03.15
34
.epf 20,69Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Василий Коровин (vasyak319) 12.03.15 17:19
А как она отнесётся к наличию у номенклатуры нескольких спецификаций?
2. Руслан Титов (Программе) 12.03.15 17:54
(1) vasyak319,
что вы понимаете под несколькими спецификациями? насколько я знаю утвержденная и активная может быть только одна!
3. Spektr Тунда (Spektr) 12.03.15 17:58
А как отрабатывает для спецификации "Установить основной на дату"?
4. Руслан Титов (Программе) 12.03.15 18:04
(3) Spektr,

я немного не понял вопроса! если как обработка берет то так же как и в типовой, первая закладка почти идентична типовой.
5. Василий Коровин (vasyak319) 12.03.15 19:28
(2) Программе, под несколькими спецификациями я понимаю несколько спецификаций. Не вижу ничего, что мешает иметь хоть миллион утверждённых и активных одновременно.
6. Руслан Титов (Программе) 12.03.15 19:48
(5) vasyak319,

да но основная-то одна спецификация!
7. Павел Заяш (Pavl0) 27.03.15 10:55
Обработка в таком виде у меня не запустилась. Судя по всему, у вас доработанная конфигурация. В обработке куча вызовов модуля _ОбщийМодульКлиент, которого у меня нет.
Перенесите пожалуйста процедуры из этого модуля в обработку, или выложите здесь код этого модуля.
В текущем виде обработку использовать не получается.
8. Руслан Титов (Программе) 27.03.15 11:54
блин я совсем забыл про них очень извенюсь.
для работы нужно;
1. закоментировать процедуры формы
Процедура ТаблицаНоменклатурыСпецификацияНоменклатурыНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПолученнаяФорма = ПолучитьОбщуюФорму("_ФормаВыбораСпецификации");
Если ЭлементыФормы.ТаблицаНоменклатуры.ТекущаяСтрока.Номенклатура <> Справочники.Номенклатура.ПустаяСсылка() Тогда
ПолученнаяФорма.УстановитьКритерииОтбора(ЭлементыФормы.ТаблицаНоменклатуры.ТекущаяСтрока.Номенклатура);
КонецЕсли;
ПолученнаяФорма = ПолученнаяФорма.ОткрытьМодально();
Элемент.Значение = ПолученнаяФорма;
2. добавить в процедуру в модуль объекта
Функция ПолучитьСпецификацию(Номенклатура, Характеристика) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОсновныеСпецификацииНоменклатурыСрезПоследних.СпецификацияНоменклатуры
|ИЗ
| РегистрСведений.ОсновныеСпецификацииНоменклатуры.СрезПоследних(&МоментВремени, ) КАК ОсновныеСпецификацииНоменклатурыСрезПоследних
|ГДЕ
| ОсновныеСпецификацииНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
| И ОсновныеСпецификацииНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = &Характеристика";

Запрос.УстановитьПараметр("МоментВремени", ТекущаяДата());
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Характеристика", Характеристика);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество()<>0 Тогда
ВыборкаДетальныеЗаписи.Следующий();
Возврат ВыборкаДетальныеЗаписи.СпецификацияНоменклатуры;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции

КонецПроцедуры

3. и добавить тутаже
Функция ПолучитьЦену(Номенклатура, Характеристика, ТипЦен, КоличествоНаЕд, ДатаФормирования = Неопределено) Экспорт

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&МоментВремни, ) КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура
| И ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = &Характеристика
| И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен";

Если ДатаФормирования = Неопределено Тогда
Запрос.УстановитьПараметр("МоментВремни", ТекущаяДата());
Иначе
Запрос.УстановитьПараметр("МоментВремни", КонецДня(ДатаФормирования));
КонецЕсли;
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Характеристика", Характеристика);
Запрос.УстановитьПараметр("ТипЦен", ТипЦен);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество()<>0 Тогда
ВыборкаДетальныеЗаписи.Следующий();
Цена = Окр(КоличествоНаЕд * ВыборкаДетальныеЗаписи.Цена, 2);
Возврат Цена
Иначе
Возврат Неопределено;
КонецЕсли;

КонецФункции

4. следовательно все вызовы процедур надо подправить.

еще раз приношу свои извенения, не учел!
9. Сергей Буланкин (bulas) 04.08.15 06:21
Колонка количество, в любом случае, не помешает.
10. Руслан Титов (Программе) 04.08.15 10:15
(9) bulas,
это уже на ваше усмотрение хотите выводите, мне она была не к чему. да и добавить ее не так сложно будет.
11. Ийон Тихий (cool.vlad4) 04.08.15 10:50
(8) Программе, а зачем добавлять функцию ПолучитьЦену( , если мне не изменяет память (под рукой нет конф-ций, не могу посмотреть) , то в типовом модуле Ценообразование должна быть подобная функция ПолучитьЦенуНоменклатуры (которая кстати более универсальная) (и кстати ОкруглитьЦену там тоже есть)
12. Руслан Титов (Программе) 04.08.15 14:26
(11) cool.vlad4,

если мне не изменяет память то там функция получает цену на 1 единицу, а у меня она получает на определено количество по спецификации. да и так для информации в типовой обработке "Расчет плановой себестоимости", обращение к этому общему модулю идет только для округления цены не более того а механизм расчета самой цены там свой. Отсюда и решение написать свою функцию, если вам не нравится то можете к моей обработке попробовать приляпать типовые функции.
16. Artem vinogradov (vinogradov_ar) 20.04.16 09:51
ошибка
{ВнешняяОбработка._РасчетПлановойСебестоимости.МодульОбъекта(203,19)}: Переменная не определена (_ОбщийМодульКлиент)
Спецификация = <<?>>_ОбщийМодульКлиент.ПолучитьСпецификацию(СтрокаПродукции.Номенклатура, СтрокаПродукции.ХарактеристикаНоменклатуры);
{ВнешняяОбработка._РасчетПлановойСебестоимости.МодульОбъекта(267,34)}: Переменная не определена (_ОбщийМодульКлиент)
НоваяСтрока2.Спецификация = <<?>>_ОбщийМодульКлиент.ПолучитьСпецификацию(СтрокаСтруктуры.Номенклатура, СтрокаСтруктуры.Характеристика);
{ВнешняяОбработка._РасчетПлановойСебестоимости.МодульОбъекта(337,23)}: Переменная не определена (_ОбщийМодульКлиент)
НоваяСтрока.Цена = <<?>>_ОбщийМодульКлиент.ПолучитьЦену(СтрокаВыборки.Номенклатура, СтрокаВыборки.ХарактеристикаНоменклатуры, ТипЦеныРасчета, СтрокаВыборки.КоличествоНаЕд);
17. Руслан Титов (Программе) 20.04.16 12:55
(16) vinogradov_ar,
в комментариях выше
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа