0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
1

Снова новичек просит помощи. Цены и товар.

18.05.2010, 10:30. Показов 30598. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток уважаемые специалисты. Не могу справится с задачей. Задача такова: нужно за определенный промежуток времени получить сколько и на какую сумму было продано определенного товара, как в единицах так и группами (к примеру 1 процессор Intel I3 или вся продукция Intel). У меня не получается привязаться по ТМЦ. Прошу помощи. Вот мой код(ВыбНоменклатура реквизит):

Код ( (Unknown Language)):

Запрос=СоздатьОбъект("Запрос");
ТЗ.УдалитьСтроки();
ТЗ.НоваяКолонка("ТМЦ");
ТЗ.НоваяКолонка("Цена");
ТЗ.НоваяКолонка("Количество");
ТЗ.НоваяКолонка("Сумма");

РегТовары = СоздатьОбъект("Регистр.Продажи");
РегТовары.ВыбратьДвижения(НачДата, КонДата);
Пока РегТовары.ПолучитьДвижение() = 1 Цикл
//если ВыбНоменклатура=РегТовары.ТМЦ тогда
ТЗ.НоваяСтрока();
ТЗ.ТМЦ=РегТовары.ТМЦ;
ТЗ.Цена=РегТовары.ПродСтоимость;
ТЗ.Количество=РегТовары.Количество;
ТЗ.Сумма=РегТовары.Количество*РегТовары.ПродСтоимость;
//КонецЕсли;
КонецЦикла;
за ранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2010, 10:30
Ответы с готовыми решениями:

Я новичек-очень нуждаюсь в помощи
Здравствуйте, в 1с я полный ноль, стараюсь прочитать по больше материала, но к сожалению уже не...

БД проектирование сущности 'Товар' - 'Цены'
Здравствуйте Заранее прошу простить, не знал куда поместить вопрос, это скорее по проектированию...

Наценка на товар в завивимости от цены
Помогите написать скрипт для обработки цены Задание такое если цена на товар >=500 то наценка...

Купить товар без цены
Всем привет. Столкнулся с необходимостью сделать так, чтобы покупатель мог оформить заказ на...

29
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
18.05.2010, 10:43 2
А за позднее?
Любезный, вопрос в чем?
Вот, скажем, для чего вы создаете объект "Запрос", если потом его не используете?
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
18.05.2010, 10:51 3
Ну группы выбрать через движения очень сложно. Проще запросом. В принципе конструктор запроса за тебя почти всю работу сделает.
получится что-то вроде.

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "Период С НачДата по КонДата;
|Товар = Регистр.Продажи.ТМЦ;
|Сум = Регистр.Товары.ПродСтоимость;
|Кол = Регистр.Товары.Количество;
|Группировка Товар;
|Функция КолВо = Сумма(Кол);
|Функция ИтСумма = Сумма(Сум);";
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Пока запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("СтрокаГруппы");
Если (Запрос.товар.ЭтоГруппа() = 0) и (Запрос.КолВо <>0) Тогда
Цена = Запрос.ИтСумма/Запрос.КолВо;
Иначе
Цена = 0;
КОнецЕсли;
Таб.Вывести("СтрокаЭлемента");

КонецЦикла;
Таб.ВывестиСекцию("Итого");
Таб.Опции(0,0,0,0);
Таб.Показать("Таблица","");
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
18.05.2010, 10:55 4
Что же вы все со своим "поздним" то =)) Запрос остался, забыл удалить... пробовал и запросом делать. Вопрос в том что мне нужно по выбранной номенклатуре получить сколько продано это номенклатуры и по какой цене за период времени. Не получается у меня сам фильтр по номенклатуре. Все продажи выводит, а по одному или группе товаров не получается.
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
18.05.2010, 11:21 5
Добавить в запрос условие

Условие (Товар в ВыбНоменклатура);

ВыбНоменклатура вывести на форму .

для регистра - читай УстановитьФильтр()
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
18.05.2010, 11:42 6
Мой запрос выглядел один в один как Ваш, только в условии стояло "="... и не работал так же как не работает Ваш =) Может я забыл где нибудь что нибудь указать? Руки то растут из района мозгов (а они находятся далеко не в голове =)))
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
18.05.2010, 12:11 7
Покажи полный текст запроса.

а лучше выложи внешнюю обработку
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
18.05.2010, 12:25 8
ТекстЗапроса =
"
|Период с (НачДата) по (КонДата);
|Количество = Регистр.Продажи.Количество;
|Стоимость=Регистр.Продажи.ПродСтоимость;
|ТМЦ = Регистр.Продажи.ТМЦ;
|Группировка ТМЦ;
|Условие (ТМЦ=ВыбНоменклатура);
|Функция Сумма = Сумма(Стоимость);
";
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
18.05.2010, 12:43 9
А выполнить Запрос не забыл ?
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
18.05.2010, 12:50 10
1) лучше не называй результат выполнения функции аналогично самой функции.
2) а количество суммовать не надо?
3) " = " в условии ищет четкое соответствие, а " в " ищет вхождение в том числе и в иерархию.
4) Ставь переменные измерений в запросе аналогично их положению в регистре - они не зря стоят в таком порядке.

а так всё вроде правильно - может у тебя выбноменклатура обнуляется, или объявлена в модуле как переменная? проверь отладчиком перед звыполнением запроса чему равно её значение.



Цитата Сообщение от vbs
А выполнить Запрос не забыл ?
Забыл ;-(
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
18.05.2010, 12:58 11
да, выполнил. Внешняя обработка:

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Шапка");
Запрос.Выполнить(ТекстЗапроса);
Пока запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Строка");
Товар=Запрос.ТМЦ;
Стоимость=Запрос.Стоимость;
Кол=Запрос.Количество;
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
18.05.2010, 13:21 12
Цитата Сообщение от vitfil
А за позднее?
А вот эту реплику автор заметил, даже отметил, что уже отвечали подобным образом, только тогда было "за раннее", а теперь "за ранее".
Естественно, подобное вызывает желание сотворить каламбур.
И что, не подвигло заглянуть в учебник пятого класса, чтобы понять, как грамотно написать?
Хоть и НОВИЧЕК, но непростительно писать так безграмотно
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
18.05.2010, 13:23 13
Лучше сохрани отчет в внешнюю обработку, переименуй в txt и выложи на форуме, а то испорченый телефон получается. Условие однозначно должно отрабатывать, ошибка похоже не в запросе. Конфа ТИС типовая?
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
23.05.2010, 13:16 14
Прошу прощения за мою безграмотность. Мой русский язык испорчен "албанским" и другими пагубными влияниями интернета. Я вижу для многих это принципиально. Впредь постараюсь синтаксических ошибок не допускать. Теперь по делу. Количество пока суммировать не надо, так как там есть и штуки и метры и упаковки, получится черти что... Проблема в том что Запрос формируется только по группам товаров, т.е. на отдельно выбранный товар он мне ничего не выдает. Конфигурация типовая. Как и просили прикрепляю *.тхт фаил.
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
23.05.2010, 15:47 15
Всё он тебе дает - просто ты поставил вывод строчки в таблицу перед тем как определил переменные ТМЦ, колво, сумма и т.д. Разумеется на момент вывода строчки они пустые , а если выбрана группа товаров - то выводятся вообще данные с предыдущей позиции запроса.


ещё один совет - нафиг тебе что-то переназначать переменным? Вставляй в таблицу непосредственно Запрос.товар, Запрос.Колво
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
27.05.2010, 09:20 16
Спасибо за помощь, впредь буду внимательнее... Теперь у меня появилась еще одна проблема, не могу получить покупную цену по этому же товару, когда начинаю формировать отчет выдает ошибку "Значение не представляет агрегатный объект (ТипНоменклатуры):8". Кстати я забыл Вам сказать что отчет внешний. Может я не из того регистра пытаюсь получить значение? Вот код:

ТекстЗапроса = "Период С НачДата по КонДата;
|Товар = Регистр.Продажи.ТМЦ;
|Сум = Регистр.Продажи.ПродСтоимость;
|Кол = Регистр.Продажи.Количество;
|ПостТовар=Регистр.ПартииНаличие.ТМЦ;
|ПостЦена=Регистр.ПартииНаличие.СуммаБух;
|Группировка Товар;
|Группировка ПостТовар;
|Функция КолВо = Сумма(Кол);
|Функция ИтСумма = Сумма(Сум);
|Функция ПриходС = Приход(ПостЦена);
|Условие ((Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Услуга) И (Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Работа));";
Если ВыбНоменклатура.Выбран()=1 Тогда
ТекстЗапроса=ТекстЗапроса+"
|Условие (Товар в ВыбНоменклатура);
|";
ТекстЗапроса=ТекстЗапроса+"
|Условие (ПостТовар в Товар );
|";
КонецЕсли;
Запрос.Выполнить(ТекстЗапроса);
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
27.05.2010, 20:36 17
Цитата Сообщение от NocturnalMortum
|Условие ((Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Услуга) И (Товар.ТипНоменклатуры <> Перечисление.ТипыНоменклатуры.Работа));";
Замени на
|Условие ((Товар.ВидНоменклатуры <> Перечисление.ВидыНоменклатуры.Услуга) И
(Товар.ВидНоменклатуры <> Перечисление.ВидыНоменклатуры.Работа));";
0
0 / 0 / 0
Регистрация: 10.03.2010
Сообщений: 40
30.05.2010, 07:53 18
Такая же ошибка...
0
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
30.05.2010, 09:33 19
Запрос не понимает явное направление в тексте запроса на ссылочные данные конфигурации типа Перечисление.Тип.ВотТакой или Константа.БлаБлаБла.

Перед выполнением запроса создай переменную, в которую пропиши нужное тебе значение, её же поставь и в условие.
0
0 / 0 / 1
Регистрация: 22.06.2013
Сообщений: 9
30.05.2010, 10:45 20
Цитата Сообщение от puh14
Запрос не понимает явное направление в тексте запроса на ссылочные данные конфигурации типа Перечисление.Тип.ВотТакой
Странно !
Я родной, а потом свой кусок кода проверил в запросе на реальной базе (ТиС9.54), вставив его в отчет "ДинамикаПродаж".
Родной, потому что поленился посмотреть устройство справочника (Там ТипНоменклатуры отсутствует, а ВидНоменклатуры есть)

Может, у него измерение ТМЦ имеет не тип "Справочник.Номенклатура", а просто "Справочник" ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2010, 10:45
Помогаю со студенческими работами здесь

Никита Михалков просит 1% от цены смартфона или ноутбука
Московские офисы ведущих фирм — производителей телефонов и другой потребительской электроники...

Вывести названия магазинов в порядке убывания цены на товар.
Доброго времени суток! В общем, есть программа с таблицей такого вида: название магазина |...

Девушка просит помощи у мудрых программистов (ассемблер)....
Добрый день! Не могли бы вы мне помочь.нужно написать две маленькие программки.достаточно только...

Как сделать динамический расчет наценки на товар в зависимости от цены закупа?
Здраствуйте, имеется ввиду , наценка которая будет изменяеться в зависимости от цены, тоисть: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru