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