» Казахстанский Бухгалтерский форум www.balans.kz

Высчитать сумму розницы

 
Показать сообщения:
Начиная со старых .::. Начиная с новых


Автор: daysemsk
Добавлено: #1  Вт Апр 29, 2008 12:49:54
Заголовок сообщения: Высчитать сумму розницы

Привет всем!!! Мне необходимо чтобы в приходной накладной (ПрихНакладная(розница)) помимо суммы по закупочной цене и суммы ндс высчитывалась сумма розницы (как бы будущей прибыли), то есть кол-во умнож на розницу с учетом наценки. Как это реализовать зашел в конфу посмотрел в печатной форме добавил строки но ниче н считает и не получаеться. Я не спрашиваю готовых рецептов . Хочу спросить совета куда и че добавить. Релиз ТоргСклад 1.0 .7.7.012


Автор: NoName
Добавлено: #2  Вт Апр 29, 2008 14:00:00
Заголовок сообщения:

Открыть модуль формы документа и посмотреть, где вычисляется значение переменной ПечЦенаРоз - она ведь ТЕКСТОВАЯ, а ты её пытаешься умножать на количество.
Ну и добавить пару своих строчек для вычисления розничной суммы.



Автор: Ваня
Добавлено: #3  Вт Апр 29, 2008 17:01:22
Заголовок сообщения:

Помоему лучше программиста попросить, во всяком случае не забудьте подстраховаться сохранением, для востанавления если придётся.


Автор: daysemsk
Добавлено: #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 минут.
Открываем модуль формы.
В процедуре Печать() находим такую конструкцию:

ПечЦенаРоз = глФРМ(глПересчет(РозничнаяЦена,Валюта,Курс,Константа.ВалютаБухУчета,ДатаДок));

После нее вставляем свою строчку:

НашаРозничнаяЦена=глПересчет(РозничнаяЦена,Валюта,Курс,Константа.ВалютаБухУчета,ДатаДок)

Дальше находим такую строку:

ПечЦенаРоз = глФРМ(РозничнаяЦена);

После нее вставляем свою строчку:

НашаРозничнаяЦена=РозничнаяЦена;

И ВСЁ!
После этого в печатной форме можно спокойно написать НашаРозничнаяЦена*Количество



Автор: daysemsk
Добавлено: #10  Ср Апр 30, 2008 10:09:32
Заголовок сообщения:

спасибо всем за участие. Ваня я тоже не в восторге от такого решения, это просто наш шеф дал "задание" нашему одному буху высчитать сумму всего прихода за месяц+наценка в рознице (в суммовом выражений), получаеться как ожидаемая прибыль от партий, такого не получищь не в одном отчете (не по продажам, не по партиям).
Ваня говорит:
у вас нет возможности увидеть это в документе?
В документе а можно увидеть , а за месяц? то есть в доках есть скажем колонка СУММА Розницы, она выводит это в екселл и высчитывает сумму.

NoName говорит:
ПечЦенаРоз = глФРМ(РозничнаяЦена);

После нее вставляем свою строчку:

НашаРозничнаяЦена=РозничнаяЦена;


Я примерно так поступил, но видимо че то не доработал,
а НашаРозничнаяЦена это дополнительная колонка в документе ?
его надо обьявлять как переменную?



Автор: NoName
Добавлено: #11  Ср Апр 30, 2008 10:55:28
Заголовок сообщения:

daysemsk говорит:
это просто наш шеф дал "задание" нашему одному буху высчитать сумму всего прихода за месяц+наценка в рознице (в суммовом выражений), получаеться как ожидаемая прибыль от партий, такого не получищь не в одном отчете (не по продажам, не по партиям)


Наконец-то сознался. Держался до последнего, как партизан.

В типовых отчетах такого действительно не увидишь, но это не значит, что надо ломать печатную форму приходной накладной. Лучше сделать внешний отчет. Работы здесь для специалиста уже не на пять минут, но максимум на пару часов.

Добавлено спустя 22 минуты 12 секунд:

Поправлюсь.
Не надо два часа, и спеца не надо.
На ИТС есть "Универсальный отчет по регистру" - REGPRINT.ERT
Им можно всё вытащить из регистра "ПартииНаличие"



Автор: daysemsk
Добавлено: #12  Ср Апр 30, 2008 11:22:31
Заголовок сообщения:

No Avator спасибо за признание того, что я все таки не такой тупой что не могу рещить простейщую задачу, попробовал сделать через Конструктор запросов что то наклевалось, но он высчитал тока сумму розницы*Ед-цу (без учета всего кол-ва оприходованого товара в накладной). Но для меня это уже прогресс. Скачал учебники по языку 1с как раз по отчетам, сказал буху когда решу задачу можете меня называть меня программистом, а не сисадмином.


Автор: daysemsk
Добавлено: #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 - раз, и найди книжку "Введение в конфигурирование" - два



Автор: daysemsk
Добавлено: #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 два задания - Сначала Пошаговый пример
Затем Мини-склад
Решения этих двух примеров вполне достаточно, чтобы сдвинуться с мертвой точки. Займет это все часа четыре - час на первый пример, и три часа - на второй.



Автор: daysemsk
Добавлено: #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 минут
.................
Что-то я не пойму, чего Вы хотите добиться....
Группировка в запросе по ЦенаПрод...... ЗАЧЕМ?
У регистра "ПартииНаличие" какие есть измерения, ресурсы и реквизиты?



  

Служба поддержки WWW.BALANS.KZ