Высчитать сумму розницы
|
|
#1 Вт Апр 29, 2008 12:49:54
|
|
|
Привет всем!!! Мне необходимо чтобы в приходной накладной (ПрихНакладная(розница)) помимо суммы по закупочной цене и суммы ндс высчитывалась сумма розницы (как бы будущей прибыли), то есть кол-во умнож на розницу с учетом наценки. Как это реализовать зашел в конфу посмотрел в печатной форме добавил строки но ниче н считает и не получаеться. Я не спрашиваю готовых рецептов . Хочу спросить совета куда и че добавить. Релиз ТоргСклад 1.0 .7.7.012
|
|
За помощь кликните ′Спасибо′ →
|
|
|
NoName
Нерезидент Баланса
|
|
|
|
#2 Вт Апр 29, 2008 14:00:00
|
Сообщить модератору
|
|
Открыть модуль формы документа и посмотреть, где вычисляется значение переменной ПечЦенаРоз - она ведь ТЕКСТОВАЯ, а ты её пытаешься умножать на количество.
Ну и добавить пару своих строчек для вычисления розничной суммы.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#4 Вт Апр 29, 2008 17:36:58
|
|
|
No Avator я примерно так и поступил но в дополнтелном столбце сумма не высчитывалась надо будет ееще посмотреть ,
Ваня я как это ни прискорбно можно сказать здесь за программиста (хотя я сисадмин).
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#5 Вт Апр 29, 2008 17:51:58
|
Сообщить модератору
|
|
Тогда осталось прописать, нужную процедуру,у меня нет торговли в 7 -ке, и я не скажу точно но значение в ячейке должно иметь тип "параметр" и например ЦенаТовары * КоличествоТовары тогда получим сумму, примерно так это и работает, и потом если выгрузга накроется например в бухгалтерию, надо будет проверить Ид. Прописать можно прямо там же где вывод печатной формы. Можно добавить Если Сумма >0 Тогда вывести...КонецЕсли.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#6 Вт Апр 29, 2008 18:30:29
|
Сообщить модератору
|
|
Можно вытащить розничную цену в документ, объявить переменную (А) = (Количество) *(РозничнаяЦена) и параметром вывести на печать. Либо это будет выражение. Создать ТЗ, получить и вывести. Значение ячейки параметр, имя- переменной.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#7 Ср Апр 30, 2008 02:17:24
|
Сообщить модератору
|
|
Ваня говорит: |
Создать ТЗ, получить и вывести. Значение ячейки параметр, имя- переменной. |
Легче прочитать и разобраться в коде типовой (от А до Я), чем понять ваши объяснения. Такое чувство, что ваши мысли пунктиром ложаться
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#8 Ср Апр 30, 2008 08:16:31
|
Сообщить модератору
|
|
Я тоже не понимаю, например -зачем портить приходную накладную, узнать ожидаеммую прибыль, у вас нет возможности увидеть это в документе? Обычно это делается через аналитику, или хотя бы через отчёт, если самодельный -то внешний, чтоб не полетел при первом обновлении, бывает ,когда типа семь нянек на одну прогу. Но зделать реально, про таблицу значений я зря сказал, прощего всего добавить не одну ячейку а вывести все нужные дополнительные данные в таблицу, как это делается ,- легко понять в конструкторе, попробуйте полностью новый док создать, а результат получиться если в конфигураторе вставлять в свойства ячейки "выражения" например (СсуммаРозница)-(СсумаОпт), потому что, это не эксель, хотя адрес ячейки используется, и таблица похожая.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
NoName
Нерезидент Баланса
|
|
|
|
#9 Ср Апр 30, 2008 08:53:38
|
Сообщить модератору
|
|
Anonymous говорит: |
Легче прочитать и разобраться в коде типовой (от А до Я), чем понять ваши объяснения. Такое чувство, что ваши мысли пунктиром ложаться |
Легче понять речь Черномырдина, чем его объяснения.
Добавлено спустя 10 минут 51 секунду:
Работы - на 5 минут.
Открываем модуль формы.
В процедуре Печать() находим такую конструкцию:
ПечЦенаРоз = глФРМ(глПересчет(РозничнаяЦена,Валюта,Курс,Константа.ВалютаБухУчета,ДатаДок));
После нее вставляем свою строчку:
НашаРозничнаяЦена=глПересчет(РозничнаяЦена,Валюта,Курс,Константа.ВалютаБухУчета,ДатаДок)
Дальше находим такую строку:
ПечЦенаРоз = глФРМ(РозничнаяЦена);
После нее вставляем свою строчку:
НашаРозничнаяЦена=РозничнаяЦена;
И ВСЁ!
После этого в печатной форме можно спокойно написать НашаРозничнаяЦена*Количество
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#10 Ср Апр 30, 2008 10:09:32
|
|
|
спасибо всем за участие. Ваня я тоже не в восторге от такого решения, это просто наш шеф дал "задание" нашему одному буху высчитать сумму всего прихода за месяц+наценка в рознице (в суммовом выражений), получаеться как ожидаемая прибыль от партий, такого не получищь не в одном отчете (не по продажам, не по партиям).
Ваня говорит: |
у вас нет возможности увидеть это в документе? |
В документе а можно увидеть , а за месяц? то есть в доках есть скажем колонка СУММА Розницы, она выводит это в екселл и высчитывает сумму.
NoName говорит: |
ПечЦенаРоз = глФРМ(РозничнаяЦена);
После нее вставляем свою строчку:
НашаРозничнаяЦена=РозничнаяЦена; |
Я примерно так поступил, но видимо че то не доработал,
а НашаРозничнаяЦена это дополнительная колонка в документе ?
его надо обьявлять как переменную?
|
|
За помощь кликните ′Спасибо′ →
|
|
|
NoName
Нерезидент Баланса
|
|
|
|
#11 Ср Апр 30, 2008 10:55:28
|
Сообщить модератору
|
|
daysemsk говорит: |
это просто наш шеф дал "задание" нашему одному буху высчитать сумму всего прихода за месяц+наценка в рознице (в суммовом выражений), получаеться как ожидаемая прибыль от партий, такого не получищь не в одном отчете (не по продажам, не по партиям) |
Наконец-то сознался. Держался до последнего, как партизан.
В типовых отчетах такого действительно не увидишь, но это не значит, что надо ломать печатную форму приходной накладной. Лучше сделать внешний отчет. Работы здесь для специалиста уже не на пять минут, но максимум на пару часов.
Добавлено спустя 22 минуты 12 секунд:
Поправлюсь.
Не надо два часа, и спеца не надо.
На ИТС есть "Универсальный отчет по регистру" - REGPRINT.ERT
Им можно всё вытащить из регистра "ПартииНаличие"
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#12 Ср Апр 30, 2008 11:22:31
|
|
|
No Avator спасибо за признание того, что я все таки не такой тупой что не могу рещить простейщую задачу, попробовал сделать через Конструктор запросов что то наклевалось, но он высчитал тока сумму розницы*Ед-цу (без учета всего кол-ва оприходованого товара в накладной). Но для меня это уже прогресс. Скачал учебники по языку 1с как раз по отчетам, сказал буху когда решу задачу можете меня называть меня программистом, а не сисадмином.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#13 Ср Апр 30, 2008 13:03:01
|
|
|
NoName говорит: |
На ИТС есть "Универсальный отчет по регистру" - REGPRINT.ERT
Им можно всё вытащить из регистра "ПартииНаличие" |
У меня нет подписки , может кто нить скинет ?
Вот что у меня получилось с моим запросом сегодня
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|РозничнаяЦена = Документ.ПоступлениеТоваровРозница.РозничнаяЦена;
|Функция РозничнаяЦенаСумма = Сумма(РозничнаяЦена);
|Группировка РозничнаяЦена;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей РозничнаяЦена
Таб.ВывестиСекцию("РозничнаяЦена");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
И выводи мне непонятную сумму, я даже вручную (на калькуляторе) все проверил не считает как мне надо Цена*Колво=Сумма.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
NoName
Нерезидент Баланса
|
|
|
|
#14 Ср Апр 30, 2008 13:47:35
|
Сообщить модератору
|
|
daysemsk говорит: |
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|РозничнаяЦена = Документ.ПоступлениеТоваровРозница.РозничнаяЦена;
|Функция РозничнаяЦенаСумма = Сумма(РозничнаяЦена);
|Группировка РозничнаяЦена;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
|
Во-первых, ты складываешь цену, а надо сумму
Во-вторых, нет проверки на проведенность документа
В-третьих, сумма может быть в валюте.
Кроме того, глупо строить отчёт по документам, там, где можно по регистрам.
Открой ту же "Ведомость по партиям" и посмотри, как надо.
И забудь про конструктор запроса - он в семёрке тупой.
А лучше набери в яндексе "Универсальный отчет по регистру" - ВСЁ ДАВНО ПРИДУМАНО.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#15 Ср Апр 30, 2008 14:03:34
|
Сообщить модератору
|
|
Цитата: |
И забудь про конструктор запроса - он в семёрке тупой. |
Хм... это единственно, где я не соглашусь. Код он дает вполне корректный, тем более в таких простых случаях.
daysemsk, лучше сходи на mista.ru - раз, и найди книжку "Введение в конфигурирование" - два
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#16 Чт Май 01, 2008 12:26:07
|
|
|
Еще раз здраствуйте !!! У меня чето не получаеться попробовал на регистрах ПартииНаличие так там вообще выходит пустая форма
Код
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
Запрос=СоздатьОбъект("Запрос");
ТекстЗапроса=
"//{{ЗАПРОС (Сформировать)
|Период с Дата1 по Дата2; (выбираеться в форме)
|ЦенаПрод = Регистр.ПартииНаличие.ЦенаПрод;
|Количество = Регистр.ПартииНаличие.Количество;
|Функция Сум =Сумма(ЦенаПрод*Количество);
|Группировка ЦенаПрод;
|"//}}ЗАПРОС
;
Что я делаю не так посмотрел в учебниках ничего нового не нащел или не понял. Есть и другие варианты но этот я чувствую близок к истине.
Как теперь скопленную в функций Сум сумму вытащить (рассчтиать) в форму.
Форма выходит абсолютно пустая
|
|
За помощь кликните ′Спасибо′ →
|
|
|
_Митрич
Нерезидент Баланса
|
|
|
|
#17 Чт Май 01, 2008 12:36:47
|
Сообщить модератору
|
|
daysemsk, я ж не зря посоветовал пойти именно на mista.ru
Даю цитату:
Цитата: |
Общая схема выполнения запроса
Запрос -- это обращение к системе 1С с просьбой выбрать определенные данные из базы данных. Например, с помощью запроса можно быстро организовать выбор всех сотрудников с определенной должностью. Для организации запроса необходимо выполнить следующие действия.
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "<текст запроса на особом языке запросов>"
Запрос.Выполнить(ТекстЗапроса);
//далее идет обработка результатов запроса |
Т.е. у Вас есть СоздатьОбъект("Запрос")
у Вас есть ТекстЗапроса
НО! У Вас нету Запрос.Выполнить(ТекстЗапроса); - т.е. запрос не делается, это во-первых,
И обработки результатов запроса у Вас тоже нет.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
_Митрич
Нерезидент Баланса
|
|
|
|
#18 Чт Май 01, 2008 12:38:38
|
Сообщить модератору
|
|
Позволю себе дать маленький совет.
Выполните на mista.ru два задания - Сначала Пошаговый пример
Затем Мини-склад
Решения этих двух примеров вполне достаточно, чтобы сдвинуться с мертвой точки. Займет это все часа четыре - час на первый пример, и три часа - на второй.
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#19 Чт Май 01, 2008 16:17:18
|
|
|
Даю конец кода в модуле ....
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Количество
Таб.ВывестиСекцию("Количество");
Пока Запрос.Группировка(3) = 1 Цикл
// Заполнение полей Розница
Таб.ВывестиСекцию("Розница");
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
Добавлено спустя 1 минуту 44 секунды:
посеридине было
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|
#20 Чт Май 01, 2008 19:25:36
|
Сообщить модератору
|
|
Ну давайте попробуем отладить по порядку.
Попробуем вот так:
.................
Прошло 20 минут
.................
Что-то я не пойму, чего Вы хотите добиться....
Группировка в запросе по ЦенаПрод...... ЗАЧЕМ?
У регистра "ПартииНаличие" какие есть измерения, ресурсы и реквизиты?
|
|
За помощь кликните ′Спасибо′ →
|
|
|
|