#0
by raykom
Надо перебрать документы по номенклатуре и получать цену не из документа, а из справочника цен на дату документа. Кто делал, подкиньте кусок кода . Пожалуйста.
#3
by raykom
Не обязательно, но надо таблицу строить потом, а итоги по группировкам и вообще, группировки проще в запросе.
#4
by welwel
В функции чёрного запроса можно использовать функцию из модуля. Может медленно работать, но логику упрощает.
#6
by raykom
Ну да, пробовал уже. Как то тоже криво. Вот об ней то и речь. Сейчас вот вернулся к этому ...
#7
by welwel
но если есть аргументы не только из запроса, то к ф-и глоб. модуля придется обращаться через промежуточную ф-ю из модуля
#8
by raykom
Все из запроса. Вот что передаю в глобальную глПолучитьЦену(Номенклатура,СпрПоРекв("ТипыЦен","Код",Строка(Контрагент.ОсновноеСвойство.ЗначениеСвойства)),ДатаДок,Единица,Валюта,"1","1");
#11
by raykom
Вообщето вот такая конструкция получается без лишних подробностей Запрос = СоздатьОбъект("Запрос"); Вот если вот так То запрос отрабатывает и возвращает выборку, но в значениях СуммаБезСкидки - хер знает что, какие то цифры не могу понять как и получаются. Итоги какие то по группировкам, а какие - не соображу. А вот если так То выборка пустая.
#12
by raykom
Мало того, что как то по владельцу надо синхронизировать выборку и группировку, так еще хз, как на дату документа цену получить.
#13
by КонецЦикла
какая нахрен сумма? где группировка по строке документа? у тебя же задача получить цену для каждой номенклатуры в каждой строке? понятно что у 1с крыша едет... сделай перебором если не прет
#14
by raykom
С выборкой все понятно - но блевать охота от подсчета итогов и построения группировок.
#16
by raykom
Мне надо не из строки документа цену, а из справочника цен. Так что строка тут не при чем. Было бы из документа - не изгалялся бы
#18
by КонецЦикла
Так надо отделить строки чтобы не было каши У тебя 1с суммирует цены по номенклатуре... но номенклатура повторяется в одном/разных документах и т.п.
#20
by raykom
Так у меня и нет группироввки по документу, что бы заморачиваться, что она сукка тупо не просуммирует цены по контрагенту ? Номенклатура то одна в пределах группирговки, функция суммирует по группировке, по логике. Куррва ...
#21
by КонецЦикла
Для этого надо выбрать различную номенклатуру и потом уже что-то там лепить и суммировать А вообще иди проспись, а то забанюнахрен
#22
by raykom
>ПолучитНужнуюЦену(Товар,Док) Вот эта ж0па есть глобальная, и она возвращает в такой конструкции цену верную, но функция тут суммирует какую то херню, как и в когда нет условия. А добавить условие - ПЦ, выборка пустая.
#25
by КонецЦикла
Настало время главного вопроса: зачем перебирать "документы по номенклатуре" если она и так известна и цена хранится не в документе?
#26
by raykom
>И выборка только строк документов - без Справочник... О ... На четверты день Зоркий Сокол увидел, что у сарая нет четвертой стены ... Попробую
#28
by КонецЦикла
Если не известна - выборка номенклатуры из документов, свертка тз по номенклатуре и вперед, получать цены
#36
by raykom
Емае ... Ну надо пособирать скидки, вычислить их, получить сумму скидок по каждой номенклатуре. Сумму скидки надо определять через процент от нормальной цены по справочнику ...
#41
by raykom
Пошло оно все кобыле в трещину .... Пошол спать. Спасибо, за посильную помощь. Утро вечера, как говорится ...
#42
by welwel
Примерно так тогда: ....... в ПолучитьСуммуСкидки описать вычисление скидки а запрос все просуммирует
#43
by raykom
От враги ... Сами не спят и другим не дают. Щас попробую. Уже есть похожие конструкции
#44
by welwel
точнее так: |Функция СуммаСкидки = Сумма(Количество*ПолучитьСуммуСкидкиНаЕдиницу(Номенклатура, Реализация, Цена))
#45
by raykom
ага, вам тоже спать пора ... В Цена то, что будем передавать ? Значение то по владельцу да и периодический еще ...
#49
by welwel
А из справочника цена берётся через вызов глполучитцену из нашей функции получитьсуммускидкинаединицу
#51
by welwel
В получитьсуммускидкинаединицу можно передать из запроса еще единицу и валюту, если не брать дефолтные
#52
by МимохожийОднако
Посмотри как формируется скидка в печатной форме счета со скидками. Скомпилируй для своей задачи. Может быть, и прозреешь.
#53
by raykom
Не, парни, уже вторая ветка и меня уводят в сторону. Не будем вникать в несуществующие детали - что да почему.Нет у меня сведений о скидке в шапке и не могу я собирать данные по алгоритму формы счета со скидками - стандартный механизм скидок у меня не задействован ни как. Это фейковая скидка, которая обозначена только формальными признаками - типа реквизита - флажек, процент и датаОт. Все остальное происходит виртуально и приобретает значения уже в таблице выгрузки в другое информационное пространство. Но и там это уже реализуется в виде абсолютных цифр - цена, сумма, которые УЖЕ уменьшены на процент скидки. Есть только отметка о скидке, процент скидки в отдельном реквизите и реальная цена в справочнике товара. ТАк что - нужен ответ на сабж. Звиняйте.
#54
by welwel
Так вся инф-я из строк документа извлекается в запросе. Передаётся в функцию для расчёта. Да - будет тормозить на больших объёмах, но работать будет
#55
by raykom
Если производить расчет от обратного - от суммы документа - получим разность в округлениях на копейки, т.к. скидка расчитывалась от цены товара.
#56
by welwel
Делал подобный отчет по регистрам, сравнивал с ценами заданного пользователем типа цен.
#57
by raykom
Это же пестец ... Лучше б я и не углублялся в 1с. Так бы и думал, что зачетный софт. Вопрос то в том, что в запросе к справочнику нельзя получить значения периодического подчиненного реквизита ... Что тут ненужного в языке запросов по мнению разработчиков ?? Епланы ...
#58
by NS
При чем тут "зачетный софт"? На любом языке, чтоб что-нибудь написать - надо уметь писать.
#60
by raykom
Ну ... это я думаю справедливо отнести и к разработчикам ... Что такого необычного в моем пожелании к функционалу языка запросов ? Стандартное обращение к стандартному справочнику в стандартной конфигурации ... За каким хером ламеру надо выписывать какие то кренделя запросом, что бы добыть какие то значения из этой ситуации ? ... опять за рыбу деньги ... А итоги ? Опять счетчиком считать ??? Гамнописцы 1совские ... Так то я и сам своими кривымируками могу, но нахера такие качели то ?
#61
by Злопчинский
Про кренделя: потому что пери.реквизиты - это совсем другой справочник. Видно влом им было писать транслятор с чорного запроса в нормальный запрос... вот и получилсаь такая фигня.
#62
by NS
Это не обычное пожелание к языку запросов. Это неумение пользоваться языком. В любом языке есть ограничения, и нужно уметь пользоваться функционалом языка.
#63
by raykom
Ну так понимаю в принципе то ... Покажи мне функционал языка запросов для работы с периодическими реквизитами ?
#64
by NS
А он должен быть? Язык - встроенный язык 1С, и в нем есть полный функционал для работы с периодикой. Естественно не надо при этом пользоваться запросами.
#65
by raykom
А язык запросов - это встроенный в китайца язык ? > Естественно не надо при этом пользоваться запросами. С какого перепугу то такая нелогичная предопределенность то ??
#66
by NS
Язык запросов - это всего-лишь часть встроенного языка 1С. И в семерке, и в восьмерке, и в Аccess и т.д. - у языка запросов куча ограничений. И предназначен он для решения узкого класса задач и подзадач. Для решения любой задачи принято использовать те средства, которые для этого предназначены, и в любом случае программист должен использовать те средства при помощи которых задачу можно эффективно решить. Ничего нелогичного я вообще-то не вижу.
#68
by NS
Кстати, для получения цены даже есть готовая функция у тебя в конфигурации. Если ты не умеешь использовать в запросе внешние функции - это опять-таки никак не проблема 1С.
#69
by raykom
Ну ... Это уже вопрос религии, по типу - почему винда все делает сама, а Линупс надо кодить выпучив глаза ... Линуксоиды - за эксюзабельность, а виндоводы - за френдабельность ... В итоге - это не логика которую подсказывает практика, а логика диктуемая разработчиком. А уж результатом чего она является - возможностями синтаксиса или представлениями разработчика о том, что ДОСТАТОЧНО программисту в тех или иных ситуациях - вопрос филосовский. Мое убеждение такое, что в моей ситуации неумение запроса работать с периодикой, в частности, ставит меня в затруднительное положение при выводе результатов в таблицы, так как выборки сложно группировать и суммировать, а так же адаптировать под макет печати. Т.е. разработчики решили свои проблеммы за мой счет. Казлы. Поскольку речь таки идет о работе с набором стандартных реквизитов. И о НЕСПОСОБНОСТИ механизма платформы получать из них значения. Не знаю, о любом. Это я к тому, что язык запросов - неотемлемая часть языка 1С. А не сторонняя приблуда. Знаю. Она работает только в функции запроса и таки отрабатывает криво, перемножает результат на количество вхождений в группировку. Причем по хер знает по какому то кривому алгоритму. Начинается как бе не с 1 го вхождения, а со второго и далее. Сижу вот сейчас разгадываю ... Опять надо или счетчик прикручивать и делить на него или по условию прекращать суммирование при значении счетчика более 1. Мы тут в дворницкой то тоже не пальцем деланы ...
#70
by NS
Ни у кого проблем нет, проблемы только у тебя, а виноват естественно язык :) Код, который ты выкладываешь, ни имеет ни малейших признаков логики, и аналогичный код не будет работать ни на одном языке. Проблема то не в языке, а в том что не всем дано писать. Не лучше ли найти вид деятельности к которому у тебя есть способности, и заниматься им?
#71
by raykom
Не имел логики. Счас вот выложу, что допилил и там с логикой порядок. Но и с ограничениями функционала - тоже все очевидно.
#72
by NS
По кругу идем. В любом языке функционал ограничен. И в любом языке со временем функционал развивается. Ты бы видел какие ограничения были в конструкторе запросов в Access на момент появления семерки.
#74
by raykom
Вот эта пидерсия отрабатывает правильно. Запрос = СоздатьОбъект("Запрос"); И скажите мне после этого, что я ленивый тупой ламер ...
#75
by raykom
Но так или иначе эту заразу я победил благодаря вашим пинкам и помощи, панове. Спасибо большое ))) Нужный мне результат получен.
#76
by NS
Конечно ламер. нафига ты складываешь ЦЕНУ??? |Функция СуммаБезСкидки=Сумма(глПолучитьЦену(Номенклатура,ТипЦены,ДатаДок,Единица,Валюта,Курс,Кратность)*КОЛИЧЕСТВО); Естественно решало все твои проблемы.
#79
by raykom
1.>Конечно ламер. нафига ты складываешь ЦЕНУ??? Это не я складываю, а функция запроса, потому как обращение к фнешней функции возможно только изФУНКЦИИ ЗАПРОСА и именно ИЗ СУММЫ. 2. Потому что СуммаБезСкидки суммируется не по КОЛИЧЕСТВУ товара, а по количеству ВХОЖДЕНИЙ в группировку. При чем тут вообще, количество товара ... Сам ты ... плохо меня понял. :D
#82
by NS
"2. Потому что СуммаБезСкидки суммируется не по КОЛИЧЕСТВУ товара, а по количеству ВХОЖДЕНИЙ в группировку. При чем тут вообще, количество товара ..." Это всё происходит на живой базе работающей фирмы?!
#85
by raykom
Да где ты видишь, что я ее по номенклатуре то итожу ? Я цену перемноженную на количество итожить, так как надо все суммировать по этой номенклатуре и по контрику. Я пока только ДОБЫВАЮ ЦЕНУ !!!
#87
by raykom
епать вы заколдованные что ли ? Из чего такой вывод то ?? Мне цена нужна ИЗ СПРАВОЧНИКА
#88
by raykom
+а ее только через внешнюю функцию добыть можно (для NS об использовании ВСЕХ возможностей этого ушлепского языка), а доступ к ВНЕШНЕЙ функции - только из ФУНКЦИИ ЗАПРОСА ...
#90
by raykom
Да, еще раз спасибо. Среднее отрабатывает как надо. Ну так и быть ... Не криворукие разрабы ... Только одна рука у них кривая :D
#91
by welwel
цену итожить не надо, а значит и посчитать её можно уже на этапе обхода результата запроса перед выводом
#94
by welwel
а суммы суммировать функцией сумма. Получается Среднее лишним будет в запросе - цену можно получать той же внешней функцией уже на этапе обхода результата запроса.
#95
by NS
А просто функцию запроса "СуммаСоСкидкой" поделить на функцию запроса "Сумма(Количество)"?
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Проблема с запросом к оборотному регистру (v7.7)
- v7: v7 : НДС при возврате
- v7: Что нужно чтоб подключить ККМ Меркурий 112F к 1с V7 Торговля + склад
- SQL запросом хочу получить родителя 1 уровня справочника
- v7: Как перебрать все документы нужного типа за опр. период?
- v7: v7.7 премещение элемента справочника
- v7: v8: v7: Кто-нибудь сумел скачать комплект отчетности за I квартал 2007 года
- Как в 1С8 можно расчитать цены номенклатуры контрагента из цен номенклатуры
- v7: 1С V7.7 в сети
- v7: 1C:V7 starter program (for SQL) - обнаружена ошибка
- v7: В семёрке ТиС цена в спр. номенклатуры не рассчитываются автоматом от типа цены?
- v7: Получить периодическое значение справочника 1С 7.7 в прямом запросе
В этой группе 1С
- СКД как в одном из запросов отключить условие периода
- УТ 11 Справочник контрагентов
- v7: Доступ к атрибуту справочника в черном запросе или отбор по владельцу. Как ?
- Пропала колонка в табличной части документа
- ЕСТЬNULL в запросе
- КД передать ссылку на справочник имея в реквизите СТРОКУ
- 1С КД и перенос документа с движением и произвольным алгоритмом отбора
- Ошибка 1с УТ :Слишком много фактических параметров
- v7: ТиС. Как в запросе обратится к периодическому реквизиту ?
- Объект не рекомендуется редактировать
- Передача переменной типа COMОбъект в модуле формы в 1С 8.3
- Регламентные задания отрабатывают раз в минуту
- Отладка внешней обработки, вызываемой по расписанию УТ11
- Зависает пр формировании печатной формы
- v7: Разрушен файл данных таблицы
- СКД. Вывести произвольный подзаголовок.
- Нужно ли переоценивать в особом порядке счет 67.24
- Веб-сервер 1С, IIS 7.0, авторизация Windows
- Битая ссылка при программном создании документа.
- Закрытие 25-го счета по подразделениям для услуг