#0
by Looking
Конфигурация ПУБ, БД SQL. Написал функцию для контроля просроченной задолженности в Модуле документа РеализацияПродукции, через метод ВыбратьДвижения. Работает медленно, задержка порядка 5 секунд. Можно-ли выбрать движения регистра прямым запросом SQL? Помогите примером, пожалуйста. Мой код: Если Константа.КонтрольКредитаПокупателей=1 Тогда
#1
by Looking
задержка в 5 секунд именно в строке Регистры.РасчетыСПокупателями.ВыбратьДвижения(,Тек ущийДокумент,);
#3
by Looking
это вопрос? или предложение воспользоваться этим методом? у меня используется метод регистра Регистры.РасчетыСПокупателями.ВыбратьДвижения(,Тек ущийДокумент,);
#10
by VoditelKobyly
На тебе пример из нашей программы. В твоем коде не разбирался. Получишь сразу текущий и долг и просроченный по дням долг.
#12
by Looking
Наверное я напрасно весь код привёл, меня интересует, как можно реализовать следующий кусок кода прямым запросом, и даст-ли это навскидку существенное ускорение? В этом куске кода - первое - выборка движений регистра, второе - выборка подчинённых документов. Эти методы имеют аналоги в виде прямых запросов?
#14
by Азат
эмммМ, любое действие, совершаемое тобой имеет аналог в виде прямого запроса как минимум потому, что так и происходит, когда проводится документ или что-то еще... или ты надеялся, что sql-сервер понимает язык 1С? Ну посмотри на 1cpp.ru - там оч хороший хелп есть
#16
by Ёпрст
вопрос в модуле проведения - это 2 раза полный ПЭ. Таблица - это три раза.. В общем, всё в топку.
#17
by VoditelKobyly
Скорее всего осталось от предыдущих версий, когда требовались сортировки. Конечно, здесь это лишнее. Но похоже автора это не интересует, если он на этот пример внимания не обращает.
#23
by VoditelKobyly
Зачем вообще тебе движения? Ты же стоял на правильном пути: собрался с использованием прямого запроса сразу выдернуть просроченную задолженность клиента. Я тебе дал пример. Поправь его к своей базе и всё. Теперь опять собираешься думать как быстрее стандартными средствами 1с выбрать движения, накидать табличку по документам, чтобы потом получить просрочку? И вынеси все проверки из модуля проведения.
#24
by Looking
движения нужно по причине того, что остаток Регистра РасчетыСПокупателями по измерению РасчДокумент не актуален, т.к. документы оплаты разносятся обезличенно без указания документов отгрузки и последовательность сложно поддерживать в актуальном состоянии, т.к. в БД круглосуточно работают пользователи.
#25
by Ёпрст
Если интересно, могу сказать как у нас контролируется просроченная задолженность по клиентосу.
#27
by Ёпрст
У клиентоса в договоре сумма кредита и глубина в днях. Просрочка определяется очень просто - долг на документ минус оборот за глубину кредита, если оборот превысил долг - значит есть просроченный. Всё собственно. Простым прямым запросом получаем итоги и оборот и там же разница (+ учитываем еще возвраты). Да, если есть просроченный долг - отгрузка клиентосу запрещена.
#28
by Looking
я о таком варианте думал изначально, он мне отчего-то показался уязвимым, из-за отсутствия детального анализа движений, подумал что могут не учитываться взаимозачёты или ещё какие-то движения внутри глубины кредита, похоже я ошибся в своих предположениях и пошёл наиболее времяёмким и кривым путём, спасибо что направили на путь истинный!
#29
by Ёпрст
а оно тебе надо, знать кто кому и зачем в модуле проведения ? Тебе нужно всего лишь определить - есть у клиентоса просроченный долг или нет. Есть - пнх на отгрузку. У нас регламентируется отдельным документом выписка таким клиентосам, в них - кто и когда разрешил отгрузить таким клиентосам и причина.
#31
by Looking
подскажите, пожалуйста, каким образом возвраты учитываете? смотрите-ли к какому периоду относится возврат - в рамках глубины кредита или к более раннему? или-же просто прибавляете к долгу все возвраты за период глубины кредита, в независимости от того к какому периоду относится документ отгрузки по которому производится возврат?
#32
by Ёпрст
с возвратами там хитро сделано.. и с глубиной кредита связано в том числе и от какой отгрузки был возврат. Чтоб не было такого, что долга нет, а из-за возврата получается, что долг как-бэ есть просроченный.
#33
by Aleksey
Возврат - это оплата (она как и оплата уменьшает долг). Как может по оплате вылезти просрочка?
#35
by Looking
спасибо! значит возвраты нужно подокументно перебирать? чтобы анализировать дату документа-основания? таким образом деля сумму возврата на две - "сумма возвратов по отгрузкам в рамках глубины кредита" - её прибавляем к долгу, и "сумма возвратов по отгрузкам раньше глубины кредита" - её не учитываем, т.е. не прибавляем и не вычитаем.
#36
by Ёпрст
не помню ужо, нужно код глядеть. Есть же еще возвраты без указания документа основания..
#37
by Looking
гм, по поводу возвратов без указания документа-основания, у меня таких вроде-бы нет, если и будут, то честно говоря непонятно куда их относить - к уменьшающим долг или не оказывающим на него влияния, т.к. непонятно - то-ли это уменьшение просроченного долга, то-ли непросроченного
#38
by Looking
такие возвраты нужно, наверное по решению ответственного лица относить к тому или иному периоду - либо в рамках глубины кредита, либо до неё
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Перенос 1С другой ком. Как перенести настройки загрузчика.
- Отличаются остатки в "ведомости по товарам на складах"
- 1С УТ 10.3 и весы Штрих-Принт
- Программное создание колонок в ТЗ 1с 8.1
- Управление торговлей. Запрет изменения проведённых документов.
- XML ПолучитьАтрибут() возвращает пустое значение
- СКД или запрос связь двух регистров
- УТ10.3 АТОЛ: Рабочее место кассира, Остатки.
- Конвертация реквизит справочника в Регистр сведений
- v7: Отчет Акт Сверки
- Загрузка данных в Postgres SQL
- Конвертация данных. Преобразование ссылки в строку.
- Проброс COM порта ККМ через RDP W7->w2008R2 тормозит
- Загрузка данных из табличного документа 1с 8.2 (управляемые формы)
- ЗУП Доплата за замещение
- 1C + word как сделать выравнивание снизу по центру
- Предупреждение о расчете итогов в 1С 8.2
- Отправка прайс-листа по e-mail из 1С 7 ТиС
- CodeBase Error Error #:-630 Optimization File Flushing Failure
- УПП. Нет неоперативного режима проведения