Переключение на Главную Страницу Страницы: [1] 2 3 ... 5 ОтправитьПечать
Очень популярная тема (более 25 ответов) Еще один редактор ТЗ (число прочтений - 26369 )
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Еще один редактор ТЗ
03. Мая 2009 :: 19:11
Печать  
В отличие от всех остальных мой "РедакторТЗ" имеет ТОЛЬКО ОДИН МЕТОД все остальное делает сам.
Работает на раздельных 1С++ 2.5.0.7 и FormEx 2.0.5.92. На более ранних версиях не проверял.

Код
Выбрать все
Класс "РедакторТЗ"
Позволяет редактировать ячейки ТЗ на форме, удалять строку при нажатии на "Del" и вводить новую строку при нажатии на "Ins"

Свойства:
1. "КонтекстФрпмы" - доступ к значению контекста формы, на которой расположена ТЗ, только чтение, тип "ГрупповойКонтекст".
2. "ИмяТаблицы" - доступ к значению имени ТЗ, только чтение, тип "Строка". Устанавливается при выполнении метода "Подключить"
3. "ПоказатьКнопкиВыбора" - устанавливает кнопки выбора на ячейки ТЗ типа "Число". Тип "Число" 1-Вкл/0-Выкл. По умолчанию 0.
4. "Связи" - дополнительно устанавливает значение "СвязанС" в том случае, когда ячейку необходимо связать с элементом НА ФОРМЕ.
Для ячеек имеющих ячейку-владельца на ТЗ это значение устанавливается автоматически по признаку подчиненности в метаданных.
Формат параметра типа "Строка" вида "<Атрибут1=Владелец1>,<Атрибут2=Владелец2> ...", Напр.:"Единица=Товар"
или "СписокЗначений" со значением типа "Строка" вида "<Атрибут1=Владелец1>" в каждой строке.
5. "ПодтверждатьУдаление" - Число, по умолчанию 1. Выводить дмалог подтверждения удаления строки из ТЗ при нажатии на "Del"
Если ТЗ была получена методом "ВыгрузитьТабличнуюЧасть" и есть колонка "№" ("НомерСтрокиДокумента"),
тогда после удаления строки автоматически будут перенумерованы оставшиеся строки.
Примечание:Изменения всех доступных свойств действует только до выполнения метола "Подключить"
6. "КолонкаНовойСтроки" - строка, имя колонки, которую необходимо активизировать при вводе новой строки нажатием на "Ins".
Если ааод новой строки необходимо прервать - нужно нажать "Esc". Если переменная пустая - ввод новой строки не работает

Методы - ТОЛЬКО ЛВА:
1. Подключить([ИмяТаблицы],[ИмяМетода])
ВНИМАНИЕ! Метод можно использовать после физического открытия формы !
Подключает РедакторТЗ к ТЗ на форме. Возвращает 1 в случае удачного подключения, 0 - неудачная попытка.
Параметры:
"ИмяТаблицы" - имя ТЗ, к которой нужно подключить РедакторТЗ.
Необязательный параметр, в случае его отсутствия РедакторТЗ подключается к первой (в порядке обхода) ТЗ на форме.
"ИмяМетода" - имя метода в тексте модуля, который необходимо вызвать после ввода значения в ячейку таблицы.
2. Отключить() = отключить редактор (при закрытии формы).Метод ОБЯЗАТЕЛЕН, если был выполнен метод "Подключить"

Дополнительно:
Если по каким-то прияинам некоторые ячейки необходтмо сделать недоступными для редактирования -
в ТЗ нужно добавить невидимую колонку "НедоступныеКолонки" тип "Строка", и записать по строкам в ячейку этой колонки
список значений или строку через запятую с перечнем недоступных колонок в данной строке. Это наглядно показано в примере.
 

« Последняя редакция: 06. Мая 2009 :: 13:05 - КилоГрамм »  

TVEditor.rar ( 8 KB | Загрузки )

Константин
Наверх
 
IP записан
 
milanse
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 04. Мая 2009
Re: Еще один редактор ТЗ
Ответ #1 - 04. Мая 2009 :: 10:40
Печать  
попробовал - не работает.
ругается на переменную сервис - определил ее, потм на фунцию сам(), тоже определил
дальше вот:

Сервис<<?>>.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(5)}: Переменная не определена (Сервис)
Сервис<<?>>.ЭмулироватьКлавиатуру("+{END}");
{Глобальный модуль(6)}: Переменная не определена (Сервис)
(1)УстановитьРедактор<<?>>(Сам)      Функция не обнаружена
Редактор.Подключить();
{C:\РЕДАКТОРТЗ.ERT(5)}: Недостаточное число параметров передано при вызове функции/процедуры объекта

всетаки должна быть переменная сервис в глобальнике ??
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Еще один редактор ТЗ
Ответ #2 - 04. Мая 2009 :: 10:58
Печать  
milanse писал(а) 04. Мая 2009 :: 10:40:
попробовал - не работает.
ругается на переменную сервис - определил ее, потм на фунцию сам(), тоже определил
дальше вот:

Сервис<<?>>.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(5)}: Переменная не определена (Сервис)
Сервис<<?>>.ЭмулироватьКлавиатуру("+{END}");
{Глобальный модуль(6)}: Переменная не определена (Сервис)
(1)УстановитьРедактор<<?>>(Сам)      Функция не обнаружена
Редактор.Подключить();
{C:\РЕДАКТОРТЗ.ERT(5)}: Недостаточное число параметров передано при вызове функции/процедуры объекта

всетаки должна быть переменная сервис в глобальнике ??


Надо FormEx грузить.
  
Наверх
 
IP записан
 
milanse
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 04. Мая 2009
Re: Еще один редактор ТЗ
Ответ #3 - 04. Мая 2009 :: 11:34
Печать  
У меня 1С++ 2.03, там вроде встроен
Если ExtForm отдельно загрузить появится переменная "Сервис" ???
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #4 - 04. Мая 2009 :: 14:46
Печать  
Работаю с раздельными 1с++ и Формекс.
Внес определение переменной "Сервис" и функцию "Сам".
Для объединенной (2.0.3) вроде бы Сервис = РасширенныйСервис, измните сами
И еще - к первому варманту добавил возможность ввода новой строки е еще кое-что. Перезалил в посту №1
« Последняя редакция: 05. Мая 2009 :: 05:28 - КилоГрамм »  

Константин
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #5 - 05. Мая 2009 :: 08:35
Печать  
Наверное, все-таки нужно в описании указать, что нужна последняя версия ФормЕкс.
Версия 1С++ 2.0.3 со встроенным ФормЕкс и более ранние не подходят, т.к. там нет "Революции" Улыбка
  

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


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #6 - 06. Мая 2009 :: 13:01
Печать  
artbear писал(а) 05. Мая 2009 :: 08:35:
Наверное, все-таки нужно в описании указать, что нужна последняя версия ФормЕкс.
Версия 1С++ 2.0.3 со встроенным ФормЕкс и более ранние не подходят, т.к. там нет "Революции" Улыбка
ОК, в пост №1 вписал
  

Константин
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Еще один редактор ТЗ
Ответ #7 - 06. Мая 2009 :: 14:54
Печать  
Если пытаться редактировать существующую строку, 1с-ина валится наглушняк... (пытаемся перевыбрать товар, например)
Если редактировать новую строку (так же перевыбираем ранее выбранный товар) - то всё пучком..

  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #8 - 06. Мая 2009 :: 17:06
Печать  
Eprst писал(а) 06. Мая 2009 :: 14:54:
Если пытаться редактировать существующую строку, 1с-ина валится наглушняк... (пытаемся перевыбрать товар, например)
Если редактировать новую строку (так же перевыбираем ранее выбранный товар) - то всё пучком..

1. Версии 1С++ и ФормЕскс?
2. Нужен твой код.
  

Константин
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Еще один редактор ТЗ
Ответ #9 - 07. Мая 2009 :: 05:17
Печать  
всё самое свежее.. косяк был в самом справочнике..Щас работает.

ЗЫ: F9 явно не хватает...
Улыбка
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #10 - 07. Мая 2009 :: 06:13
Печать  
Eprst писал(а) 07. Мая 2009 :: 05:17:
F9 явно не хватает...
Улыбка
Хорошая идея, надо подумать
  

Константин
Наверх
 
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: траблы при использовании класса
Ответ #11 - 25. Мая 2009 :: 14:07
Печать  
Оговорюсь сразу - я новичок в классах, и при этом еще злобный новичок...
.
1. при выдаче сообщения об ошибке - отсутствует идентификация класса, в котором произошла ошибка. Как автор думает - если используется в обработке/конфигурации много классов - каким образом производить идентификацию класса, выдавшего ошибку - тотальным посиком сообщения об ошибке по всем файлам? отвратительно, имхо...
Предлагается примерно так:
Процедура ПриОткрытии() //открывается обработка класса
 лИмя  = "";
 лПуть = "";
 РасположениеФайла(лПуть,лИмя);
...
//выдача сообщения об ошибке
Сообщить(лПуть+"\"+лИмя+": тут сообщение об ошибке")

2. класс работает - ввод производится, но! после ввода - фокус не остается на ТЗ - как автор предлагает работать по массовому вводу значений в ячейки ТЗ? - как спозиционировать фокус на ячеку ТЗ???
уточнение: после окончания ввода ячейки активизируется первый в порядке обхода реквизит
.
3. просьба пояснить - какой функционал формекса/1с++ обеспечивает активизацию ячейки для приема ввода числа (в моем случае) - код класса смотрел, но не понял...
.
спсб.
« Последняя редакция: 25. Мая 2009 :: 15:58 - ЧебурЗлоп »  
Наверх
www  
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #12 - 25. Мая 2009 :: 14:10
Печать  
+ при активизации ячейки выдается:
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
Сервис.ОбработкаОжидания("АктивизироватьЯчейкуТЗ",0);
{Глобальный модуль(8)}: Значение не представляет агрегатный объект (ОбработкаОжидания)
..
именно такое колво сообщений при однократной активизации.
активизация ячейки при этом происходит нормально...
  
Наверх
www  
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #13 - 25. Мая 2009 :: 14:38
Печать  
Ошибка из предыдущего поста вылазит из-за того, что в доп.ГМ используется "Сервис", но инициализация его - не происходит...
итого кусок кода должен выглядеть так:
.
     |Функция УстановитьПараметр(Параметр,Значение) Экспорт
     |      Если Параметр = ""Редактор""
     |      Тогда
     |            Редактор = Значение;      
     |            Возврат 1;      
     |      ИначеЕсли Параметр = ""НоваяСтрока""
     |      Тогда
     |            НоваяСтрока = Значение;      
     |            Возврат НоваяСтрока;      
     |      ИначеЕсли Параметр = ""БылаАктивация""
     |      Тогда
     |            БылаАктивация = Значение;      
     |            Возврат 1;      
     |      ИначеЕсли Параметр = ""Сервис""
     |      Тогда
     |            Сервис = Значение;      
     |            Возврат 1;      
     |      КонецЕсли;
     |КонецФункции
     |
     |Сервис = СоздатьОбъект(""Сервис"");
     |";
  
Наверх
www  
IP записан
 
ЧебурЗлоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 314
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Еще один редактор ТЗ
Ответ #14 - 25. Мая 2009 :: 14:39
Печать  
п.3 -просьба пояснить - какой функционал формекса/1с++
снято! Епрст пояснил, что создается поверх ТЗ динамически атрибут нужного типа...
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 ... 5
ОтправитьПечать