#0
by es3000
Конфигурация самописная, есть регистр "остатки", очень похожий на такой же регистр из типовой торговли. Структура регистра: Нужно установить факт что по списку номенклатуры была совершена операция "возврат поставщику". Не важно сколько когда и на какую сумму. Интересует только сам факт был возврат или нет. Я сделал такой запрос: В принципе работает. Но долго, так как он обрабатывает регистр за все время. Можно ли как-то ускорить этот запрос? Теоретически можно было бы убрать количество из запроса, оно мне не нужно. Но без количества запрос в таком виде: Но такой запрос всегда почему-то пустой.
#1
by Lepochkin
А зачем вообще запрос?? Я так понимаю "возврат поставщику" делается документом конкретного вида. Дак и пробегись по документам.
#3
by es3000
цикл по всем документам определенного вида, да еще и по табличной части этих документов думается еще дольше будет работать
#6
by es3000
а какая тогда будет разница с моим запросом? почему он будет быстрее работать? все равно придется запрос выполнить за весь период времени с "01.01.1980" по интересующий момент
#8
by el-gamberro
ну во первых ты залазишь в таблицу регистра вместо того чтобы получить необходимое из таблицы самого документа причем из ее табличной части.
#15
by es3000
, про прямые запросы я знаю... вопрос в том стоит ли применять для моего случая "тяжелую артиллерию" в виде 1С++? штатные средства для моего случая никак не подходят?
#16
by orefkov
Галку отбор движений на "КодОперации" + УстановитьЗначениеФильтра + ОбратныйПорядок + ВыбратьДвижения.
#18
by es3000
нет так не подходит: приходится пробежать все записи чтобы определить есть ли возврат для каждой номенклатуры из списка Получается что лучше всего подходит прямой запрос. Но запрос в надо составить так чтобы он работал по списку номенклатуры, а сейчас он только одну строку выдает
#19
by FN
странная задача... если это разовая операция - то время выполнения в принципе пофиг. если же такой запрос нужно выполнять часто, то гораздо проще будет добавить периодический реквизит "ПоследнийВозврат" в справочник товаров и устанавливать значение этого реквизита (документ возврата, дата возврата, просто "1" на выбор) в документах возврата. Ну и разово заполнить по уже существующим возвратам либо путем перепроведения, либо обработкой.
#20
by es3000
Операция не разовая. Бухгалтер готовит документ возврата поставщику. И в подборе хочет видеть только ту номенклатуру, по которой еще не было возвратов
#21
by es3000
В принципе решение с периодическим реквизитом хорошее... но прямой запрос кажется более простым.
#22
by vip67
если бух хочет видеть те ТМЦ, по которым не было возвратов, то, как вариант, можно: 1) определить перечень ТМЦ, по которым были возвраты, а это делать (если возврат делается по определенному виду документа) через использование условия Документ.Вид = "такой-то". потом загоняем в список ТМЦ. 2) дальше в обычном запросе используем условие, что ТМЦ не в этом списке. и можно использовать и для отображения всех остатков и для проверки по поределенному ТМЦ. все.
#23
by FN
странная задача... а если закуплено было 100, вернули 10 а через месяц опять надо делать возврат - то этот товар уже вернуть нельзя? или наоборот? странная логика... для возвратов лучше использовать табличку в которой показывать Товар, остаток на складе, разница между купленным и возвращенным товаром по этому поставщику - например в виде внешнего отчета с ТЗ на форме и возможностью указания количества + перенос этих данных в документ Возврат.
#24
by es3000
Вообще - да, Но, (не вдаваясь в подробности) специфика работы этой фирмы такова что возврат поставщику всегда делается только один раз.
#25
by FN
ну тогда точно используй реквизит справочника, причем даже не периодический, а обычный с отбором. Можно будет фильтровать форму списка справочника "на лету" по возвращеным и не возвращеным товарам
#26
by es3000
Да я уже начал прямым запросом делать как в , только чего то я его довести до ума не могу. Если в него подставить условие по конкретной номенклатуре, то работает. А теперь как-то надо его доделать чтоб работал для списка номенклатуры
#32
by milan
в дело сказано. сделай фильтр по операции и номенклатуре и выбери движения столько раз сколько номенклатур.
#33
by Z1
(29 30) ну я в 27 писал наверное для другой постановки задачи. в 27 делалось есть заданный список товаров. Среди этих товаров отобрать те по которым были в движениях конкрет. код операции в 29 задача найти все товары по которым был кокретный код операции. об особенностях dbf мало чего могу сказать.
#34
by es3000
я про DBF упомянул в связи с тем, что не сработал метод УложитьСписокОбъектов. Я сгоряча решил что может быть дело как раз в DBF?
#36
by es3000
а сейчас закомментирвал "УложитьСписокОбъектов" и сделал элементарный запрос: Вообще возвращается пустая таблица, даже без колонок. Что за фигня? DBF?
#39
by es3000
Рез = База.Соединение(Соединение); {ПРЯМОЙ ЗАПРОС ПО ВОЗВРАТАМ.ERT}: FAILED! IDataInitialize::GetDataSource: Класс не зарегистрирован
#41
by FN
ХЗ я всегда использую ОЛЕДБ, да и когда изучал 1С++ в рекомендациях советовали именно его для ДБФ Microsoft OLE DB Provider для DBF баз
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Работа с Com-соединением, не возможно подключиться к базе 1С 8.1
- Тормозит выпадающее меню
- ЗУП: Не рассчитывает договорника
- ЗУП: временное прекращение планового начисления
- Установить значение реквизита справочника типа перечесление по OLE
- Текущее время 1с 8
- Перевыставление ЖД тарифа в 1с БП 2.0
- КД как увидеть параметр при загрузке?
- ЗУП: Не проставляется МКС в СЗВ-6, не распределяются выплаты
- Добавление регистратора в ОСВ по счету. Не найдено поле замены.
- формирование xml документа из 1С 8
- ЗУП -> ЗУП Корп
- v8: Разделение УАТ+УПП на отдельные базы УАТ и УПП
- v8: ЗУП: пропала база в анализе налогов и взносов
- 1С Предприятие 8.2 ошибка при установке
- Удаление Элементов справочника Контрагенты, не удалется.
- Как зафиксировать шапку таблицы
- 1С82: &НаСервере. Передача значения из серверной процедуры
- запуск службы батником
- Ошибка при обмене УТ-БП