Переключение на Главную Страницу Страницы: [1] 2 3 4 ОтправитьПечать
Очень популярная тема (более 25 ответов) Предложение: КОП для подмены МнЧ документа ТП (число прочтений - 18910 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Предложение: КОП для подмены МнЧ документа ТП
02. Марта 2008 :: 21:17
Печать  
В общем поскольку работа над тем классом была завершена в связи с его переездом в состав более мощного инструмента предлагаю тестировать работу новой сборки классов под "кодовым" названием "ПоставщикДанных".

Из того что он умеет:
1. Поставка данных справочника, с учетом владельца и/или отборов.
2. Поставка данных многострочной части
3. Создание панели управления табличным полем (с любым видом поставляемых значений)

Предлагаю протестировать и совместными усилиями его довести до ума, чтобы инициализация многострочной части не занимала много кода и не приносила головной боли, а пользоваться было удобно и приятно.

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

Что уже реализовано:
1. (vandalsvq) Создание ТП на основе метаданных о многострочной части документа
2. (vandalsvq) Установление панели управления табличным полем
3. (vandalsvq) Создание ТП на основе многострочной части документа
4. (vandalsvq) Создание ТП на основе справочника
5. (vandalsvq) Возможность установки владельца и/или отбора по (!!!) одному реквизиту
6. (vandalsvq) Установка произвольных пиктограмм в объект панели управления и табличного поля
7. (vandalsvq) Перехват событий ТП и панели управления и поставка событий ТП в форму

План дальнейшего развития:
1. Возможность добавления своих кнопок в панель управления
2. Доработка до возможности распечатки табличного поля
3. Управления составом и видимостью колонок
4. Установка пиктограмм в табличное поле

Зачем это делать? Руками одного человека (тем баче что время у меня не резиновое) сделать хорошую замену многострочной части очень тяжело и прогнать все ошибки и пожелания сложно, т.к. обычно "хочу" + "некогда" = "более простое решение" (как правило не столь элегантное или красивое).
Я же буду вести некую историю в главном посте. Добавляя функционал реализованный как мною так и другими участниками.


Спасибо большое: noprogrammer за ответы на вопросы и направления на пути истинные, artbear за проявленный интерес и поддержку при принятии решения  Подмигивание. А так же все кто смотрел, пробовал, пользовался.  Класс
И большое спасибо Михаилу (kms) что он подарил нам возможность редактирования ТП.  Круглые глаза
« Последняя редакция: 13. Мая 2008 :: 11:33 - vandalsvq »  

TF_Data_002.rar ( 93 KB | Загрузки )

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #1 - 03. Марта 2008 :: 10:05
Печать  
Класс несомненно нужный Улыбка

Глянул одним глазом (может чего и не заметил) - поэтому навскидку:
1.Строить ТП желательно научится не по метаданным а по колонкам на форме (дело в том что не все что находится в метаданных реально отображается на форме для пользователя + на форме есть колонки "расчетные" которых нет в метаданных) - как мне кажется при таком формировании ТП - класс станет более универсальными более легко подключаемым.

2.При редактировании данных в ТП - что бы оставить весь написанный код как есть - проще не просто выполнить формулу колонки табличной части но при ее расчете - перенести данный в ТП (по коду вроде просто выполняется формула и все - может я конечно же и ошибаюсь - поэтому если это так заранее прошу прощения.)

P.S. В последнем обновлении СКАТа я реализовал замену ТЧ на ТП, но к сожалению не ввиде класса.
  
Наверх
wwwICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #2 - 03. Марта 2008 :: 10:56
Печать  
noprogrammer писал(а) 03. Марта 2008 :: 10:05:
1.Строить ТП желательно научится не по метаданным а по колонкам на форме


+2
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #3 - 03. Марта 2008 :: 11:15
Печать  
noprogrammer писал(а) 03. Марта 2008 :: 10:05:
1.Строить ТП желательно научится не по метаданным а по колонкам на форме


Тогда вопрос: в моей конфе ТЧ документа вообще нет
1. Можно конечно делать через получения атрибута многострочной части и установление видимости, в таком случае действителлно нужно создание на основе ТЧ.
2. Можно создавать колонки на основе метаданных и скрывать ненужные. Для этого функционал уже реализован.
Но предложение принимается  Подмигивание
+1

noprogrammer писал(а) 03. Марта 2008 :: 10:05:
(дело в том что не все что находится в метаданных реально отображается на форме для пользователя + на форме есть колонки "расчетные" которых нет в метаданных)


У меня в планах стоит создание колонок с произвольным отрабатываемым кодом. В общем в планах есть.

noprogrammer писал(а) 03. Марта 2008 :: 10:05:
как мне кажется при таком формировании ТП - класс станет более универсальными более легко подключаемым


Согласен. Просто счас я исходил из позиции Класс главнее а док подпишем, в принципе можно попробовать КОП подогнать под возможные строения ТЧ документа, но я уже вижу столько проблем и вопросов которые тут же возникнут.

noprogrammer писал(а) 03. Марта 2008 :: 10:05:
2.При редактировании данных в ТП - что бы оставить весь написанный код как есть - проще не просто выполнить формулу колонки табличной части но при ее расчете - перенести данный в ТП (по коду вроде просто выполняется формула и все - может я конечно же и ошибаюсь - поэтому если это так заранее прошу прощения.)


Понял о чем ты хотел сказать. Я понял свою "недоделку" в этой области. В принципе задача ясна, пошел обновлять список "План разработки КОП".  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #4 - 04. Марта 2008 :: 08:14
Печать  
В ходе разработки КОП сделано следующее
1. Перенесен в отдельный от панели управления Класс (причина в том что панель управления по сути пока нужна только мне, но я думаю после завершения КОПа в плане оперирования над ТЧ хорошо было бы и панель управления прикрутить)
2. Добавлен метод "СоздатьКолонкиПоТабличнойЧасти". (функционал дополнен сбор инормации по колонкам не метаданных спасибо noprogrammer)

Заглавный пост не обновлен. Пока идет дальнейший перенос функционала.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #5 - 04. Марта 2008 :: 08:46
Печать  
Код
Выбрать все
	РасширениеФормы=СоздатьОбъект("РасширениеФормы");
	РасширениеФормы.УстановитьФорму(Форма);
	Если РасширениеФормы.НайтиАтрибут(1, 9)=1 Тогда
		текАтрибут=РасширениеФормы.ТекущийАтрибут();
		Сообщить("Атрибут табличной части: ИД - "+текАтрибут.Идентификатор+" Заголовок:"+текАтрибут.Заголовок);
		Пока РасширениеФормы.ПолучитьСледующийАтрибут()=1 Цикл
			текАтрибут=РасширениеФормы.ТекущийАтрибут();
			Сообщить("Атрибут табличной части: ИД - "+текАтрибут.Идентификатор+" Заголовок:"+текАтрибут.Заголовок);
		КонецЦикла;
	КонецЕсли;

 



так сможешь получить колонки не являющиеся метаданными.
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #6 - 04. Марта 2008 :: 08:53
Печать  
noprogrammer спасибо большое, пошел я... плакать  Плачущий
(позор мне - пользователю FormEx  Смущённый)
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #7 - 04. Марта 2008 :: 12:28
Печать  
В общем функционал готов. Приблизительный алгоритм работы:
1. Создаете ТЧ как обычно на форме, размещаете, располагаете как вам угодно. Делаете все увязки чтобы работало и расставляете поля как надо.
2. Инициализируете класс и потом в процедуре ПослеСозданияФормы вызываете главный метод "ЗаменитьТабличнуЧасть". Происходит следующее...
- многострочная часть скрывается
- создается атрибут "ТП_МногострочнаяЧасть" (кнопка) которая служит контейнером
- создается ТП на базе многострочной части документа
3. Добавяете процедуры
Код
Выбрать все
Процедура ТП_МногострочнаяЧастьВыбор(ОбъектТП,ТекущаяСтрока,ТекущаяКолонка,ТипРегиона)
	ЭлФормы_МнЧ.РедактироватьЗначение(Контекст);
КонецПроцедуры	// ТП_МногострочнаяЧастьВыбор

Процедура онка,ТипРегиона,Значение)
	ЭлФормы_МнЧ.ПриОкончанииРедактированияЗначения(Контекст,Значение);
КонецПроцедуры	// ТП_МногострочнаяЧастьПриРедактированииЗначения 


4. Добавляете кнопки для создания строк, копирования, удаления, редактирования, сортировки, перемещения.

Заглавный пост не обновлял т.к. осталась одна единственная проблема - расположение реквизитов в ТЧ... т.е. элементарно порядок колонок. Счас сначала идут колонки метаданных, за ними информационные колонки. Понимаю что в жизни может быть очень даже наоборот. Если не найду в ближайшее время решение выложу как есть, может кто подскажет.

И еще... хочется сразу прикрутить панель управления, чтобы реализовать функционал аля 8-ка, есть правда одно но - на чем реализовывать панель управления? Микрософтовый тулбар, или ВК из поста - http://www.1cpp.ru/forum/YaBB.pl?num=1199904905 (автор Chieftain)... я склоняюсь к последнему... если конечно эта ВК стабильна... я пока ее не пробовал если честно.

План дальнейшего развития:
1. Создание ТП на основе существующего ТЧ (возможно даже с самостоятельным созданием кнопки контейнера + подгонка под размеры ТЧ + скрытие ТЧ)   Класс
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #8 - 04. Марта 2008 :: 14:06
Печать  
vandalsvq писал(а) 04. Марта 2008 :: 12:28:
осталась одна единственная проблема - расположение реквизитов в ТЧ... т.е. элементарно порядок колонок. Счас сначала идут колонки метаданных, за ними информационные колонки. Понимаю что в жизни может быть очень даже наоборот. Если не найду в ближайшее время решение выложу как есть, может кто подскажет.

А в чем проблема?
Сделай простой цикл по атрибутам формы, анализируй только типы 5 и 9 по аналогии с циклом, приведенным выше.
5 - Метаданные, 9 - вычисляемые колонки.
Все Улыбка
  

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


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #9 - 04. Марта 2008 :: 14:09
Печать  
artbear писал(а) 04. Марта 2008 :: 14:06:
vandalsvq писал(а) 04. Марта 2008 :: 12:28:
осталась одна единственная проблема - расположение реквизитов в ТЧ... т.е. элементарно порядок колонок. Счас сначала идут колонки метаданных, за ними информационные колонки. Понимаю что в жизни может быть очень даже наоборот. Если не найду в ближайшее время решение выложу как есть, может кто подскажет.

А в чем проблема?
Сделай простой цикл по атрибутам формы, анализируй только типы 5 и 9 по аналогии с циклом, приведенным выше.
5 - Метаданные, 9 - вычисляемые колонки.
Все Улыбка


В принципе я таким путем и собирался пойти  Подмигивание но за "пинок" спасибо... честно спасибо  Класс
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #10 - 04. Марта 2008 :: 18:12
Печать  
(vandalsvq) - Процедуры "ТП_МногострочнаяЧастьВыбор" и "П_МногострочнаяЧастьПриРедактированииЗначения" лучше спрятать внутри класса, т.к. тащить их в документ смысла особого не вижу... по хорошему в модуле документа должна быть вообще одна строка что нить типа "ИнициализацияТабличнойЧасти" - все остальное можно смело обработать в классе, хотя не совсем так - в модуле документа я бы оставил процедуру "ПриВыводеСтроки"...  (все имхо)

P.S. Если все процедуры будут в классе то теоритически можно будет заменять табличную часть документа вообще без вмешательства в конфу (с помощью класса "перехватчик") Подмигивание
  
Наверх
wwwICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #11 - 04. Марта 2008 :: 19:13
Печать  
Все это замечательно - а практический смысл каков?
Пиктограммы и раскраска в реализации или заявке( например) - не очень понятно зачем ...
Может еще что есть интересное ?
  
Наверх
 
IP записан
 
noprogrammer
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 465
Зарегистрирован: 16. Июня 2006
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #12 - 04. Марта 2008 :: 20:10
Печать  
kiruha писал(а) 04. Марта 2008 :: 19:13:
Все это замечательно - а практический смысл каков?
Пиктограммы и раскраска в реализации или заявке( например) - не очень понятно зачем ...
Может еще что есть интересное ?


1.Предположим что появится поставщик данных ИТ - тогда можно будет в такой измененной ТЧ устанавливать фильтры, т.е. теоритически появится возможность сделать как в 8ке - разделять ТЧ документа по закладкам - например: "Товары", "Услуги"и т.д.

2.Раскраска штука тоже очень удобная - удобнее чем в формексе (имхо)

3.Возможность интеактивной настройки колонок (перемещение колонок и т.д.)

4.В новом ТП есть возможность устанавливать "шапку" и "подвал" (например сразу видеть итоговые суммы)

вобщем появляютя возможности которых нет в ТЧ, конечно и без этого жили столько времени и проживем еще, но ведь приятно когда интерфейс становится красивее и удобнее Подмигивание
  
Наверх
wwwICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #13 - 04. Марта 2008 :: 20:21
Печать  
noprogrammer писал(а) 04. Марта 2008 :: 18:12:
(vandalsvq) - Процедуры "ТП_МногострочнаяЧастьВыбор" и "П_МногострочнаяЧастьПриРедактированииЗначения" лучше спрятать внутри класса, т.к. тащить их в документ смысла особого не вижу... по хорошему в модуле документа должна быть вообще одна строка что нить типа "ИнициализацияТабличнойЧасти" - все остальное можно смело обработать в классе, хотя не совсем так - в модуле документа я бы оставил процедуру "ПриВыводеСтроки"...  (все имхо)

P.S. Если все процедуры будут в классе то теоритически можно будет заменять табличную часть документа вообще без вмешательства в конфу (с помощью класса "перехватчик") Подмигивание


Я считаю что и функционал Выбор и ПриОкончанииРедактирования многим может понадобится в модуле документа, поскольку мало ли что они (другие пользователи КОПа) там обрабатывать собираются, так же я планирую управление не только стандартным набором атрибутов реквизита (как в обычной ТЧ), а слегка расширенным его функционалом.
В конце концов если оставлять ПриВыводеСтроки то и прочие методы в принципе большой проблемы не составит. Но если ты возьмешься перенести данный функционал в КОП чтобы он отрабатывался в нем я был бы тебе очень благодарен.
А замена ТЧ глобально мне видится проблематичным в виду того что в данный момент КОП заточен под использование только в одном документе (т.е. объявление КОПа необходимо в каждом документе). А для того чтобы делать глобально КОП наверное должен запоминать что и где он наделал ??  Круглые глаза Может я опять ошибаюсь... (уже который раз)
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Предложение: КОП для подмены МнЧ документа ТП
Ответ #14 - 04. Марта 2008 :: 20:38
Печать  
kiruha писал(а) 04. Марта 2008 :: 19:13:
Все это замечательно - а практический смысл каков?
Пиктограммы и раскраска в реализации или заявке( например) - не очень понятно зачем ...
Может еще что есть интересное ?


Неее.... я так не играю... не сбивай меня с пути... а то я ведь это... собьюсь  Плачущий

А вообще я делаю вот для чего. В свое время я в документе реализовал множественность табличных частей путем скрытия отдельных колонок и наличия служебного реквизита для разделения... были свои проблемы, были свои пути обхода, но геммора хватало, а главный гемор - это сама табличная часть от которой много просто не добиться физически. А хотелось бы... например пиктограмм+текст в одной ячейке, нормальные галочки (а не через одно место). Да вообще на самом деле noprogrammer прав у ТП столько всего хорошего что можно было бы сделать, да и управлять им легче. Конечно есть вещи которые из-за ограничения ТЧ не сделать даже при наличии возможностей ТП но я думаю что упрусь в эти проблемы я не скоро.
Конечно вопрос множественности табличных частей и хранения данных, но я думаю на предмет этого будем думать.  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 4
ОтправитьПечать