|
Как узнать количество по владельцам в ТЧ? | ☑ | ||
---|---|---|---|---|
0
Kamich
07.04.13
✎
17:34
|
Добрый день.
Есть две ТЧ 1)ТЧ Клиенты, с колонками Клиенты(Справочник.Кдиенты),КоличествоДетей(Число) 2)ТЧ ДетиКлиентов, с колонками Клиенты(Владелец-Справочник.Кдиенты) Как узнать сколько детей в ТЧ Клиенты принадлежат Из ТЧ ДетиКлиентов,для каждой строки Клиенты? Написал вот такую процедуру: Шаг=0; Для Каждого СтрокаДети Из Дети Цикл Для Каждого СтрокаКлиент Из Клиент Цикл Если СтрокаДети.Клиент.Владелец=СтрокаКлиент.Клиент Тогда Шаг=Шаг+1; СтрокаКлиент.КоличествоДетей=Шаг; КонецЕсли; КонецЦикла; КонецЦикла; Выводит в колонке КоличествоДетей=НомерСтроки ТЧ Дети. Подскажите,пожалуйста |
|||
1
cw014
07.04.13
✎
17:38
|
"сколько детей в ТЧ Клиенты принадлежат Из ТЧ ДетиКлиентов,для каждой строки Клиенты?" - а на русском можешь написать?
|
|||
2
Kamich
07.04.13
✎
17:42
|
(1)
Т.е. к примеру в : 1)ТЧ Клиенты есть 3 заполненных строчек; 2)ТЧ Дети есть 10 заполненных строчек И к примеру в ТЧ Клиенты в первой строке к примеру у "Иванова И.И." есть трое детей из ТЧ ДетиКлиентов. Как это число вписать программно в колонку КоличествоДетей ? |
|||
3
shuhard
07.04.13
✎
17:43
|
(2)[Как это число вписать программно в колонку ]
отменная трава |
|||
4
cw014
07.04.13
✎
17:44
|
Ты хоть связи какие нибудь сделай. Посмотри как в УТ связь с серийными номерами по "КлючСтроки" сделано
|
|||
5
Kamich
07.04.13
✎
17:46
|
(4) Я новичок,
В УТ я уж точно запутаюсь) Если есть какие нибудь предложение,буду рад) Можно использовать для примера код в (0) |
|||
6
cw014
07.04.13
✎
17:47
|
(5) 10.3 найди - там все просто и лекго
|
|||
7
Kamich
07.04.13
✎
17:48
|
(6) Документ какой ?
|
|||
8
2S
07.04.13
✎
17:50
|
ключ -айди по уникальному щначеню клиента. Или отбор во второй ТЧ с помощью структуры.
|
|||
9
cw014
07.04.13
✎
17:50
|
(7) Реализация товаров и услуг
|
|||
10
cw014
07.04.13
✎
17:50
|
(7) ЧекККМ
|
|||
11
Kamich
07.04.13
✎
17:54
|
(10) (8)
Если ДокументОбъект[ИмяТЧ].Количество() = 0 Тогда МаксКлюч = 1; Иначе // Если в табл. части уже присутствуют строки, то новое «свободное» значение ключа // рассчитывается от максимального существующего значения. СписокКлючей = Новый СписокЗначений; СписокКлючей.ЗагрузитьЗначения(ДокументОбъект[ИмяТЧ].ВыгрузитьКолонку("КлючСтроки")); СписокКлючей.СортироватьПоЗначению(НаправлениеСортировки.Убыв); МаксКлюч = СписокКлючей[0].Значение + 1; КонецЕсли; Возврат МаксКлюч; |
|||
12
2S
07.04.13
✎
17:54
|
А вообще запрос тут рулит с группировкой по клиенту и значением количества второй ТЧ
|
|||
13
Kamich
07.04.13
✎
17:54
|
(10) Я верно смотрю?
|
|||
14
Kamich
07.04.13
✎
17:55
|
(12) Предлагаете запорсом?
|
|||
15
Kamich
07.04.13
✎
17:55
|
*запросом
|
|||
16
cw014
07.04.13
✎
17:57
|
(15) Ну впринципе верно, только нужно такую выборку делать один раз, и хранить значение глобально для формы и потом его и инкрементровать
|
|||
17
Kamich
07.04.13
✎
17:57
|
(12)
Разве из этого ничего не выйдет?: Шаг=0; Для Каждого СтрокаДети Из Дети Цикл Для Каждого СтрокаКлиент Из Клиент Цикл Если СтрокаДети.Клиент.Владелец=СтрокаКлиент.Клиент Тогда Шаг=Шаг+1; СтрокаКлиент.КоличествоДетей=Шаг; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
18
cw014
07.04.13
✎
17:59
|
(17) Не чуешь, попахивает быдлокодом?
|
|||
19
2S
07.04.13
✎
18:00
|
Семерочник? Не кошерно так. Запросом и быстрее будет. Я с мобилы, не айс запросы писать. Сам дерзай...
|
|||
20
Kamich
07.04.13
✎
18:11
|
(18) (19)
Вот теперь проблема над запросом... |
|||
21
cw014
07.04.13
✎
18:12
|
(20) Ну давай уже придумывай сам, тебе толчок дали... Взрослый же человек
|
|||
22
Kamich
07.04.13
✎
18:14
|
(21)
Я уже дней 4 наверное мачаюсь...все никак. Если конечно есть у Вас время на помощь в моем вопросе,то было бы здорово) |
|||
23
cw014
07.04.13
✎
18:15
|
(22) Если у тебя есть финансы на оплату помощи, я потрачу на тебя 1 час
|
|||
24
Kamich
07.04.13
✎
18:23
|
(23) Средств нет,если времени нет,все равно спасибо!
P.S. Я за свой опыт деньги не беру,ведь когда я и сам был "таким". |
|||
25
cw014
07.04.13
✎
18:25
|
(24) Тебе просто подсказали в какую сторону смотреть. У тебя на выбор несколько путей. Дерзай, все получится у тебя
|
|||
26
Kamich
07.04.13
✎
18:28
|
(25)
Т.е. делать запрос и использовать в запросе "СГРУППИРОВАТЬ ПО"? |
|||
27
kosts
07.04.13
✎
18:31
|
(26) Запрос применяют для получения данных из базы. Для расчета данных на форме запрос не катит.
|
|||
28
cw014
07.04.13
✎
18:32
|
(26) Ну подумай сам, как лучше для тебя сделать
|
|||
29
Kamich
07.04.13
✎
18:32
|
(27)
Тогда как быть в такой процедуре (0) ? |
|||
30
kosts
07.04.13
✎
18:40
|
В (0) в принципе рабочее направление.
Поменять местами циклы, присваивание и обнуление перенести в правильные места.
И переименуй уже реквизит "Клиент" на "Ребенок в таблице "Дети"... |
|||
31
Kamich
07.04.13
✎
18:41
|
(28) (27)
Все разобрался я поменял местами: Шаг=Шаг+1; СтрокаКлиент.КоличествоДетей=Шаг; На СтрокаКлиент.КоличествоДетей=Шаг; Шаг=Шаг+1; |
|||
32
Kamich
07.04.13
✎
18:41
|
(31)
И получилось: Шаг=0; Для Каждого СтрокаДети Из Дети Цикл Для Каждого СтрокаКлиент Из Клиент Цикл Если СтрокаДети.Клиент.Владелец=СтрокаКлиент.Клиент Тогда СтрокаКлиент.КоличествоДетей=Шаг; Шаг=Шаг+1; КонецЕсли; КонецЦикла; КонецЦикла; |
|||
33
Kamich
07.04.13
✎
18:44
|
(30) Вот вот )))
Спасибо )))) |
|||
34
kosts
07.04.13
✎
18:48
|
Если структуру БД еще можно менять, то практичнее было не использовать связь по владельцу (Клиент-Ребенок), а добавить в таблицу Дети реквизит "КлиентВладелец".
Т.е. сделать таблицу дети такую. Ребенок|Клиент|Сумма А то теоретически возможно, что в одном документе у ребенка будет один владелец, а в другом документе другой владелец... (Мало ли, один раз ребенка привез один человек, второй раз другой человек). |
|||
35
Kamich
07.04.13
✎
18:53
|
(34) Логично)))
Да еще самое время менять))) |
|||
36
Kamich
07.04.13
✎
18:53
|
(34) Спасибо)Спасибо)И Еще раз Спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |