Имя: Пароль:
1C
 
Как добавить кусок кода во все документы?
0 Apollo 11
 
09.06.11
09:37
Кто знает как добавить во все формы списка всех документов конфигурации в процедуру ПриОткрытии одинаковый код?
1 vicof
 
09.06.11
09:38
Подписка на событие
2 Immortal
 
09.06.11
09:39
Выгрузить/Загрузить файлы конфигурации
3 guitar_player
 
09.06.11
09:39
(1)Есть такая подписка?)
4 vicof
 
09.06.11
09:43
(3) а блин, в формы списка(
5 Ёпрст
 
гуру
09.06.11
09:44
глобальный поиск и замена..
6 Stepa86
 
09.06.11
09:44
а чо за код то?
7 Stim213
 
09.06.11
09:44
ручками быстрее будет, однако
8 Apollo 11
 
09.06.11
09:45
подписку "ПриОткрытии" не нашел
9 Варвар
 
09.06.11
09:45
выгрузить все модули, добавить текст, загрузить модули.
10 Maxus43
 
09.06.11
09:46
(8) Да нет её, я за вариант (5)
11 Apollo 11
 
09.06.11
09:47
стопудово как то можно сделать тема нужная
12 Stepa86
 
09.06.11
09:49
(2) п.1 , затем что то вроде:


МассивФайлов = НайтиФайлы(КаталогОбмена, "*ФормаСписка*.txt");

ФайлМодуля = Новый ТекстовыйДокумент;

Для Каждого цФайл Из МассивФайлов Цикл
   
   Попытка
       ФайлМодуля.Прочитать(цФайл.ПолноеИмя);
   Исключение
       Сообщить("Ошибка чтения файла: " + цФайл.ПолноеИмя);
       Продолжить;
   КонецПопытки;
   
   ФайлМодуля.ДобавитьСтроку( "" );
   ФайлМодуля.ДобавитьСтроку( "Кусок кода" );
   
   ФайлМодуля.Записать(цФайл.ПолноеИмя);
   
КонецЦикла;

затем (2) п.2
13 poligraf
 
09.06.11
09:49
Дурацкое конечно решение...
Глобальная замена?

Процедура ПриОткрытии()

на

Процедура ПриОткрытии()

//кусок кода
//еще кусок кода

Только она много где может наменять:)
14 Stepa86
 
09.06.11
09:50
+(12) в конце модуля кодом можно даже ПриОткрытии переопределить, если нужно...
15 Undefined
 
09.06.11
09:51
(2) и (12) мне кажеться наиболее возможным
16 Stim213
 
09.06.11
09:52
и не забываем делать бекапы
17 Immortal
 
09.06.11
21:47
(13)юзай хранилище - захватил, поменял где надо и усе
18 Neg
 
09.06.11
21:48
(5) А что менять?
19 Smallrat
 
09.06.11
21:57
Если это типовая, то я бы попытался найти функцию которая вызывается во всех формах при открытии и попытался бы впихнуть код туда.
например в бухии это
РаботаСДиалогами.УстановитьОтборПоОрганизации(ЭтаФорма,, глЗначениеПеременной("ОсновнаяОрганизация"), "ДокументСписок");
РаботаСДиалогами.ИзменитьПредставлениеКнопкиВыбораСвойств(ЭтаФорма, РаботаСДиалогами.ПолучитьОписаниеЗначенийСвойствОбъекта(ЭлементыФормы.ДокументСписок.ТекущаяСтрока));
есть почти в каждой форме списка
20 Drock
 
09.06.11
21:59
(19) вполне логично, а как не хватает этой чертовой подписки на события.... блин сейчас систему контроля доступа на уровне форм делать... полная засада...
21 ErrorEd88
 
09.06.11
23:01
Глобальная замена..
22 MRAK
 
09.06.11
23:09
(19) + 100500
А не уродовать конфу всякими парсерами...
23 Immortal
 
09.06.11
23:09
фырк
24 Immortal
 
09.06.11
23:09
ленивцы
25 MRAK
 
09.06.11
23:15
(23), (24) при всем моем уважении...
для типовых - совет в (2) - хавно
26 MRAK
 
09.06.11
23:16
+ для современных типовых
27 Immortal
 
09.06.11
23:30
(26)а что изменилось в современных типовых?
28 MRAK
 
09.06.11
23:43
(27) при открытии формы списка вызывается какая-нить общая проца
29 Immortal
 
09.06.11
23:44
(28)ииии?
если в коде написано РаботаСДиалогами.ВоткнутьКнопкуПечати()
а у тебя там в этой процедуре 150 закладок на форму добавляется, это что, правильное решение?
30 MRAK
 
09.06.11
23:48
(29) читаем (0)
"добавить во все формы списка всех документов конфигурации в процедуру ПриОткрытии одинаковый код?"

то есть, ты предлагаешь, в КАЖДУЮ форму добавить ОДИНАКОВЫЙ код, вместо того, чтобы добавить его в свою процедуру, которая вызовется из "РаботаСДиалогами.ВоткнутьКнопкуПечати()"?

Думаешь, твой способ филиграннее и удобнее в поддержке?
31 Immortal
 
09.06.11
23:52
(30)а я что то писал про одинаковый код?
решение: в ПриОткрытии
определить процедуру:
МойМодуль.ПриОткрытииФормыДокумента.
32 Immortal
 
09.06.11
23:53
и в ней уже делать что душе угодно
33 MRAK
 
09.06.11
23:53
(31) про одинаковый код писал (0).
Иногда нужно быть и читателем...
34 Immortal
 
09.06.11
23:54
(33)таки неизвестно что это за одинаковый код=)
это может быть и (31), не так ли?=)
35 Immortal
 
09.06.11
23:55
вопрос религии, в общем
36 MRAK
 
09.06.11
23:55
(31) + при вызове свой процы из "РаботаСДиалогами.ВоткнутьКнопкуПечати()" можно анализировать метаданные объекта и вызывать нужные тебе процы.
Не придется гробить ВСЕ типовые формы
37 Immortal
 
09.06.11
23:56
почему все? формы списков документов - их немного..
да я бы угробил и все, если бы была такая задача
должно быть: доступно и всерьез=)
38 MRAK
 
09.06.11
23:56
(35) не религии, а гибкости и простоты поддержки. В старых конфах твой вариант был единственным и я им пользовался, благодарен тебе за идею. Но сейчас для типовых он устарел
39 MRAK
 
09.06.11
23:57
(37) гемор с обновлениями)
40 Immortal
 
09.06.11
23:59
(39)обновление раз в 2-3 месяца, это немного
простота поддержки легко убивается дописками в разных местах - когда уже не понимаешь, где что и откуда почему и зачем
41 milan
 
10.06.11
00:05
Столкнулся с тем, что если просто добавить процедуру ПриОткрытии и не проптсать ее в события формы не работает.

А вообще платформа, конечно умиляет  своими возможностями. Вроде бы простой механизм, а придется извращаться. Взять те же отборы в динамическом списке - ну какого х их было не вынести как реквизиьы на форму ? Теперь в типовых в каждой форме списка сотни овнокода по отслеживанию и установке значений реквизита в отбор. И ведь в 14 релизе не поправили.
42 Immortal
 
10.06.11
00:08
и где там сотни строк, а?=)
43 milan
 
10.06.11
00:22
Да и хоть бы их всего 10, но везде одинаковые - красоты решения нет. Я вот заюзал их методу, а оне в новом релизе переименовали чего-то, теперь перелопачивать придется ;)
Я 8.2  когда увидел  - обрадовался, многие вещи красиво сделаны, а потом стал присматриватьси - многое сделано наполовину. С отборами - кодируй, в скд - отличнейший механизм но опять хочешь расшифровки - кодируй, поллуделки в 1с сидят на разработке платформы ;)
44 MRAK
 
10.06.11
00:24
(43) есть такое, но в 8.1 еще хуже было... развивается, однако, платформа...
45 milan
 
10.06.11
00:27
(44) очень рад, кстати, что с 8.1 не довелось общаться. Намного приятнее  было с 1с++ поковыряться.
46 orefkov
 
10.06.11
00:55
О как, опять хотят нихрена не делать и отстатыщ получать...
(19)
Решение вполне в духе одноэсников.
Смотришь процедуру
РаботаСДиалогами.ИзменитьПредставлениеКнопкиВыбораСвойств
а там ВНЕЗАПНО какая-то хрень к примеру по проверке прав проведения.
"Читая на клетке с бегемотом надпись Жираф, не верь глазам своим"
47 Эстет хренов
 
10.06.11
01:53
(46) а что делать? 1с не сделала нормальный промежуточный слой для кастомизации решений и перехвата всех нужных событий.
Лучше снять с поддержки один общий модуль чем сто форм.
48 Поручик
 
10.06.11
02:24
О подписках на события для визуальных объектов талдычили ещё несколько лет назад, да хрен там.
49 orefkov
 
10.06.11
07:30
(47)
Понятно, что на уровне платформы это не поддерживается, но могли бы в типовых создать общий модуль типа "Пользовательский", и там сделать пустые методы.
И везде в ПриОткрытии вставить
Пользовательский.ПриОткрытииФормы
50 Smallrat
 
10.06.11
08:38
(49) Какие типовые, такие и методы работы с ними (
51 VladZ
 
10.06.11
08:46
(0) Гы-гы-гы... Добавь во все документы ручками... С клиента возьми почасовую оплату...  :)
52 Stepa86
 
10.06.11
08:47
в 8.2 можно в ролях настроить какой реквизит будет виден и какой доступен, но это только для упр. форм

(28) вот прикольно будет искать какая сволочь меняет доступность половине формы и в конце концов выяснить, что это процедура "ДобавитьКнопкуПечати"... я б за такое чо нить оторвал
53 MRAK
 
10.06.11
08:50
(52) конечно, лучше накакать в каждой типовой форме - отложить там одинаковый код)
54 Stepa86
 
10.06.11
08:54
(53) Лучше вообще чо нить другое придумать, но если выбирать между проходом парсера с автодобавлениеми и использованием общей процедуры, которая есть почти везде и делает что то иное, то я выберу первое. Тем более, что парсером можно добавленное и убирать перед обновлением
55 Stepa86
 
10.06.11
08:55
(53) есессно одинаковый код должен выглядеть примерно так:

МоиМетоды.СделатьЧтоТоДляФормы( ЭтаФорма );
56 milan
 
10.06.11
09:44
1С - платформа для штамповки быдлокода и среда для размножения быдлокодеров, истинно говорю !!!
57 Эстет хренов
 
10.06.11
10:57
(54) это штатная возможность? или парсить сторонними средствами выгруженные в текст модули?
58 Stepa86
 
10.06.11
10:59
(57) я обработку писал, которая выгружает модули, обрабатывает и обратно вставляет
59 dimoff
 
10.06.11
11:03
Тестовое задание на текущую вакансию:

7.    Возникла необходимость добавить во все формы списка всех документов конфигурации в процедуру ПриОткрытии одинаковый код. Каким образом быстрее всего можно это сделать, если конфигурация содержит большое количество документов?
60 Эстет хренов
 
10.06.11
11:07
(58) А эта обработка есть где-то в виде скачать\купить? или она не для распространения?
(59) это вакансия программиста на Селезневскую?
61 МишельЛагранж
 
10.06.11
11:11
(56) не москвич, однако...
(59) та все-таки ПриОткрытии формы, документа или МодуляОбъекта??
А то зарплата в каждом случае отличается на порядок...
62 dimoff
 
10.06.11
11:19
(60) На Ак. Королева
63 ado
 
10.06.11
11:20
(62) Не в ОРТ случайно? А то оне там долго прога искали ...
64 Reset
 
10.06.11
11:26
(61) За такой вопрос можно сразу отказывать в вакансии - изза отсутствия навыка чтения на русском языке. Впрочем, чему тут удивляться, это же Мишель.
65 Stepa86
 
10.06.11
11:28
(60) http://ifolder.ru/24068197

писалась под 8.1, но сейчас сконвертена под 8.2

для выбранной конфы удаляет все между метками на удаление и снимает комментарий между метками на раскомментирование. Сами метки задаются в модуле. Конфа должна быть файловой, под клиент-сервер нужно будет слегка модифицировать
66 MNS_Ротерта
 
10.06.11
11:28
(0) В формах нет возможности вставить кусок кода в формы. Если в модули объектов то подписку делай как было сказано выше.
Единственное можешь попробовать найти процедуру которая вызывается из всех форм и в нее запихнуть свой кусок кода. Например зполнение шапки документа. Но это виидмо только получишь документы.
67 MNS_Ротерта
 
10.06.11
11:30
(56) ну а что теперь поделаешь. 1С ведь. Тут отказать в идиотской доработке сложно, хотя я руками и ногами за отмену глупостей вроде "добавьте мне фишечку". Это анархизм :(
68 dimoff
 
10.06.11
11:34
(63) Нет, Дарьял-ТВ теперь ищет
69 Rebelx
 
10.06.11
11:35
(0)бери обработку http://zalil.ru/31233501
70 dimoff
 
10.06.11
11:35
(56)(67) Узнаю тупых одинэсников. 1с уже давно стала платформой, по возможностям сильно опережающая всех конкурентов, в том числе и ввсякие аксапты, но тупые одинэсники до сих пор не избавились от привычки её ругать.
71 Reset
 
10.06.11
11:38
(70) "Это не я написал уйню, это платформа мне ее позволила написать" :D
72 Поручик
 
10.06.11
12:04
(70) Шедеврально. Можно адрес магазина, где траву покупали?
73 МишельЛагранж
 
10.06.11
12:06
"Ты тупой 1С-ник!
"нет, это ты тупой 1Сник!"
"а ты тупее тупого 1Сника!"
"а ты, ты - ты тупее платформы, которая позволила тебе написать тупой код тупого 1С-ника по тупому алгоритму!!"
(следствие из теоремы БЖ)
74 Steel_Wheel
 
10.06.11
12:08
(0) Журнал этих документов еще не предлагали?
75 МишельЛагранж
 
14.06.11
11:17
(46) если программирование свелось к зазубриванию и бездумному набору кода (уж не знаю, по причине 1С ли, или по планам правительства, или общей дебилизации населения), то вопросы
>>О как, опять хотят нихрена не делать и отстатыщ получать...
не должны возникать...