![]() |
![]() |
![]() |
|
Динамический список с любимой услугой контрагента Fedor-1971, DemonShinji2, nAPACEHAK, Hawk_1c, Доминошник, rozer76, Silgis, Crusher, Ильф, maxab72, Fish, Лирик, orakool, probably, Timon1405, АгентБезопаснойНацио, Волшебник, KJlag, igouranga, qwerty, Builder, dmt, PR, Михаил Козлов, Джордж1, Kongo2019, Prog_man, Asmody, denk32, Fragster, toypaul, Рамиль Маугли, youalex, hunter76, ЕRPe, nick86, NillKiggers, 1Снеговик, ОбновляторОдинЭс, Caesar, DAKE, phabeZ, ldo6, okmail, elka302, СвинТуз, abfm, zzz_zzz_zzz, dchumak
| ☑ | ||
---|---|---|---|---|
0
Anterian
naïve
08.07.25
✎
17:07
|
Всем привет. Есть следующая задача: нужно в динамическом списке справочника контрагенты вывести доп.колонку "любимая услуга", которая покажет услугу, которая больше всего раз была оказана контрагенту (информацию брать из расходной накладной). Как это реализовать? Написал вот такой запрос, но не уверен что в правильном направлении двигаюсь, есть мысли как это можно сделать?
[CODE]ВЫБРАТЬ РасходнаяНакладнаяТовары.Номенклатура КАК Номенклатура, КОЛИЧЕСТВО(0) КАК ОказаноУслуг ПОМЕСТИТЬ ВТ_Услуги ИЗ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары ГДЕ РасходнаяНакладнаяТовары.Номенклатура.ВидНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ВидыНоменклатуры.Услуга) СГРУППИРОВАТЬ ПО РасходнаяНакладнаяТовары.Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СправочникКонтрагенты.Ссылка КАК Ссылка, СправочникКонтрагенты.ПометкаУдаления КАК ПометкаУдаления, СправочникКонтрагенты.Код КАК Код, СправочникКонтрагенты.Наименование КАК Наименование, СправочникКонтрагенты.Предопределенный КАК Предопределенный, СправочникКонтрагенты.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных ИЗ Справочник.Контрагенты КАК СправочникКонтрагенты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Услуги КАК ВТ_Услуги ПО СправочникКонтрагенты.Ссылка = ВТ_Услуги.Номенклатура[/CODE] |
|||
1
Волшебник
08.07.25
✎
17:15
|
соединение доставило
|
|||
2
СвинТуз
08.07.25
✎
17:17
|
Как-то утомительно.
Слишком много букв писать, чтобы объяснить. Литературу полистай. |
|||
3
СвинТуз
08.07.25
✎
17:19
|
1. выбрать из документов все услуги с их количеством по контрагентам.
2. Найти услугу по которой максимум 3. Присоединить 4. Не забыть указать ее в списке полей. Иначе зачем? |
|||
4
Волшебник
08.07.25
✎
17:20
|
(0) Это не должен быть динамический список. Сделайте отчёт
|
|||
5
Волшебник
08.07.25
✎
17:20
|
(3) Лучше делать запрос к регистру продаж
|
|||
6
СвинТуз
08.07.25
✎
17:22
|
(5)
Не пугайте юношу. Хотя верно конечно. (0) Прежде чем на форуме позориться. Стоит в консоли помучаться. Нет желания за Вас жевать. Жеваное в рот класть. |
|||
7
СвинТуз
08.07.25
✎
17:26
|
(0)
Любимых услуг может быть больше чем одна. Не сделаете выбор = будет умножение строк. |
|||
8
СвинТуз
08.07.25
✎
17:27
|
Точнее ошибка из-за множественности ключевого поля в динамическом списке.
|
|||
9
Anterian
naïve
08.07.25
✎
17:31
|
(6) Очевидно, что нужно брать из регистра данные, но я выполняю тестовое, где не говорится о его создании. По поводу позора на форуме, в чем заключается позор? Если нет желания "жевать" - не нужно было отвечать, все просто
|
|||
10
СвинТуз
08.07.25
✎
17:33
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список.Параметры.УстановитьЗначениеПараметра("Контрагент", Ссылка.Контрагент); |
|||
11
СвинТуз
08.07.25
✎
17:34
|
(9)
Вы же в консоли это не запускали? Не тестировали? Тогда зачем пришли? |
|||
12
СвинТуз
08.07.25
✎
17:36
|
В чем позор не понимаете.
О чем тогда говорить? По вопросу видно, ни одной книги не читали. Консоль не открывали. Хочется все и сразу. |
|||
13
СвинТуз
08.07.25
✎
17:41
|
(9)
Пардон. Но Личное впечатление. Офицер не желающий участвовать в СВО после года сборки мебели по заказу подался в 1с Не будете сами делать не научитесь. |
|||
14
СвинТуз
08.07.25
✎
17:46
|
(10)
Нужно если контрагент один. В общем в форме списка справочника не пригодится. |
|||
15
Волшебник
08.07.25
✎
21:39
|
(0) будет тормозить.
Лучше заведите реквизит или свойство, которые обновляйте рег. заданием раз в сутки. Кстати, его можно сделать в расширении. Редкий случай, когда реквизиты в расширениях реально могут быть полезны. Но я бы рекомендовал вообще не париться, а сделать отчёт. Или просто надпись в карточке контрагента, которую обновлять ПослеОткрытия. В процедуре ПриОткрытии подключите обработчик ожидания с периодом 0.1 сек и режимом "Одноразово", в котором делайте запрос по одному контрагенту. К регистру продаж, разумеется. Убедитесь, что поле Контрагент проиндексировано. Надпись сделайте гиперссылкой. По клику открывайте отчёт по продажам по контрагенту за последний год. Всегда помните про период. |
|||
16
Fedor-1971
09.07.25
✎
10:15
|
(15) Для теста норм, мы не знаем на какую конфигурацию выдали тест ТС
(0) Если уж тест делаешь, то, для начала, разберись в сравнении ссылок. По запросу: 1. в ВТ_Услуги: - а где собственно Контрагент, которому оказали услуги? - Количество(0) - это всегда 0 услуг, как минимум Количество(Номенклатуры), т.е. сколько раз клиент получал услугу 2. по результирующему запросу: - соединение по условию ПО СправочникКонтрагенты.Ссылка = ВТ_Услуги.Номенклатура - это пестня, контрагент сравнивается с услугой - это как? - а где полученная услуга? - собственно, Контрагент может получить несколько услуг и ДС повалится с ошибкой "Дублирование ссылок", нужно получить гарантированно одну запись в ВТ_Услуги - а вот как, сам придумай. |
|||
17
maxab72
09.07.25
✎
10:27
|
(0) услуги надо брать не из документа, а из регистра с продажами. Услуги требуются за все время или за какой-то период (последние три года к примеру)? Где в запросе группировка и подсчет числа оказанных клиенту услуг? Без этого не определите степень любви клиента к той или иной услуге.
|
|||
18
Fragster
гуру
09.07.25
✎
11:06
|
правильнее всего добавить отдельный РС или "доп сведение" и обновлять его по расписанию. опционально добавить план обмена (ну или флаг в тот самый регистр сведений), в который регистрировать контрагента при проведении документов РТиУ, чтобы в регламентном задании обновлять не всех, а только тех, по которым были изменения.
|
|||
19
Fragster
гуру
09.07.25
✎
11:07
|
получать эти данные динамически - пособие по тому, как превратить базу в кирпич
|
|||
20
Fish
гуру
09.07.25
✎
11:09
|
(19) судя по заданию "(информацию брать из расходной накладной)" - это учебная задача, к реальным базам не имеющая отношения.
|
|||
21
maxab72
09.07.25
✎
11:23
|
(20) плохому с самого начала учат. нет, чтоб учить хорошему...
|
|||
22
Fedor-1971
09.07.25
✎
11:58
|
(21) почему так-таки плохому? вот ТС влетит мигом с таким запросом - дальше с ним говорить будут о крепком 0 уровне знаний. Возьмёт ли кто его за падавана - большой вопрос.
Дополнительные вопросы: про дубли ссылок, как лучше, где ещё взять данные - скорректируют планку умений ТС |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |