#0
by experimentator76
Вот запрос. Смысл - одним запросом рассчитать количество к списанию в разрезе партий по множеству номенклатуры. На выходе только товары, по которым достаточно партий. Просьба проверить - все ли корректно работает. ВЫБРАТЬ РегистрНакопления.Партии.Остатки( ВТ1.Партия,
#2
by experimentator76
сегодня только зарегился - не судите строго за косяки с движком я слышал давно что одним запросом сие нереализуемо набросал - работает - есть подозрение что где-то может быть косяк, так как "программ без багов не бывает" если косяка нет - буду применять тогда
#3
by GROOVY
Вполне реализуемо, только при большом количестве парти (обычное дело) такой запрос буде дико тормозить при соединениях.
#4
by GROOVY
Зачем хотите именно в запросе рассчитать партии списания? Не проще ли это делать уже в модуле. И писать проще, и для системы легче.
#6
by Поpyчик-4
Лисапед. Штатные механизмы ужо не канают, нам бы тоже самое, но с квадратно-перламутровыми?
#8
by experimentator76
не факт - надо проверять теоретически запросом должно быть быстрее - для модуля остается проверка и сигнализация частью пакетного запроса о несписанных товарах + отказ а результат запроса можно без дополнительных расчетов записывать в регистр суммового собственно в запросе не предусмотрено, но если он корректно в принципе работает то можно прикрутить в смысле - те что в типовых конфигурациях ? прям вот так выпилить из типовой и применять в своей ?
#10
by Reaper_1c
Проверено. Факт. Железобетонный. Медленнее минимум в 1.5-2 раза. Транзакция растягивается, конфликты блокировок множатся. Автора лишают премии.
#11
by Азазелло
Нет, ну в свое время @Ненавижу1С проявлял теоретический интерес к возможности решения СЛАУ запросами. Здесь, можно сказать, тот же случай :)
#13
by experimentator76
ну не всеж только рутина в обмен на премии :) хочется эдакий изврат забацать тормоза проверю на выхах - надо выбрать базу для насилия
#15
by experimentator76
кстати соединения производятся временной таблицей на саму себя может и не будет падения производительности завтра нельзя - нащальника строгая :))) ;)
#18
by МуМу
Доказано теоритически что партионка расчитывается на SQL только курсорами а стало быть смысла писать одним запросом нет.(проще на клиенте в цикле) Конечно может чего нибудь в 1С на сервер приложений намудрили с кешированием но это врядли.
#19
by Reaper_1c
Ничего не мутили. Я по глупости когда 8-ку осваивал проверял. Списание силами сервера приложений делает супермегазапрос как стоячего.
#20
by experimentator76
наверное мой уровень не позволяет мне понять что Вы написали поясните - как чего стоячего? как выяснили что делает супермегазапрос ?
#21
by experimentator76
наверное не в теории смогу проверить только сам что там в результате будет мегастоять
#24
by Новиков
не знаю сколько тебе лет, сколько ты чего видел в жизни, но открой типовые и посмотри там реализацию фифо. И да - там не дебилы написали списание именно кодом, а не запросом.
#25
by experimentator76
в типовых ошибки находил - бывало но суть не в том - знаю я или не знаю типовой подход суть в
#27
by Reaper_1c
Это ты сейчас кого теоретиком обозвал? Если ты не знаешь в какую позу поставишьь СУБД соединением таблиц по условию типа ">=" по дате - флаг тебе в руки, барабан на шею...
#29
by experimentator76
не хотел никоим образом оскорбить но наверное согласитесь что один практик стоит трех теоретиков похожий алгоритм - я его видел однажды и его часть с соединениями использовал для расчета накопительных итогов спасибо за идею, которая подтолкнула меня ее развить дальше и реализовать запрос чтобы избежать переборов и вычислений кодом вне запроса (так называемый и почитаемый в народе "типовой подход") как обещал на выхах потестю эти соединения на вшивость возможно вы ребята и правы и теория это сила :))
#32
by Злопчинский
на Исе поищите - обсуждались эти вопросы вроде активно... или я туплю - может и здесь было...
#34
by experimentator76
верно подмечено! два первых непосредственно к данным, один контрольный и один расчетныйрезультирующий НО пакетный один и выполняться должен быстрее чем 4 отдельных последовательных запроса туплю - иса это где ?
#35
by Эмбеддер
я на 7-ке когда выбирал данные прямыми запросами, использовал курсоры, чтобы код выполнялся не в 1С, а на сервере. хотя была альтернатива или все на 1С или запросами
#36
by experimentator76
скуль это другая песня :) с прямыми запросами в семерке работал, но непосредственно в самом скуле мало писал я слышал что там можно организовать рекурсивность запроса - а это новые возможности для закура сейчас работаю с 8.2 и интересно ее мощами реализовать, не выходя за рамки ограниченности ее платформы
#37
by Эмбеддер
Рекурсивный запрос хотел использовать для иерархии номенклатуры в 7-ке. Просто иерархию можно было получить, но в реальном запросе с итогами применить не удалось из-за ограничений
#38
by experimentator76
я видел как на скуле решается задача получения иерархии справочника сейчас есть неявное желание оставаться в рамках платформы 8.2 но отсутствие рекурсивности в запросах восьмерки тормозит реализацию целого ряда задач к примеру можно было бы реализовать возможно проще и без соединений а также решить задачу умножения между строками
#41
by Эмбеддер
Тут остается или поверить мне на слово что на практике рекурсивный запрос бесполезен с существующими ограничениями или попробовать самому а по поводу списания в запросе мое мнение что скорости не добавит, если не наоборот
#48
by experimentator76
тестовая база создана случайным образом 2000 уникальных товаров 30000 партийприходов 3500 расходов - больше создать терпения не хватило число строк товаров 1..50 проведение таким запросом не вешает базу поправлю позже алгоритм подбора партий чтобы списывалось все количество сразу а не частями как сейчас так как это долго происходит при таком количестве партий впереди тестирование общепринятого алгоритма списания и одним запросом
#49
by experimentator76
плата за универсальность этого механизма мне показалось что это семерочный подход или я не понял высказывание товары соединяются с партиями внутренне и товары только те на которые есть остатки в принципе проверку на недостаток партий допишу - это + запрос в пакет еще как сравниваются!
#51
by кащщей
, При соединениях, тем более внутренних принято проверять значения полей на значение NULL, Иначе такие выражения в запросе как СУММА(ВТ2.Остаток) - ВТ1.Остаток КАК ПредыдущийОстаток, дадут совершенно непредсказуемый результат, точнее не дадут вооще. даже если есть Вт2.остаток
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Ручное списание партий
- Склад, списание товара.
- Частичное списание ОС
- V7: Запрос реквизита документа из справочника партий в регистре партий
- Расходная накладная и списание партий
- Списание партий "По средней"
- Списание партий при проведении документа "Закрытие заказа покупателя"
- Списание партий в 1С 8.2 УТП
- Списание/оприходование партий одним документом Ут 10.3
- Списание партий БП 2.0
В этой группе 1С
- Ключ защиты программы больше не доступен
- КартинкаСтрок в отдельной колонке на таблице управляемой формы
- Вызов заданной формы элемента из формы списка справочника
- нет свободных лицензий
- Корректировка реализации БП 2.0
- Как писать в запросе Регистратор.Метаданные().Синоним ?
- Получение данных из окна сообщений
- восстановление файла *.epf
- Ошибка СУБД: Превышен максимально допустимый размер внутреннего файла
- v7: ЗиК 7.7 Не начисляется отпуск по уходу за ребенком до 3-х лет
- УТ 11. Перемещение на основании поступления.
- Многопередельное производство в УНФ. Подскажите как это работает?
- УПП: Закрытие 20 счета по выручке без учета подразделений и номенклатурных групп
- Снова конвертация данных
- Отбор по УСЛОВИЮ в таблице значений.
- УПП: Отгрузка без перехода права собственности
- Не запускается служба "Публикация ресурсов обнаружения функции"
- 1с предприятие-Бухгалтерия. КВД в счет-фактурах
- Шаблон для УПП 1.3.22.1
- КД 2.1. Конвертация строки в подчиненный справочник