Имя: Пароль:
1C
1С v8
Контрагент и его документы
0 first_may
 
22.01.18
23:31
Добрый вечер.

Конфигурация УПП, но наверное не важно.

Можно ли запросом узнать, есть ли у контрагента какие либо проведенные документы за период?

Или может одним запросом тут не обойтись?
1 AlvlSpb
 
22.01.18
23:51
(0) Можно обратиться к метаданным и циклом проверить наличие из всех документов, но это, наверное, не стоит делать. Просто проверьте запросом регистр типа запасы на наличие нужного контрагента. Движения там и при продаже и при покупке и при производстве
2 Adilgeriy
 
22.01.18
23:56
можно создать свой регистр и подпиской на событие писать в него проведение и отмену проведения документов которые нужно отслеживать. и тогда запрос будет быстро формироваться или писать свой запрос по нужным документам с выборкой контрагента и объединения в о дну виртуальную таблицу. всё зависит от того как ты будешь часто использовать данную выборку
3 hawksib
 
23.01.18
02:34
(2) решение с добавлением регистратора в !новый регистр не лучше, чем добавление в объединение запроса по документам документа нужного типа, т.к. что при запросе не нужно править конфу

по сути, нужен список типов документов, которые необходимо смотреть, и можно выбрать их одним запросом

(1) конечно можно и по метаданным посмотреть, "но этого, наверное, не стоит делать", а в регистре типы запаса регистрируются абсолютно все документы, есть ли там движения по взаиморасчетам? не уверен
4 h-sp
 
23.01.18
04:09
(3) ну есть же уже проверка по договору, всё там уже сделано. Зачем велосипеды придумывать?
5 Balabass
 
23.01.18
04:14
(0) Ведомость по взаиморасчетам не?
6 Гипервизор
 
23.01.18
07:24
КритерийОтбора для начала.
7 zak555
 
23.01.18
07:26
(0) была покупка, а потом сторно покупки

Вопрос -- надо ли отражать?)
8 first_may
 
23.01.18
07:29
(5) Ведомость по взаиморасчетам - нет...
По нему мог быть просто заказ покупателя..

Наверное один вариант - обратиться к метаданным и циклом проверить наличие из всех документов
9 Гипервизор
 
23.01.18
07:31
(8) А чем заказ не устраивает? Если он проведен. Документ по контрагенту же.
10 first_may
 
23.01.18
07:42
(9) но он же не попадет в регистр взаиморасчетов
11 VladZ
 
23.01.18
07:47
Я бы добавил регистр сведений "Активность клиента". Через подписку на события туда писал бы инфу при проведении нужных документов.
12 first_may
 
23.01.18
07:48
(11) это в начале работы можно сделать.. а тут база работала и происходит чистка справочника, то есть таких контрагентов потом надо будет удалить.
13 VladZ
 
23.01.18
07:50
(12) Ну тогда смотришь поступления, реализацию, ПКО, РКО и банк.  На остальное я бы забил.
14 VladZ
 
23.01.18
07:55
По поводу анализа заказов от покупателя - нужно анализировать объемы. Если контрагентов, которые прошли только по заказам большое количество - учитывать их.  Если в пределах десятка - забить на них. Придут делать реальные покупки - вот тогда и можно их внести в базу.
15 zak555
 
23.01.18
08:04
(8) заказы двигают другой регистр
16 Гипервизор
 
23.01.18
08:06
(10) А при чем здесь регистр взаиморасчетов? Вопрос был как поставлен? Документы по контрагенту за период. Проведенные. Заказ вполне подходит.
Еще раз: КритерийОтбора вам чем не угодил?
17 first_may
 
23.01.18
12:38
(16) Еще раз: КритерийОтбора вам чем не угодил?

как воспользоваться?
18 first_may
 
23.01.18
14:38
Прошу помощи

1 есть список контрагентов
ВЫБРАТЬ
    Контрагенты.Ссылка,
    Контрагенты.Код,
    Контрагенты.Наименование
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Родитель)

УПОРЯДОЧИТЬ ПО
    Контрагенты.Наименование


2 есть документы контрагента
ВЫБРАТЬ
    КОЛИЧЕСТВО(ДокументыПоКонтрагенту.Ссылка) КАК Количество
ИЗ
    КритерийОтбора.ДокументыПоКонтрагенту(&Ссылка) КАК ДокументыПоКонтрагенту


Как можно соединить эти два запроса?
Что бы получить контрагент и количество доков по нему?
19 Гипервизор
 
23.01.18
15:02
ВЫБРАТЬ
    ДокументыПоКонтрагенту.Ссылка КАК Документ
ИЗ
    КритерийОтбора.ДокументыПоКонтрагенту(&Контрагент) КАК ДокументыПоКонтрагенту
20 Гипервизор
 
23.01.18
15:03
Вам же еще только проведенные надо отобрать.
21 first_may
 
23.01.18
15:14
(20) да, проведенные

а сюда &Контрагент передать список можно?
22 first_may
 
23.01.18
16:30
Не получается, полученный список контрагентов передать в отбор.
23 disk-2008
 
23.01.18
16:34
(0)В УПП - Контрагенты, Перейти, Документы по контрагенту.
24 first_may
 
23.01.18
16:35
(23) я про запрос
25 first_may
 
23.01.18
16:35
1 есть список контрагентов
ВЫБРАТЬ
    Контрагенты.Ссылка,
    Контрагенты.Код,
    Контрагенты.Наименование
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Родитель)

УПОРЯДОЧИТЬ ПО
    Контрагенты.Наименование


2 есть документы контрагента
ВЫБРАТЬ
    КОЛИЧЕСТВО(ДокументыПоКонтрагенту.Ссылка) КАК Количество
ИЗ
    КритерийОтбора.ДокументыПоКонтрагенту(&Ссылка) КАК ДокументыПоКонтрагенту


Как можно соединить эти два запроса?
Что бы получить контрагент и количество доков по нему?
26 first_may
 
23.01.18
21:04
Никто не подскажет?
27 Franchiser
 
гуру
23.01.18
23:04
Поместить во временные таблицы и связать
28 first_may
 
23.01.18
23:18
(27) не совсем понимаю, как второй запрос поместить
29 Franchiser
 
гуру
23.01.18
23:27
Поместить Доки из ...
30 VladZ
 
24.01.18
04:01
(25) Все понятно с тобой.  Забей...
Пригласи спеца - быстрее будет.
31 first_may
 
24.01.18
10:06
(29) временную могу сделать

ВЫБРАТЬ
    Контрагенты.Ссылка,
    Контрагенты.Код,
    Контрагенты.Наименование
ПОМЕСТИТЬ ВременнаяТЧ
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.Родитель В ИЕРАРХИИ(&Родитель)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОЛИЧЕСТВО(ДокументыПоКонтрагенту.Ссылка) КАК Ссылка
ИЗ
    КритерийОтбора.ДокументыПоКонтрагенту(&Ссылка) КАК ДокументыПоКонтрагенту
    


Какк использовать в критерии?
32 cw014
 
24.01.18
10:07
Поиск ссылок на объект не предлагать?
33 mistеr
 
24.01.18
10:23
(31) Критерий предназначен для отбора только по одному контрагенту. Работу со списком он не поддерживает.

Для списка нужно выполнять запросы в цикле. Либо сделать на СКД схему с двумя наборами данных, связанными через параметр.
34 first_may
 
24.01.18
10:26
(33) вот с этим я согласен, что отбор только по одному контрагенту.

Я сделал в цикле, но это не красиво со стороны 1С и долго, поэтому и спросил, можно ли как то иначе.
35 mistеr
 
24.01.18
10:31
(34) Можно через СКД, тогда СКД сама будет выполнять запросы в цикле.

Если нужно действительно быстро, сделай регистр.

Но если начать разбираться, зачем это пользователям, скорее всего окажется, что не нужно.
36 first_may
 
24.01.18
10:35
(35) "Но если начать разбираться, зачем это пользователям, скорее всего окажется, что не нужно." - переходим на другую базу и надо почистить/переместить не нужных контрагентов
37 mistеr
 
24.01.18
10:43
(36) Если разовая задача, то напиши мега-запрос, определяющий "не нужных". Через ОБЪЕДИНИТЬ.
38 mistеr
 
24.01.18
10:45
(36) Альтернативное решение - перенос с помошью КД. Перенесли проведенные документы, контрагенты перенеслись по ссылкам. Кто не перенесся — тот не нужный.
39 Timon1405
 
24.01.18
10:46
вам уже в (4) готовое решение написали. в договоре контрагента есть кнопка перейти- документы по договору контрагента. если не устроит именно по договору, можно посмотреть как там это сделано и подумать как изменить для контрагента
40 Franchiser
 
гуру
24.01.18
11:20
(31) делай в скд, использование критерия отбора приводит к образованию мегазапроса если смотреть профайлером, который ты можешь так же составить сам
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн