Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Найти документ по реквизиту (http://forums.kuban.ru/f1040/najti_dokument_po_rekvizitu-2181924.html)

Savrusha 09.02.2012 15:53

Найти документ по реквизиту
 
Мне нужно найти документы поступления по реквизиту "входящий номер", но интересуют только документы определенного поставщика и из определенного года.

докПнкВБух = Документы.ПоступлениеТоваровУслуг.НайтиПоРеквизиту("НомерВходящегоДокумента",СокрлП(РНК.ДокументОснование.выбНомерДок));

В общем вопрос:
Как открыть выборку по нескольким реквизитам?
Сразу оговорюсь Запросом не подойдет.

Buzz 09.02.2012 16:00

Тупым перебором, если запрос не хочешь. НайтиПоРеквизиту первый попавшийся вернет.

Lexusss 09.02.2012 16:07

Если не хочешь использовать запросы в восьмерке - сразу закрой её и возвращайся к 7.7.

Savrusha 09.02.2012 16:11

2 (3) Все бы ничего но я использую через ole и из 7-ки и как вставить туда запрос не знаю (а если и знаю, то получается очень не красиво)

Uho 09.02.2012 16:11

3-Lexusss > +1000

Savrusha 09.02.2012 16:11

2 (2) а как-нибудь выборку по какому-ниб отбору нельзя?

Buzz 09.02.2012 16:13

Не знаешь как запрос тогда просто
OLE.ВыбратьДокументы(ДатаНачала,ДатаКонца)
Пока OLE.ПолучитьДокумент() = 1 Цикл
ТекДок = OLE.ТекущийДокумент()
Если ТекДок.НомерВходящегоДокумента = Нужный Номер Тогда
и т.д. и т.п.

Lexusss 09.02.2012 16:18

Запрос = Восьмерка.NewObject("Запрос");
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка
|ИЗ Документ.ПОступлениеТоваровИУслуг
|ГДЕ
| Период = ДАТАВРЕМЯ(2009,1,1)
| И НомерВходящегоДокумента = """+СокрлП(РНК.ДокументОсно вание.выбНомерДок)+"""
| И Чтонить еще
|");
Запрос.Выпонить().Выбрать()

Savrusha 09.02.2012 16:19

2 (7) про перебор я понимаю, просто думал может кто-знает как без этого обойтись. Уж больно много документов и работает долго.

Lexusss 09.02.2012 16:19

(7) Ты тож закрой 8ку и больше не открывай. Чудесного кода в мире станет хоть чуточку меньше!

Buzz 09.02.2012 16:20

Я чет думал он из 8-ки семерку дергает

Lexusss 09.02.2012 16:21

(9) Я уже года три, как плотно сижу на 8ке. Пусть и крайне мало времени уходит на кодинг, но за это время выборку использовал раз 5 от силы. А запросов написано - не счесть.

Savrusha 09.02.2012 16:34

1. перебор (по понятным причинам делать не буду)
2. запрос (придется остановиться на предложении из (8)
3. Есть?

2 (11) нет из 7-ки в 8-ку закидываю документ

Lexusss 09.02.2012 16:39

(13) Вариант записи в другую базу очень некрасив. Гораздо правильнее в восьмерки загружать из семерки. Особенно это становится актуальным в связи с выходов все новых и новых конф на чистом клиент-сервере. Кроме того, в предложенном мной варианте, у тебя будет вся "мощь" языка 8ки и механизм транзакций.

Uho 09.02.2012 16:48

[quote=Lexusss;23217700]Вариант записи в другую базу очень некрасив[/quote]+1
используй КД

Uho 09.02.2012 16:52

+15 конечно, если это не разовая "перекидка"

Reaper 09.02.2012 16:53

(12) Выборки нужны... но только ежели надо тыщ 100 элементов справочника обработать гуртом.

DeiMos 09.02.2012 18:34

Ничего не понимаю....
(13): "из 7-ки в 8-ку закидываю документ "
При этом в сабже: "ПоступлениеТоваровУслуг"

ВОПРОС: Это где это в 7.7 такой вид документа?
И где это такой реквизит у документа-основания "выбНомерДок"?


Семёрочный вариант, если без запроса, то так:
Док = СоздатьОбьект("Документ.ЧёТоТамПоступлениеТвоё");
Док.ВыбратьПоРеквизиту("Контрагент", НужныйТебеКонтр);

НужныйНомер = СокрлП(РНК.ДокументОсно вание.выбНомерДок);
Пока Док.получитьдок()=1 Цикл
Если Док.ВходящийНомер = НужныйНомер Тогда...
КонецЦикла

Savrusha 10.02.2012 07:45

2 (18) ищу документ в восьмерке. тут только маленький кусочек.
Реквизитов и документов в 7-ку (да и в 8-ку) как известно можно добавить много любых :-)
На языке 8-ки нужно найти документ по 3 реквизитам - вот и есть задача. Остальное наоборот писал для понятности


Текущее время: 12:17. Часовой пояс GMT +3.