Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Нужна помощь с отчетом          
sshd Подменю пользователя
сообщение 17.12.10, 19:41
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Создаю отчет, завис на первом шагу
Запрос выглядит так:

    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ЦенаРозница = Документ.Реализация.Цена;
    |ЦенаПокупная = Справочник.Нормативы.Товар.ПокупнаяЦена;
    |Функция ЦенаРозницаСумма = Сумма(ЦенаРозница-Ценапокупная);
    |"//}}ЗАПРОС

Как убрать из функции ЦенаРозницаСумма() функцию Сумма()? пробовал уже разными методами, никак не получаеться...

Zaval Подменю пользователя
сообщение 17.12.10, 19:50
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Клавиша Del не помогает?

sshd Подменю пользователя
сообщение 17.12.10, 21:18
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Если убрать "сумма" тогда выдает ошибку

Функция ЦенаРозницаСумма = (ЦенаРозница-Ценапокупная);

или так
Функция ЦенаРозницаСумма = ЦенаРозница-Ценапокупная;


Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.новый1.Форма.Модуль(17)}: Функция ЦенаРозницаСумма =  <<?>> ЦенаРозница-Ценапокупная;
Запрос[5] : Неожиданное выражение 'ЦенаРозница'

Vofka Подменю пользователя
сообщение 17.12.10, 21:22
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Ну конечно, так нельзя. Попробуйте так (не проверял):

ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ЦенаРозница = Документ.Реализация.Цена;
    |ЦенаПокупная = Справочник.Нормативы.Товар.ПокупнаяЦена;
    |ХЗ = Документ.Реализация.Цена - Справочник.Нормативы.Товар.ПокупнаяЦена;
    |"//}}ЗАПРОС

Zaval Подменю пользователя
сообщение 17.12.10, 21:31
Сообщение #5

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

В сабже весь текст запроса?
И чем мешает Сумма?

sshd Подменю пользователя
сообщение 17.12.10, 21:53
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 17.12.10, 22:22) *
Ну конечно, так нельзя. Попробуйте так (не проверял):

Выдает такое:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.новый1.Форма.Модуль(17)}: ХЗ = Документ.Реализация.Цена  <<?>> - Справочник.Нормативы.Товар.ПокупнаяЦена;
Запрос[5] : Ожидается ';' перед '-'

Пробовал объявлять переменную хз и так не идёт



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

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


ИМХО функция сумма() как-то ковыряет результат, для примера ЦенаРозница 70 -Ценапокупная 20, выдает результат в таблице 25. Если ставлю ЦенаРозница 135 тогда выдает результат 90.

Vofka Подменю пользователя
сообщение 17.12.10, 21:58
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Если это необязательно в запросе делать, то вычислите эту цену перед выводом секции таблицы.

Zaval Подменю пользователя
сообщение 17.12.10, 22:49
Сообщение #8

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Так, что-то мне нехорошо стало....

Вы выбираете реквизит Цена из документа Реализация.
Затем выбираете реквизит ЦенаПокупная из первого попавшегося элемента справочника Нормативы.

Какая связь между этими двумя цифрами и что Вам дает их разность?

sshd Подменю пользователя
сообщение 17.12.10, 23:15
Сообщение #9

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Я занимаюсь заправкой картриджей, хотелось бы что-бы этот отчет показал мне прибыль за период. В Excel-e устал работать..

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

igmig65 Подменю пользователя
сообщение 17.12.10, 23:16
Сообщение #10

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

Ваш запрос срабатывет? если да, то интересно что он вам возвращает, в нем нет никакой логики. Что вы хотите получить из запроса? ПОДРОБНО.

Zaval Подменю пользователя
сообщение 17.12.10, 23:24
Сообщение #11

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

И что, ни один отчет ( "Продажи" или что-то на темму Прибыли/Оборота) не показывает нужную информацию? Поройтесь с пристрастием в настройках - должно быть.

Что до запроса, то там нужна связь между доком и справочником и хотя бы одна функция, если суммировать не нужно - поставить "без итогов"

igmig65 Подменю пользователя
сообщение 17.12.10, 23:26
Сообщение #12

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

А что такое Товар в спр.Нармативы, в смысле тип значения Справочник - какой? там я так понял есть рекв. покупнаяЦена, а Розничная цена есть? Если да то вам нужен товар из документа реализация, чтоб получить покупную цену
    |ЦенаРозница = Документ.Реализация.Цена;
    |ЦенаПокупная = Документ.Реализация.Товар.ПокупнаяЦена;
    |Функция ЦенаРозницаСумма = (ЦенаРозница-Ценапокупная);

sshd Подменю пользователя
сообщение 17.12.10, 23:40
Сообщение #13

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

У Справочник.Нормативы.Товар тип значения = Справочник. Каталог

На Ваш код тоже ругается,

Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.новый1.Форма.Модуль(17)}: Функция ЦенаРозницаСумма =  <<?>> (ЦенаРозница-Ценапокупная);
Запрос[5] : Ожидается имя переменной или ее составляющая перед '('

igmig65 Подменю пользователя
сообщение 18.12.10, 2:37
Сообщение #14

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

Пардон,
Функция ЦенаРозницаСумма = Сумма(ЦенаРозница-Ценапокупная);

sshd Подменю пользователя
сообщение 18.12.10, 11:51
Сообщение #15

Молчаливый
*
Группа: Пользователи
Сообщений: 6
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(igmig65 @ 18.12.10, 3:37) *
Пардон,
Функция ЦенаРозницаСумма = Сумма(ЦенаРозница-Ценапокупная);

Спасибо icon_beer17.gif Пошло

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

igmig65 Подменю пользователя
сообщение 18.12.10, 12:35
Сообщение #16

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

Вообще, этот запрос вам вернет усредненные показатели за период:
Цитата
|Период с ВыбНачПериода по ВыбКонПериода;

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

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

Спасибо сказали: sshd,

igmig65 Подменю пользователя
сообщение 18.12.10, 12:37
Сообщение #17

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 613
Из: Донецкая обл
Спасибо сказали: 168 раз
Рейтинг: 140.9

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

Atali Подменю пользователя
сообщение 06.02.11, 18:41
Сообщение #18

Общительный
**
Группа: Пользователи
Сообщений: 10
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(sshd @ 17.12.10, 20:41) *
Создаю отчет, завис на первом шагу
Запрос выглядит так:

    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ЦенаРозница = Документ.Реализация.Цена;
    |ЦенаПокупная = Справочник.Нормативы.Товар.ПокупнаяЦена;
    |Функция ЦенаРозницаСумма = Сумма(ЦенаРозница-Ценапокупная);
    |"//}}ЗАПРОС

Как убрать из функции ЦенаРозницаСумма() функцию Сумма()? пробовал уже разными методами, никак не получаеться...

    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ЦенаРозница = Документ.Реализация.Цена;
    |ЦенаПокупная = Справочник.Нормативы.Товар.ПокупнаяЦена;
    |Функция ЦенаРозницаСумма = Сумма(ЦенаРозница);    
              |Функция ЦенаПокупнаяСумма = Сумма(Ценапокупная);
    |"//}}ЗАПРОС

а далее делаеТЕ с ними что ВАМ надо

Anderson Подменю пользователя
сообщение 07.02.11, 16:20
Сообщение #19

Говорящий
***
Группа: Пользователи
Сообщений: 91
Из: Одесса
Спасибо сказали: 12 раз
Рейтинг: 14.4

Предполагаю что следующей темой будет - "Почему отчет показавает неправильные суммы" или "Я работаю в минус.Почему?".
Уважаемый автор Вы вообще в корне не имеете знаний по построению учета и бизнес-процессов. Считайте лучше в Экселе или учите матчасть.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.05.24, 16:57
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!