|
программно задать тип ячейки табличного поля | ☑ | ||
---|---|---|---|---|
0
247tsm
06.12.24
✎
16:51
|
Обычные формы.
На форме обработки есть табличное поле с типом данных таблица значений, которая формируется программно и соответственно поля видны только во время работы программы. В одном из полей - ТипИсточника - строкой указан тип, например, "справочник.Сотрудники". Соседнее поле - ЗначениеПриемника - имеет составной тип - ДокументСсылка.ПриемНаРаботу, СправочникСсылка.Сотрудники, СправочникСсылка.Должности. Как сделать программно так, чтобы когда поле ТипИсточника="справочник.Сотрудники" поле ЗначениеПриемника становится полем с типом СправочникСсылка.Сотрудники и я без выбора типа сразу попадаю на выбор элемента из справочника Сотрудники? И то же самое и для типа ДокументСсылка.ПриемНаРаботу. Спасибо |
|||
1
СвинТуз
06.12.24
✎
16:58
|
"я без выбора типа сразу попадаю на выбор элемента "
Руками работаете? |
|||
2
247tsm
06.12.24
✎
17:12
|
(1) да, происходит выгрузка данных через COM-соединение из другой базы и пользователь ручками выбирает соответствие в его базе.
|
|||
3
СвинТуз
06.12.24
✎
17:14
|
Интересный вариант.
|
|||
4
247tsm
06.12.24
✎
17:15
|
я гуглил...
может плохо искал, но не нашел нужного ответа и поэтому обратился на форум. |
|||
5
СвинТуз
06.12.24
✎
17:16
|
КД2 плохой инструмент?
|
|||
6
247tsm
06.12.24
✎
17:17
|
(3) там, где можно было связать данные (по какому-нибудь уникальному ключу), всё делается автоматом, а где не соединилось, пользователь делает связь ручками.
|
|||
7
СвинТуз
06.12.24
✎
17:17
|
В эксель им выгрузите. Пусть руками коды вводят и тип.
Потом загрузите из эксель. |
|||
8
247tsm
06.12.24
✎
17:18
|
а КД2 это...?
|
|||
9
СвинТуз
06.12.24
✎
17:20
|
(8)
Забейте долго осваивать |
|||
10
СвинТуз
06.12.24
✎
17:21
|
Это вы реквизиты в объектах их связывать заставляете? )))
|
|||
11
247tsm
06.12.24
✎
17:23
|
(7) так задача была поставлена. В базе источнике (на платформе 8.3.23) используется план обмена для регистрации изменений, а в базе-приемнике (на платформе 8.3.13) будет запускаться обработка (по расписанию, а также и вручную)
|
|||
12
247tsm
06.12.24
✎
17:24
|
(10) в таблице значений, а результат связи записываю в регистр сведений
|
|||
13
СвинТуз
06.12.24
✎
17:24
|
(12)
это вы через КОМ уже данные раз залили в приемник? Изначально приемник был пустой? |
|||
14
247tsm
06.12.24
✎
17:24
|
(10) вернее в табличном поле на основе таблицы значений
|
|||
15
247tsm
06.12.24
✎
17:25
|
(13) да
|
|||
16
247tsm
06.12.24
✎
17:27
|
(13) но есть элементы справочников в источнике, у которых нет например, Фискального кода - вот и приходится связывать вручную
|
|||
17
СвинТуз
06.12.24
✎
17:27
|
(15)
Ну чо? Прикольный вариант. |
|||
18
247tsm
06.12.24
✎
17:28
|
а что насчет ответа на мой вопрос?
"вдоль дороги мёртвые с косами стоят и... тишина" |
|||
19
СвинТуз
06.12.24
✎
17:28
|
(16)
КД по ссылке может искать через ГУИД. |
|||
20
СвинТуз
06.12.24
✎
17:28
|
(18)
Ну заварил кашу = кушай. |
|||
21
247tsm
06.12.24
✎
17:29
|
можно, конечно, оставить выбор типа, но хотел сделать удобнее для пользователя
|
|||
22
247tsm
06.12.24
✎
17:31
|
(19) я так и делаю - ищу по регистру в приемнике по ГУИДу источника, но если нет совпадающего ГУИДа приходится дать пользователю порулить
|
|||
23
СвинТуз
06.12.24
✎
17:32
|
Сложно как то хоть и весело.
Реквизиты объекта в таблице значений. И их еще надо сопоставить. |
|||
24
СвинТуз
06.12.24
✎
17:32
|
(22)
Хорошая штука велосипед. |
|||
25
СвинТуз
06.12.24
✎
17:34
|
Видел одного человека он сам аналог КД2 писал.
Уверял его штука быстрее работает. |
|||
26
СвинТуз
06.12.24
✎
17:36
|
Есть определенная последовательность.
Сначала сопоставляются реквизиты объектов. Записываются в базу. Потом уже сами объекты. На момент сопоставления объектов все их реквизиты в приемнике уже есть. Тогда не будет таблиц в таблице. |
|||
27
СвинТуз
06.12.24
✎
17:37
|
Причем все реквизиты свертываются. Сопоставляются один раз, а не в каждом объекте.
|
|||
28
СвинТуз
06.12.24
✎
17:37
|
Удачи.
|
|||
29
247tsm
06.12.24
✎
17:38
|
в Таблице значений я просто показываю пользователю, например, "Наименование" из источника, а он вручную указывает соответствующий элемент справочника в приемнике и по кнопке "Записать" в базе-приемнике заполняю регистр сведений - в измерении ГУИД_Источника - просто строка(36), а в измерении ГУИД_приемника - ссылка на элемент справочника приемника
|
|||
30
СвинТуз
06.12.24
✎
17:40
|
Такие штуки на КД2 обычно по расписанию работают.
Без участия пользователя. |
|||
31
247tsm
06.12.24
✎
17:41
|
(26) а объект это что? элемент справочника?
А как сопоставить источник и приемник, если нет ключа, например, Фискального кода для справочника Сотрудники? |
|||
32
СвинТуз
06.12.24
✎
17:42
|
Сложно советовать
Просто обычно это само работает. Не пойму что там у Вас. |
|||
33
СвинТуз
06.12.24
✎
17:43
|
Вы сами себе задачу четче пропишите
и решение придет. |
|||
34
247tsm
06.12.24
✎
17:44
|
(30) это, когда первоначальное заполнение закончено.
А у нас на 90% автоматически, а остаток никак не соединить автоматически - вот и приходится делать вручную. Я не знаю, что такое КД2 (а вдруг оно мне очень нужно и я не знал, как жить без него), но скорее всего, никакой КД2 не поможет, если нет для связи уникального ключа |
|||
35
СвинТуз
06.12.24
✎
17:46
|
(34)
Код связи обычно делается в одной из баз. Можно в обеих. И гоняется. Если первоначальное заполнение из КД2 оно и без этого вроде как работает. Начет КД2 = зря. |
|||
36
СвинТуз
06.12.24
✎
17:47
|
Элементарно.
Велосипед дело увлекательное. Его изобретение в квадрате. |
|||
37
247tsm
06.12.24
✎
18:06
|
(36) велосипед или нет, не знаю, но уверен в одном: не существует алгоритма дающего на 100% правильное однозначное соединение данных источника и приемника, если нет уникального (простого или составного) ключа
|
|||
38
lEvGl
гуру
06.12.24
✎
18:15
|
(0)
ТекущаяСтрока = Элемент.ТекущиеДанные; ТипЗначенияСвойства = ТекущаяСтрока.Свойство.ТипЗначения; ЭлементУправления = Элемент.Колонки.Колонка.ЭлементУправления; ЭлементУправления.ОграничениеТипа = ТипЗначенияСвойства; ТекущаяСтрока.Колонка = ТипЗначенияСвойства.ПривестиЗначение(ТекущаяСтрока.Колонка) ТипЗначения можно сделать из строки |
|||
39
247tsm
06.12.24
✎
18:18
|
(38) спасибо, пробую
|
|||
40
247tsm
09.12.24
✎
11:09
|
сделал так:
Процедура ТабличноеПоле1ПередНачаломИзменения(Элемент, Отказ) СтрокаТипЗнч = "СправочникСсылка.Сотрудники"; эл = Элемент.Колонки.УникальныйИдентификаторПриемника.ЭлементУправления; эл.ОграничениеТипа = Новый ОписаниеТипов(СтрокаТипЗнч); Значение = эл.Значение; эл.Значение = эл.ОграничениеТипа.ПривестиЗначение(Значение); эл.ВыбиратьТип = Ложь; КонецПроцедуры в итоге тип не выбирается, но и справочник Сотрудники не открывается для выбора сотрудника - просто на кнопке "..." и при нажатии ничего не происходит. Что я упустил? |
|||
41
lEvGl
гуру
06.12.24
✎
19:43
|
Тип("СправочникСсылка.Сотрудники")
а не описаниетипов ну и колонка должна такой тип поддерживать, либо должна быть составной либо такие вещи делаются через ПВХ, где описаны допустимые типы, а у колонки тип - этот ПВХ. Это упрощенно, ПВХов на самом деле два |
|||
42
247tsm
09.12.24
✎
10:58
|
(41) не получилось, но скорее всего это связано с типом колонки, которую я получаю из запроса.
Попробую в этом направлении. Спасибо |
|||
43
СвинТуз
12.12.24
✎
11:26
|
(42)
"которую я получаю из запроса" Создайте кодом, жестко типизируя колонки, и построчно перегрузите. |
|||
44
247tsm
12.12.24
✎
11:22
|
(43) да, спасибо, так я и сделал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |