Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ТП: Оптимизация создания кода этого ЭУ (число прочтений - 5945 )
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
ТП: Оптимизация создания кода этого ЭУ
24. Апреля 2007 :: 09:05
Печать  
Табличное поле.
Этот великолепный ЭУ у меня используется достаточно часто. Только несколько заморачивает стандартный механизм написания кода создания ТП: пока создашь, пока пропишешь его параметры и потом создашь колонки и пропишешь их параметры...

Лентяйский вопрос: а никто не пробовал использовать глобальные процедуры по созданию самого ЭУ, и созданию колонок с параметрами? Что-то типа вроде этого:
Код
Выбрать все
ер=0,ТаймаутОбновления=0,...);
..); 


Мне кажется при интенсивном использовании ТП этим можно было бы значительно оптимизировать общий код.
(А про добавление таких процедур в сам ЭУ я уже молчу: ТП больше не дорабатывается...)
Может кто пробовал? Просто не хочется изобретать велосипед...
  
Наверх
ICQ  
IP записан
 
desty
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Апреля 2007
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #1 - 24. Апреля 2007 :: 09:14
Печать  
класс Общие.ТабличноеПоле=КлассТабличноеПоле.ert (автор 33Lab) в репозитарии классов...
там уже решена проблема с совместимостью версий 1С++
и есть метод Заполнить ТП по источнику...

ИМХО очень удобно уводить подобные стандартные настройки в свой собственный класс... (в качестве идеи)
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #2 - 24. Апреля 2007 :: 09:15
Печать  
Так сделай класс потомок ТП, и инкапсулируй туда все что тебе заблагорассудится.
И создавать на форме не ТП, а этот класс.
  
Наверх
 
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #3 - 24. Апреля 2007 :: 09:18
Печать  
Спасибо!
ЗЫ. Таки придется занятся изучением классов. Думал - пронесет  Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #4 - 24. Апреля 2007 :: 16:32
Печать  
Нужно все делать наоборот. Сперва классы, а потом все красивости.
Меньше кода придется плодить в разы.


P.S. В очередной раз хотелось бы поблагодарить всех ребят разработчиков, блин что бы я делал без классов Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #5 - 25. Апреля 2007 :: 04:51
Печать  
Вот и выложил бы в качестве благодарности часть своих классов Улыбка
особенно те, что по работе с АктивИкс Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #6 - 25. Апреля 2007 :: 06:34
Печать  
Гм, сомневаюсь я однако...

После знакомства с классом ТабличноеПоле (см #1.) я в растрёпаных чувствах. Применительно к данной задаче, когда не предполагается плодить наследников, какая выгода и преимущество использования класса перед глобальными процедурами? Здесь, ИМХО, никакой: класс ради класса...
  
Наверх
ICQ  
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #7 - 25. Апреля 2007 :: 07:36
Печать  
+ы :

1) не трогаем основной 1cv7.md
2) можно обновлять не трогая пользователей (или отлаживать на живой базе  Круглые глаза )
3) разделяем глобальный функционал по назначениям
4) основной Глоб.модуль не пухнет от новинок

-ы:

1) вызов глобального функционала не напрямую а через ОКОП.Метод()
2) этот ОКОП нужно создавать каждый раз
3) или, опять же, глобально

Так что - личный выбор.

Начал пользоваться доп.глобальниками, но отсутствие синтакс-проверки в Конфигураторе раздражает. Хотя и продолжаю использовать (ну, фильтрую сообщения об ошибках в конфигураторе "это есть, это есть, ... упс. а это ошибка").
  
Наверх
ICQ  
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #8 - 25. Апреля 2007 :: 08:06
Печать  
Kapet писал(а) 25. Апреля 2007 :: 06:34:
Гм, сомневаюсь я однако...

После знакомства с классом ТабличноеПоле (см #1.) я в растрёпаных чувствах. Применительно к данной задаче, когда не предполагается плодить наследников, какая выгода и преимущество использования класса перед глобальными процедурами? Здесь, ИМХО, никакой: класс ради класса...


Сделай данный класс наследником ТП - тогда это будет не класс ради класса Улыбка
  
Наверх
wwwICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #9 - 25. Апреля 2007 :: 09:53
Печать  
dnp писал(а) 25. Апреля 2007 :: 07:36:
+ы :

1) не трогаем основной 1cv7.md
2) можно обновлять не трогая пользователей (или отлаживать на живой базе  Круглые глаза )
3) разделяем глобальный функционал по назначениям
4) основной Глоб.модуль не пухнет от новинок

-ы:

1) вызов глобального функционала не напрямую а через ОКОП.Метод()
2) этот ОКОП нужно создавать каждый раз
3) или, опять же, глобально

Так что - личный выбор.

Начал пользоваться доп.глобальниками, но отсутствие синтакс-проверки в Конфигураторе раздражает. Хотя и продолжаю использовать (ну, фильтрую сообщения об ошибках в конфигураторе "это есть, это есть, ... упс. а это ошибка").

1. У меня абсолютно все модули изначально вынесены во внешние файлы (гендальфской обработкой), так что не трогаем 1cv7.md, не выгоняем пользователей.
2. Какая разница что основной Глоб.модуль не пухнет от новинок если  вслед за ним компилируются и классы: по расходыванию памяти - одновалентно, по разделению глобального функционала по назначениям - вопрос спорный в каком случае бардака и неразберихи будет поболе.
3. Отсутствие синтакс-проверки в Конфигураторе - см. п.1, всё рехтуется "на лету", тем более если это в доп. глобальнике: отрехтовал модуль, выгрузил и тут же загрузил взад
  
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #10 - 25. Апреля 2007 :: 09:59
Печать  
noprogrammer писал(а) 25. Апреля 2007 :: 08:06:
Kapet писал(а) 25. Апреля 2007 :: 06:34:
Гм, сомневаюсь я однако...

После знакомства с классом ТабличноеПоле (см #1.) я в растрёпаных чувствах. Применительно к данной задаче, когда не предполагается плодить наследников, какая выгода и преимущество использования класса перед глобальными процедурами? Здесь, ИМХО, никакой: класс ради класса...


Сделай данный класс наследником ТП - тогда это будет не класс ради класса Улыбка

Допустим ламерский вопрос (но опять же применительно к данному случаю):
Зачем, вместо двух - четырех процедур/функций в глобальнике городить класс, а затем! - еще и наследника рожать? Может объясните?
ЗЫ. Я не "классовый противник", обеими руками только "за". Но, может, это не тот случай где это лучше, чем стандартные средства 1С?
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #11 - 25. Апреля 2007 :: 11:01
Печать  
Kapet писал(а) 25. Апреля 2007 :: 09:59:
Зачем, вместо двух - четырех процедур/функций в глобальнике городить класс, а затем! - еще и наследника рожать? Может объясните?
ЗЫ. Я не "классовый противник", обеими руками только "за". Но, может, это не тот случай где это лучше, чем стандартные средства 1С?


Не ты первый, не ты последний, надо только попробовать, чуток поработать, въедешь и за уши не оттянешь.

1. Как ты будешь обрабатывать общие события ТП в глобальнике?
2. Как например будешь делать сериализацию ТП через глобальник? Например применительно к сохранению видимости колонок и их ширины, а-ля настройки пользователя для данного экземпляра ТП?

Без классов тут почти не обойтись. Да согласен, что в каждой обработке, ты можешь сделать процедуру ПриУничтожении и передавать управление в глобальную процедуру. Но сколько ты при этом плодишь кода? Тебе надо постоянно помнить, куда передать управление и т.д.
А я просто создаю
ТабличноеПоле = _Форма.СоздатьЭлементУправленияНаФорме(Форма, "ТабличноеПолеЗН", "ТабличноеПоле");
ТабличноеПоле.Описание = "Отчет по месту хранения"; // Это наименование значения для СохранитьЗначение, тут сохранятся настройки.
ТабличноеПоле.Инициализация();
СписокКолонок = ия,Дней,Мастер,ДопПоле,";
ТабличноеПоле.СоздатьКолонки(СписокКолонок);

Создание ТП на этом закончено.

А как это делаешь ты?
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #12 - 25. Апреля 2007 :: 11:05
Печать  
Kapet писал(а) 25. Апреля 2007 :: 09:59:
Зачем, вместо двух - четырех процедур/функций в глобальнике городить класс, а затем! - еще и наследника рожать? Может объясните?


В наследника ты инкапсулируешь необходимые тебе методы, и просто класс ТабличноеПоле создавать тебе не будет необходимости. Ты просто расширяешь таким образом существующий функционал. Не заморачиваясь гл.процедурами. У тебя есть объект, например ТабличноеПолеОснова, с необходимыми только тебе методами и свойствами.
а про просто ТабличноеПоле ты забываешь и все.
  
Наверх
 
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #13 - 25. Апреля 2007 :: 11:10
Печать  
Arta писал(а) 25. Апреля 2007 :: 11:01:
[quote author=Kapet link=1177405526/0#10 date=1177495162]А как это делаешь ты?

Пока без класса-наследника и без глобальных процедур, т.е. ручками. В поисках лучшей жизни и завел весь сыр-бор...
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: ТП: Оптимизация создания кода этого ЭУ
Ответ #14 - 25. Апреля 2007 :: 14:20
Печать  
А лучшая жизнь именно там куда я тебя и подтакливаю Улыбка
Ты же не думаешь, что я родился с классами Улыбка

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

Это подход по 1Совски, это неправильно изначально. Не потому что я повернут на классах, а потому что я уже имею достаточный опыт работы с классами применительно к 1С. И могу оценить, как работать проще и удобнее.
Я очень рекомендую посмотреть тестовую конфигурацию Артура. Выделить день и врубиться от и до.
Ты сократишь себе массу времени в дальнейшем.


P.S. И спасибо Палычу, за тот пинок в сторону классов в свое время Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать