powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / скопировать свойства элемента управления
12 сообщений из 12, страница 1 из 1
скопировать свойства элемента управления
    #37045073
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(мы сами не местные)
хочу странного:

- скопировать свойства элемента управления во вновь созданный (кодом)

практикуется ли в 1С8 (82 - конкретно) скажем обход всех свойств элемента управления (контрола) с установкой (если не ReadOnly) в копии. Есть ли какая-то коллекция (типа Properties) свойств которую можно обшарить?



- конкретно мне нужно для нескольких колонок результата SQL запроса к внешнему хранилищу, где-то хранить их настройки отображения [и вообще всего]. Колонок возвращается много, (или в разных запросах по разному) я хочу иметь возможность их выводить все
Код: plaintext
ЭлементыФормы.Объекты.СоздатьКолонки();
(- тут я вижу всё, что получил (таб.поле Объекты у меня вообще пустое))

, но после этого по умолчанию вывести только те, что имеют настройки.
для этого, скажем, можно бы было создать табличное поле с предопределёнными колонками например
ОбъектыШАБЛОН
- остаётся после
Код: plaintext
ЭлементыФормы.Объекты.СоздатьКолонки();
обойти в
Код: plaintext
ЭлементыФормы.ОбъектыШАБЛОН.Колонки
все колонки, и выкопировать из него все (записываемые) св-ва в одноимённые колонки
Код: plaintext
ЭлементыФормы.Объекты.Колонки
но что-то не могу найти, как не перечисляя тупо в коде все виды св-в
Код: plaintext
1.
2.
3.
Колонка.АвтоВысотаЯчейки =КолонкаШАБЛОН.АвтоВысотаЯчейки;
Колонка.АвтоОтметкаНезаполненного=...
....
пробежаться по всем настраиваемым свойствам элемента упр-я.


думаю, гуру в состоянии подсказать свой путь (для хранения шаблона св-в колонок/элементов управления (далеко не всех колонок результатов)).


заранее спасибо.
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37045990
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишите 8.2 а вопросы задаете по 8.1 "ЭлементыФормы".

Не встречал подобной возможности. Но в принципе - вы же знаете какие свойства вы используете? Максимум десяток - их и храните.
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37046042
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с,

гм. на управляемое намекаете?

не, я толстому клиенту (под 8.2 таки) обработку толстую пишу. (всё одно к внешним данным хожу).


самое забавное - св-ва колонки таки легко передать. кроме предварительно настроенного элемента управления. тот - ридонли св-во.


т.ч. пришлось не выделываться, а честно положить преднастроенные колонки, а избыточные добавлять в цикле сверки колонок ТД и ТП, не выполняя <<СоздатьКолонки();>>, т.е. самому, без онсамбля ( они, лишние колонки - всё одно чисто информативные). (там забавно тоже, присвоив переменной колонки ТП обнаруживаем внутре колонки ТД - т.е. "значения" ТП)


итого - и вместо одной вкладки с изменяемым (под вид объектов) содержимым у меня будет 4-5 - по одной на каждый вид.
кодить (копипастить) чуть дольше - но юзеру тупо нагляднее. Хотя можно наверное и на одной выпилить, но кодить, навскид, много лишнего.



ЗЫ а куда на управляемой форме внешние данные клиента класть? там коллекции-то клиентские есть? (киньте ссылкой на кусок кода, если не затруднит).
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37046135
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы не учитываете что под 8.2 в управляемом - пользователь сам может изменить любое положение колонок и отображение и тд...


Что пишите то? В чем задача изначально заключается?
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37046175
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сВы не учитываете что под 8.2 в управляемом - пользователь сам может изменить любое положение колонок и отображение и тд...лично мне это не упало.

буду рисовать морды (когда и если) - тогда посмотрю.


Программист 1сЧто пишите то? В чем задача изначально заключается?
задача - получать внешние данные (быть может изменить (другие, настроечные - влияющие на приём получаемых) внешние данные, на внешнем же хранилище, чтобы потом ровнее получать рабочие. Данные распихать в объекты (документы в основном) 1С.


Данные я получать и распихивать могу вслепую (форма с одной кнопкой - наше всё), но вот настройки надо подкручивать - ползатель должен видеть, где он пустоту получит, если настройки загодя не поправит. Ибо посмотреть и поправить - дело минутное, а получить документы с проведением (родными механизмами 1с) - по несколько секунд на документ. (там потом еще гирляндочка порождаемых одного из другого уже групповой обработкой потащится внутри одноэсины, но это уже не совсем моя тема, хотя прикидочно посмотрел - тоже не шустро. хотя пока не так много - по ~500 первичных доков в день).
- вот тут и надо показать ему, ползателю, и те данные, и эти, и что может в итоге получиться (где дыры). так что немного мордатости приходится рисовать. к внешним данным и порождаемым ими ссылкам.
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37046979
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нууу в 8.2 пустоту не получит - появится полоса прокрутки (если не запретили...).
А во вторых после изменения формы под себя пользователь если где-то что-то не так сделал - нажмет кнопку вернуться к первоначальному (вашему).
В третьих непонятно - а как вы собираетесь учитывать разрешение экрана... Оно у каждого свое.


ps Бросайте 8.1 переходите на 8.2 .... тут 83 на подлете
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048293
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сНууу в 8.2 пустоту не получит - появится полоса прокрутки (если не запретили...).тут "пустота" - это отсутствие настроенной связи между внешними (не 1С) и внутренними (1с) данными. Они, связи (данные о связывании) у меня хранятся снаружи (там же где и собственно сами внешние данные), и их-то (некоторые из них, по компетентности ползателя) я хочу дать ползателю в интерфейсах 1С . (там же, где он будет получать и раскладывать (не руками, ессно, а кнопкой(кнопками)) в итоге эти данные по объектам 1С. т.е. тут "получит пустоту" - означает именно отсутствие назначенного объекта (данных) 1С (отсутствие прописанной связи). (редко [почти никогда] - отсутствие заполнения необходимого 1C-у поля в исходных данных).


Программист 1сА во вторых после изменения формы под себя пользователь если где-то что-то не так сделал - нажмет кнопку вернуться к первоначальному (вашему).
В третьих непонятно - а как вы собираетесь учитывать разрешение экрана... Оно у каждого свое. тут дело такое. обрабоктой должно мочь пользоватся полтора человека -
1. старший оператор (и кто за него) - в оперативном режиме - при (и непосредственно перед, в том же акте) выгрузке данных.
2. собственно старший менеджер (и кто за него) - ответственный за связь и синхронность данных (состояние справочников, и док-тов)

кстати, другие и не войдут на сторонний сервер. ибо незачем. А на 1.5-то человека сойдёт и настроенное на почти минимальное разрешение (я в удалёнке дорихтую. чувствуется - сильно поджать формочки по размеру придётся).

да и формочки у меня тягучие. (табличные части настраиваемые).


Программист 1сps Бросайте 8.1 переходите на 8.2 .... тут 83 на подлете я вот тут таки нашел кажется плюшку в 8.2. а именно -
Код: plaintext
ИзменитьРеквизиты()
-мне, чтобы не копипастить массово одну форму в 3-х (дальше - больше)экземплярах (с массовой заменой реквизита-ссылки и обращения к Справочник.Ссылка) - вероятно пригодилось бы.

- сейчас буду пробовать (в стиле 8.1) назначить реквизит множественного типа, но работать в полёте только с одним (типом). (не давая ползателю выбора типа). авось получится. (ещё раз стандартную "Групповую обработку..." покурю - посмотрю внимательнее как там с типами обходятся).


PS насчёт прекращения рыданий с нежёсткой типизацией переменных (и разделением оператора присваивания и оператора передачи по ссылке) в 8.3 ещё не надумали?
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048601
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гм, простите бомжа неместного,

- а вот выход из цикла обхода колонок табличного поля при применении метода Удалить() - это известная багофича <.....> одноэсины, или только для колонки с именем содержащим "object" наблюдается???
(колонку "Main", вроде легко удалило, один раз, не вываливаясь. но врать не буду - в отладчике один раз всего проследил, больше не получалось. а вот на "object_address"/"object_addresы"/"object_addressы" - стабильно цыкл покидает (и дальше по коду идёт, хотя там неохваченных ещё цыклом колонок - прям в табло видать навалом). этакое недержание цыклов с ней, болезной приключается)

я даже перепугался - думал он вместо колонок ТП в колонки ТЗ лезет, по ассоциации (ну не ясно же, где он по значению, где по ссылке)
-нет, вроде есть метод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
КолонкиТабличногоПоля (TableBoxColumns)
Удалить (Delete)
Синтаксис:

Удалить(<Индекс>) 
Параметры:

<Индекс> (обязательный)

Тип: Число; КолонкаТабличногоПоля. Индекс удаляемой колонки, либо сама колонка. 
Описание:

Удаляет заданную колонку из табличного поля.

Доступность: 

Толстый клиент. 
Пример:

// Удаление первой колонки:
ЭлементыФормы.ТабличноеПоле.Колонки.Удалить( 0 );
 


а то я весь в непонятках. может чего в тонкостях цыканья 1с-ом по "для каждого" не понимаю.


ЗЫ вот в отладчике слежу - строго после второго удаления выпадает из цикла. не после первого. (первым удаляло "object_name").
Поменял имена - теперь выскакивает на других колонках. тоже аккурат после второго удаления. (1С:Предприятие 8.2 (8.2.13.202))

цыкл простой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
	 IF  КолонкиПредопр =Неопределено THEN
		//НеПервыйОбходКолонок =1;
		КолонкиПредопр = Новый Соответствие;
		 FOR   EACH  лКолонкаТП IN лОбъектыТП.Колонки  DO 
			ИмяКол = лКолонкаТП.Имя;
			TRY 
				ЕстьКолонка = True ;
				ЕстьКолонка = лОбъекты.Колонки[ИмяКол]<> Неопределено;
			EXCEPT 
				ЕстьКолонка = FALSE ;
			ENDTRY;
			 IF  ЕстьКолонка THEN 
				//Покажем настройки шаблоннык
				КолонкиПредопр.Вставить(ИмяКол,лКолонкаТП);
				лКолонкаТП.ТекстШапки = СтрЗаменить( лКолонкаТП.ТекстШапки, "object" ,ТипМой); 
			 ELSE 
				//нет таких колонок в данных
				//лКолонкаТП.Видимость = False;
				//лКолонкаТП.ИзменятьВидимость=False;				
				//лОбъектыТП.Колонки.Удалить(лКолонкаТП); //Нельзя БИП, 1с с дуба падает сразу, БИП
				лОбъектыТП.Колонки.Удалить(лОбъектыТП.Колонки.Индекс( лКолонкаТП));// а так ? - ТО ЖЕ САМОЕ
			 ENDIF ;		
		ENDDO;
	//ELSE
	 ENDIF ;
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048611
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнённые данные - цикл оставляет без внимания последнюю колонку (если "Удалить()")
(накидал кучу колонок - оставляет теперь Колонка1)
И нормально работает , если отключать видимость.

- кто-то из платформописцев с индексами на обходе на 1-ку накосячил ??? (хехехе)
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048615
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1chainik, пиши на техподдержку с приложенным примером.

Я уже заколебался с ними переписываться. Из 10 ошибок - 4 признали фичей. А одну - изображают идиотов что не могут повторить.
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048636
1chainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с1chainik, пиши на техподдержку с приложенным примером.

Я уже заколебался с ними переписываться. Из 10 ошибок - 4 признали фичей. А одну - изображают идиотов что не могут повторить.
ну я-то обойду эту фичу.
(обошёл уже, не удаляя(), а просто делая невидимо-нерегулируемо)

но таких пометок в памяти себе оставлять - никакой памяти не хватит.
в следующий раз видимо опять придется отладчиком следить. авось склероз вовремя подскажет.

у меня есть тщедушная надежда, что не часто я на этом дивном ленгвиче пейсать буду.
к тому времени - либо ишак, либо падишах.

а так - да. люблю авторов дивного языка. а уж как мой покойный ишак любил ......
простите за недозволенные речи


а в поддержку - это "через где"? "в куда", т.е.? тынцы есть?
...
Рейтинг: 0 / 0
скопировать свойства элемента управления
    #37048949
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v8@1c.ru

Обязательно код зарегистрированного программного продукта или код партнера и код nfr. И представится конечно (на кого зарегестрирован.)

Прикрепить обработку, которая выдает ошибку. Краткое описание ошибки. Версия программы.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / скопировать свойства элемента управления
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]