Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Класс для МодулейДокументов в *.TXT (число прочтений - 9790 )
Kostya
Junior Member
**
Отсутствует



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Класс для МодулейДокументов в *.TXT
20. Января 2007 :: 22:19
Печать  
Класс, который позволяет хранить тело модулей проведения
во внешних файлах.
В модули проведения помещается одинаковый код вида

[code]
перем Модуль;

Процедура ОбработкаПроведения()
     Модуль.Провести();
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения()
     Модуль.УдалитьПроведение();
КонецПроцедуры
     
Модуль=СоздатьОбъект("МодульДокумента");

[/code]

А сами модули помещаются в репозиторий классов (Предполагается хранение
классов во внешних *.txt файлах) в каталоге Модули с именем
Модуль<ВидДокумента>.txt

Соответственно есть возможность править модули на лету, напрямую работать с ними
через CVS, разделять права пользования/чтения средствами ОС и прочие вкусности.

в defcls.prm стоит добавить строки:
[code]
Класс МодульДокумента=МодульДокумента.txt
{
};

[/code]

И сам текст модуля:
[code]
перем Модуль;
перем Конт;

Функция GetThis(Конт) Возврат Конт; КонецФункции

Процедура Конструктор() Экспорт;

Сам=GetThis(Контекст);
Конт=Сам.ПолучитьКонтекстОкружения();
КаталогКлассов=Сам.ПолучитьПуть();
Счетчик=СтрДлина(КаталогКлассов);
  Пока Счетчик>1 Цикл
  Если Сред(КаталогКлассов,Счетчик,1)="\" Тогда
   КаталогКлассов=Сред(КаталогКлассов,1,Счетчик);
   Прервать;
КонецЕсли;
Счетчик=Счетчик-1;
КонецЦикла;

ИмяФайла=КаталогКлассов+"Модули\Модуль"+Конт.Вид()+".txt";

Если ФС.СуществуетФайл(ИмяФайла)=0 Тогда
  Сообщить("Отсутствует реализация модуля проведения ","!!!");
  Модуль=-1;
  Возврат;
КонецЕсли;

Скриптинг=СоздатьОбъект("Scripting.FileSystemObject");
Текст=Скриптинг.OpenTextFile(ИмяФайла);
ТекстМодуля=Текст.ReadAll();
Текст.Close();


Модуль=СоздатьОбъект("ВыполняемыйМодуль");
Модуль.НазначитьКонтекст(Конт);
Модуль.УстановитьМодуль(ТекстМодуля);
Модуль.КомпилироватьМодуль();
Модуль.ВыполнитьМодуль();
КонецПроцедуры

Процедура Провести() Экспорт;
Если Число(Модуль)=-1 Тогда
  Сообщить("Невозможно провести","!!!");
  Конт.НеПроводитьДокумент();
  Возврат;
КонецЕсли;
Попытка
  Модуль.ОбработкаПроведения();
Исключение
КонецПопытки;
КонецПроцедуры

Процедура УдалитьПроведение() Экспорт;
Если Число(Модуль)=-1 Тогда
  Сообщить("Невозможно отменить проведение","!!!");
  Конт.НеПроводитьДокумент();
  Возврат;
КонецЕсли;
Попытка
  Модуль.ОбработкаУдаленияПроведения();
Исключение
КонецПопытки;
КонецПроцедуры

Процедура ОбработкаПроведения() Экспорт;
Провести();
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения() Экспорт;
УдалитьПроведение();
КонецПроцедуры

[/code]
  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #1 - 20. Января 2007 :: 22:39
Печать  
Позволю себе заметить
http://www.1cpp.ru/forum/YaBB.pl?num=1169222935

Все таки решили же вести классы в единой конфе, или нет?
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Kostya
Junior Member
**
Отсутствует



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #2 - 20. Января 2007 :: 22:47
Печать  
Без малейшего понятия. У меня свой собственный репозиторий классов.
Вообще то мне кажется правильным вести репозиторий классов в CVS в виде TXT,
а не в конфе.
Попросить феза добавить новый модуль в CVS. Или самим сделать cvs import.
  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #3 - 20. Января 2007 :: 22:55
Печать  
http://www.1cpp.ru/forum/YaBB.pl?num=1168460244

еще раз позволю себе заметить

по моему пока право на правку модуля в CVS имеет только artbear
дальше больше...

а конфа сделана для тестирования, я так думаю
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Kostya
Junior Member
**
Отсутствует



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #4 - 20. Января 2007 :: 23:29
Печать  
Ну скажу как я работаю: у меня в конфигураторе есть закладка 1С++, там все классы.
Там я их правлю. В любой конфигурации. Но доступ к одним и тем же классам.
То есть я периодически нажимаю кнопку Сохранить. Все. Больше ничего не делаю.
Скрипты сами добавляют, коммитят. У моих клиентов тот же самый репозитарий. Там скрипты периодически делают update. При желании время от commit до update составляет менее минуты. Юзать gcomp и прочие сборщики/разборщики не интересно. Наюзался.
Теперь про права доступа. Нефиг изобретать велосипед. В ОСах уже все изобретено.
Через тот же ssh доступ к рулению своими файлами. Репозиторий может быть общим на чтение, а на запись отдельных файлов - отдельным людям. Открываешь ты свой класс - вот тебе права на _твой_ файл, как собственнику. Хочешь дать права на _свой_ файл еще кому то на запись - заходишь через ssh и даешь. сам. больше чем имеешь все равно не дашь. Тогда ответственность распределяется по дереву и никто не парится.
Создавать новые файлы позволительно всем зареганым у феза на сервере юзерам.
Все. Вот тогда я понимаю демократия и минимум авторитарности.
Вот у меня крутится свой сервачок ssh/cvs под вендой и ничо. Тоже работает приятно.
  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #5 - 22. Января 2007 :: 06:20
Печать  
1. Внимательно читаем ветки - я также против ведения классов внутри конфы, в данном случае лучше вести во внешних файлах.
2. Твой класс нужный, но для поддержки типовых подходит не очень Печаль
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 записан
 
Kostya
Junior Member
**
Отсутствует



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #6 - 22. Января 2007 :: 09:42
Печать  
artbear писал(а) 22. Января 2007 :: 06:20:
2. Твой класс нужный, но для поддержки типовых подходит не очень Печаль


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

хотел бы я посмотреть на тот фреймворк, _каждая_ часть из которого
необходима во _всех_ ситуациях Подмигивание)

p.S. В общем мое мнение неизменно: надо собирать все что дают, а уже потом
перебирать. Иначе перебирать будет банально не из чего Подмигивание)
  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #7 - 22. Января 2007 :: 09:52
Печать  
1. Я не сказал, что твой класс плохой и/или не будет включен в конфу с классами Улыбка
Включу, только чуть позже.

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

2. Это именно не фреймворк, а набор готовых классов для использования. Эта конфа - утилита администрирования и использования различных полезных классов 1С++
  

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


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #8 - 22. Января 2007 :: 09:54
Печать  
Я например тоже с трудом вспоминаю как типовые выглядят.
так что предлагаю сделать следующие разделы:
- классы для типовых
  {подразделы по типовым}
- универсальные
- классы для работ по строками
- классы для работ по числами
- классы для работ по отчетами
...
чей-нить наподобие этого.


  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #9 - 22. Января 2007 :: 09:59
Печать  
Phoenix писал(а) 22. Января 2007 :: 09:54:
Я например тоже с трудом вспоминаю как типовые выглядят.
так что предлагаю сделать следующие разделы:
- классы для типовых
 {подразделы по типовым}
- универсальные
- классы для работ по строками
- классы для работ по числами
- классы для работ по отчетами
...
чей-нить наподобие этого.

Прошу дискуссию по конфе репозитария классов перенести в соответствующую ветку.
  

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



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #10 - 22. Января 2007 :: 10:06
Печать  
artbear писал(а) 22. Января 2007 :: 09:52:
Или включу сразу, если ты дашь на него приготовленные данные - т.е. архив с классом, прм-файлом, докой или алс-файлом и возможным простым примером использования.

Если пост 1 не подходит (хотя я лично не понимаю что нужно еще) то нужно создать
специальный файл с названием "Стандарт публикации классов" и там описать все
необходимые требования к публикации (форматы, стандарты, условия и прочее)
Опять таки гадать какой формат подойдет, а какой нет - без смысла.

Цитата:
2. Это именно не фреймворк, а набор готовых классов для использования. Эта конфа - утилита администрирования и использования различных полезных классов 1С++


Классы могут использовать другие классы ? Как будут учитываться зависимости ?
Можно ли изменять формат АПИ после публикации ? Предполагается ли версионность каждого класса или будет общая версия "набора готовых классов" ?
  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #11 - 22. Января 2007 :: 10:12
Печать  
Kostya писал(а) 22. Января 2007 :: 10:06:
Если пост 1 не подходит (хотя я лично не понимаю что нужно еще) то нужно создать
специальный файл с названием "Стандарт публикации классов" и там описать все
необходимые требования к публикации (форматы, стандарты, условия и прочее)

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

Kostya писал(а) 22. Января 2007 :: 10:06:
Классы могут использовать другие классы ? Как будут учитываться зависимости ?
Можно ли изменять формат АПИ после публикации ? Предполагается ли версионность каждого класса или будет общая версия "набора готовых классов" ?

Прошу в специальную ветку. Здесь отвечать не буду.
  

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



Сообщений: 62
Местоположение: Украина / Луцк
Зарегистрирован: 14. Декабря 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #12 - 22. Января 2007 :: 10:18
Печать  
artbear писал(а) 22. Января 2007 :: 10:12:
либо подготовь упомянутый архив и брось мне в мыло, тогда все пройдет очень быстро.


в каком формате подготовить "упомянутый архив" ? Подмигивание

  

2b or not 2b = ff
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #13 - 22. Января 2007 :: 10:52
Печать  
rar или zip.
мыло в той ветке.
Жду
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс для МодулейДокументов в *.TXT
Ответ #14 - 22. Января 2007 :: 10:53
Печать  
Забыл указать - нужны еще персональные данные автора - ник, имя, фамилия, майл, аська (если есть)
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать