|
Перенос данных из одной ТЧ в другую и группировка | ☑ | ||
---|---|---|---|---|
0
miniconda
05.11.19
✎
20:16
|
У меня есть бизнес-процесс МойБП, у которого есть форма задачи.
На этой форме у меня есть 2 ТЧ — ТЧПервая и ТЧВторая У ТЧПервая есть реквизиты Номенклатура, Поставщик (СправочникСсылка.Контрагенты) и Сумма У ТЧВторая есть реквизиты Контрагент (СправочникСсылка.Контрагенты) и Сумма Мне нужно чтобы после ввода всех данных в ТЧПервая, при нажатии на кнопку в ТЧВторая группировались данные по Контрагентам и выводилась общая сумма То есть если в ТЧПервая будут заказы к Поставщик1 на суммы 50.000 и 30.000, то в ТЧВторая вывелось Поставщик1 80.000 Вопрос: как это примерно реализовать? |
|||
2
Многолетний Апельсин
05.11.19
✎
20:19
|
ВременнаяТаблицаЗначений = ТЧПервая.Выгрузить();
ВременнаяТаблицаЗначений.Свернуть("Контрагент","Сумма"); ТЧВторая.Загрузить(ВременнаяТаблицаЗначений); |
|||
3
Многолетний Апельсин
05.11.19
✎
20:22
|
(2) Малость опечатался, надо написать
ВременнаяТаблицаЗначений.Свернуть("Поставщик","Сумма"); |
|||
4
Garykom
гуру
05.11.19
✎
20:23
|
(2) Три строчки на 1С.
На Java (или других больших ЯП) сначала придется писать пару-тройку функций, каждая по несколько экранов. И то нихрена не универсально будет, только для ограниченных типов значений внутри "Контрагент" и "Сумма" |
|||
5
miniconda
05.11.19
✎
21:59
|
(2) И все это корректно отобразится на форме?
А где это лучше всего ввести? В модуле объекта, да? Но там же есть всякие обработчики событий, в каком-то из них? |
|||
6
hhhh
05.11.19
✎
22:09
|
(5) "Мне нужно чтобы после ввода всех данных в ТЧПервая, при нажатии на кнопку"
то есть это надо ввести в процедуре, которая вызывается при нажатии на кнопку. |
|||
7
miniconda
05.11.19
✎
22:11
|
(6) Точно. Спасибо
|
|||
8
miniconda
06.11.19
✎
09:56
|
(6) Подскажите, а что делать, если у ТЧПервая есть другие реквизиты, которых
нет в ТЧВторая? Выгрузка произойдет корректным образом тогда или нет? И еще вопрос: как правильно обратиться к этой ТЧ? Она заполняется на форме. Объект.ТЧПервая.Выгрузить или как то иначе? |
|||
9
miniconda
06.11.19
✎
10:01
|
(2) (6) И если я смотрю то значение ВременнаяТаблицаЗначений, то у меня вот так:
http://ipic.su/img/img7/fs/Snimok2.1573023607.png В эту переменную точно заносится таблица значений? |
|||
10
Ёпрст
06.11.19
✎
10:07
|
(9) F11
|
|||
11
hhhh
06.11.19
✎
10:07
|
(8) да, корректным (9) да, точно
|
|||
12
miniconda
06.11.19
✎
10:31
|
(11) Свернуть вроде как получается, но во вторую ТЧ на форме все равно значения не заносятся:
http://ipic.su/img/img7/fs/Snimok3.1573025447.png Я свернул, получилось по 3 поставщикам. Появились 3 строки без текста. Как занести значения?) Извините уж, только учусь |
|||
13
catena
06.11.19
✎
10:46
|
(12)Проверить, что имена колонок совпадают и все колонки нужного типа.
|
|||
14
Ёпрст
06.11.19
✎
10:51
|
(0)
|
|||
15
miniconda
06.11.19
✎
10:54
|
(13) А если имена колонок не совпадают? Как сделать так, чтобы колонка "Поставщик" занеслась в колонку "Контрагент"?
|
|||
16
mc lammer
06.11.19
✎
10:57
|
(15) ВременнаяТаблицаЗначений.Колонки.Поставщик.Имя = "Контрагент";
|
|||
17
catena
06.11.19
✎
11:07
|
(15)Либо пстрочно, либо перименовывать. Загрузить() не знает о ваших синонимах.
|
|||
18
lEvGl
гуру
06.11.19
✎
11:08
|
зопросом
Запрос = Новый Запрос; Запрос.Текст = "Выбрать ТЧ.Поставщик Как Контрагент, ТЧ.Сумма Поместить ВТ Из &ТЧ Как ТЧ; Выбрать ВТ.Контрагент, Сумма(ВТ.Сумма) Как Сумма Из ВТ Как ВТ Сгруппировать По ВТ.Контрагент" Запрос.УстановитьПараметр("ТЧ", ПерваяТЧ) ВтораяТЧ.Загрузить(Запрос.Выполнить.Выгрузить()) |
|||
19
lEvGl
гуру
06.11.19
✎
11:09
|
если бизнес процесс твой а не типовой, то имена сделать колонок одинаковыми, об этом надо думать сразу на этапе добавления метаданных
|
|||
20
miniconda
06.11.19
✎
11:26
|
(17) А как это реализовать построчно?
Для Каждого Строка Из ВременнаяТаблицаЗначений Цикл
Но я ведь так не бегу по строчкам ТЧ Оплата. Как правильно? |
|||
21
hhhh
06.11.19
✎
11:36
|
(20) правильно в (16)
|
|||
22
catena
06.11.19
✎
11:36
|
(20)Иногда полезно кроме форума читать и справку.
стр = Объект.Оплата.Добавить(); стр.Контрагент = Строка.Поставщик; |
|||
23
miniconda
06.11.19
✎
11:51
|
(22) Сделал вот так, работает. Но как сделать так, чтобы значения не заносились второй раз, если они уж есть?
Для Каждого Строка Из ВременнаяТаблицаЗначений Цикл
(21) Как в (16) не сработало у меня |
|||
24
hhhh
06.11.19
✎
12:02
|
(23) Объект.Оплата.Очистить()
|
|||
25
catena
06.11.19
✎
12:03
|
(23)С таким уровнем, переименовать колонки будет правильнее. Ну или запросом, как чуть выше показали.
|
|||
26
lEvGl
гуру
06.11.19
✎
12:51
|
(21) костыльная тема, хотя и будет работать
|
|||
27
hhhh
06.11.19
✎
13:22
|
(26) значит в типовых куча костылей
|
|||
28
lEvGl
гуру
06.11.19
✎
14:16
|
(27) не новость)
|
|||
29
тарам пам пам
06.11.19
✎
15:42
|
(26) Вот ты лучше бы вообще молчал насчет костылей со своей перегонкой таблиц между сервером 1с и СУБД в (18).
|
|||
30
lEvGl
гуру
06.11.19
✎
16:00
|
(29) мухаха
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |