Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 сен 2024, 22:25

Вопрос по отчету!

Автор didigo, 02 апр 2012, 08:06

0 Пользователей и 1 гость просматривают эту тему.

didigo

Конфигурация  ТиС (Торговля и склад) (7.70.25)
Здравствуйте! Уважаемые форумчане! Возник вопрос по отчету: по ценам, в справочнике-контрагенты есть виды-цен(т.е оптовые розничные и т.д). при выборе в накладной контрагента автоматически выбирается его вид цен! Нужно что бы отчет проверял за указанный период проданную сумму по видам цен(т.е для оптовиков отдельно, для роз отдельно) Никак не могу реализовать! Буду очень рад за помощь!
просьба строго не судить!
:(

sergejK74

"Нужно что бы отчет проверял за указанный период проданную сумму" - есть смутные сомнения, что нужно, но лучше все же уточнить.
Подробнее, какими способами пробовал?
Кнопочка Спасибо - слева!

didigo

Цитата: sergejK74 от 02 апр 2012, 08:15
"Нужно что бы отчет проверял за указанный период проданную сумму" - есть смутные сомнения, что нужно, но лучше все же уточнить.
Подробнее, какими способами пробовал?
никак не могу реализовать!
в номенклатуре тоже указывается цены! т.е оптовая цена, розн цена и т.д!

didigo

Функция глПолучитьЦену(пКонтрагент, пНоменклатура, пДата) Экспорт
   лЦена = 0;
   лЦена = пНоменклатура.Цена.Получить(пДата);
   
   Если ПустоеЗначение(пКонтрагент) = 1 Тогда
      Возврат лЦена;
   КонецЕсли;
      
   Если пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена Тогда
      лЦена = пНоменклатура.Цена.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена1 Тогда
      лЦена = пНоменклатура.Цена1.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена2 Тогда
      лЦена = пНоменклатура.Цена2.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена3 Тогда
      лЦена = пНоменклатура.Цена3.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена4 Тогда
      лЦена = пНоменклатура.Цена4.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена5 Тогда
      лЦена = пНоменклатура.Цена5.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена6 Тогда
      лЦена = пНоменклатура.Цена6.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена7 Тогда
      лЦена = пНоменклатура.Цена7.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена8 Тогда
      лЦена = пНоменклатура.Цена8.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Цена9 Тогда
      лЦена = пНоменклатура.Цена9.Получить(пДата);
   ИначеЕсли пКонтрагент.ВидЦены = Перечисление.ВидыЦен.Себестоимость Тогда
      лЦена = пНоменклатура.Себестоимость;
   КонецЕсли;      
   
   Возврат лЦена;
КонецФункции


Вот так получает цену!

sergejK74

Так и не получил ответа - что нужно поверять отчетом? Правильность применения цен в документах?+
Если ТиС 9.2 не сильно переписанная, то у каждого документа Реализация есть реквизит Договор. От него мы можем получить тип цен. В шапке  самого документа есть реквизит Тип цен.
От нужного по задаче типа цен можно получить цену функцией глобального модуля
Цитировать// глПолучитьЦену(Номенклатура, Тип, НаДату, Единица, Валюта)
//
// Параметры:
//  Номенклатура   - элемент справочника Номенклатура.
//  Тип            - элемент справочника ТипыЦен
//  НаДату         - дата, на которую берется цена
//  Единица         - элемент справочника Единицы
//  Валюта         - элемент справочника Валюты
//  Курс         - курс или дата курса
//  Кратность         - кратность курса
//
// Возвращаемое значение:
//  цену номенклатуры
//
// Описание:
//  Функция возвращает цену номенклатуры в указанном типе цен Тип, на дату НаДату,
//  за единицу измерения Единица, пересчитанную в валюту Валюта по курсу Курс
Все таки напиши, что должен делать этот отчет?
Кнопочка Спасибо - слева!

didigo

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

didigo

приношу свои извинения за некорректный вопрос, просто я не проходил никаких курсов про 1с и вообще в сфере программирования!

sergejK74

Для примера посмотри, что мне выдал конструктор запросов.
Хоть отдаленно похоже на нужный результат?
Кнопочка Спасибо - слева!

didigo

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |ПродСтоимость = Документ.РасходнаяТоваров.СуммаБезНДС;
   |ПродСтоимостьВ = Документ.РасходнаяТоваров.СуммаБезНДС;
   |ТипЦен = Документ.РасходнаяТоваров.ТекущийДокумент.Получатель.ВидЦены;
   |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
   |Функция ПродСтоимостьВСумма = Сумма(ПродСтоимостьВ);
   |Группировка ТипЦен;
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
      // Заполнение полей ТипЦен
      Таб.ВывестиСекцию("ТипЦен");
   КонецЦикла;
   // Заполнение полей "Итого"
   Таб.ВывестиСекцию("Итого");
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры

выводит в пустую таблицу!
помогите плииз!

Теги:

Похожие темы (2)

Рейтинг@Mail.ru

Поиск