|
OFF: Очередной "шедевр" "нестандартного" кода 🠗 (Волшебник 09.04.2012 21:31) | ☑ | ||
---|---|---|---|---|
0
Холст
09.04.12
✎
18:40
|
не называю сразу "быдлокод", дабы не обижать автора
кодом сразу утомлять не буду, смысл - обязательные к заполнению реквизиты табличной части документа должны иметь точку на конце в комментарии к этому реквизиту, т.е. Для Ин=1 По Метаданные.Документ(Конт.Вид()).РеквизитТабличнойЧасти() Цикл Коммент=СокрЛП(Метаданные.Документ(Конт.Вид()).РеквизитТабличнойЧасти(Ин).Комментарий); Идент=СокрЛП(Метаданные.Документ(Конт.Вид()).РеквизитТабличнойЧасти(Ин).Идентификатор); Если Прав(Коммент,1)<>"." Тогда Продолжить; КонецЕсли; //пропускаем "необязательный" реквизит //далее проверка заполненности |
|||
1
Voronve
09.04.12
✎
18:43
|
Даже не знаю что сказать...
|
|||
2
Нуф-Нуф
09.04.12
✎
18:44
|
(1)+1
|
|||
3
Джинн
09.04.12
✎
18:44
|
(1) Ну тогда не говори ничего
|
|||
4
Нуф-Нуф
09.04.12
✎
18:44
|
(3) так он и так ничего не говорит
|
|||
5
Voronve
09.04.12
✎
18:44
|
(3) Ты мне рот незатыкай ;)
|
|||
6
bahmet
09.04.12
✎
18:44
|
(0) перевидите на Си, а то не понятно...
|
|||
7
Gantosha
09.04.12
✎
18:45
|
карма быть программистом определяет занятие, но не влияет на код. Поэтому по коду судить нельзя.
|
|||
8
bahmet
09.04.12
✎
18:45
|
перевЕдите.
|
|||
9
i-rek
09.04.12
✎
18:45
|
а мне нравится. если это самописка - то креативненько и прогрессивно
|
|||
10
Джинн
09.04.12
✎
18:48
|
(5) А чего Вы неподготовленным пришли на форум? Тут шедевр, а Вам сказать нечего.
|
|||
11
Voronve
09.04.12
✎
18:49
|
(10) Бгг ))) второй филя ? оО
|
|||
12
Jstunner
09.04.12
✎
18:49
|
У кажого, кто написал хотя бы несколько тысяч строк когда, можно найти тупизну в программах.. А тут вполне рабочая идея, доступная и вполне сопровождаемая
|
|||
13
Ахиллес
09.04.12
✎
18:49
|
(0) Всё замечательно, но можно ещё улучшить. Первая буква должна быть в верхнем регистре. Правила русского языка надо уважать.
Автор настоящий грамма-наци. Уважаю. |
|||
14
Джинн
09.04.12
✎
18:51
|
(12) Увы, мы не настолько талантливы :( Наш лоховской быдлокод в подметки не годиться истинным мастерам.
|
|||
15
smaharbA
09.04.12
✎
18:51
|
и чо ?
|
|||
16
Voronve
09.04.12
✎
18:53
|
(0) Сделать глобальную функцию по типу "глВсеРеквизитыДокументаЗаполнены" по типу ТиСовской, только для тч.
|
|||
17
bahmet
09.04.12
✎
18:53
|
ТС не осилил, что делает код, поэтому тупо запостил и смотрит реакцию..
а еще возможно в случае положительной реакции, напишет что творение его и уже черкает заявку на патент. |
|||
18
smaharbA
09.04.12
✎
18:53
|
Для Сч=1 По Метаданные.ОбщийРеквизитДокумента() Цикл
Рекв=Метаданные.ОбщийРеквизитДокумента(Сч); // Признак доп. настройки - "~" Если Найти(Рекв.Комментарий,"~")=0 Тогда Продолжить; КонецЕсли; тзДокНастр.НоваяСтрока(); |
|||
19
Ахиллес
09.04.12
✎
18:53
|
Я бы ещё в проверку на капс вставил. Если весь комментарий капсом набран, то безусловное завершение работы системы без сохранения документа. И пусть заново набивают накладушку, пока не научатся хорошим манерам.
|
|||
20
МурЬка
09.04.12
✎
18:54
|
Некоторые отраслевки в себе такое содержат.
|
|||
21
smaharbA
09.04.12
✎
18:54
|
Если (ПустаяСтрока(Мет.Комментарий)=1)И(ПоказыватьСлужебнуюИнф=1) Тогда
Сообщить("Не задан коментарий для объекта "+ТЗ.Вид,"I"); Иначе ТЗ.Комментарий=Мет.Комментарий; КонецЕсли; |
|||
22
Обработка
09.04.12
✎
18:55
|
(0) И что тут такого страшного?
Это ведь из 1с77? |
|||
23
antgrom
09.04.12
✎
18:56
|
(0) Наверное , сначала была написана обработка.
Без заботы о чистоте кода , о быстродействии и т.п. А потом код из обработки вырезали и не переписали. |
|||
24
Ахиллес
09.04.12
✎
18:56
|
(21) Это твой код что ли в (0)? Чё ты так возбудился то?
|
|||
25
smaharbA
09.04.12
✎
18:57
|
(24) Кто как возбудился ?
|
|||
26
Lexxxxx
09.04.12
✎
19:01
|
Хотелось бы услышать об альтернативных, так сказать правильных с точки зрения автора темы, решениях задачи проверки заполнения обязательных реквизитов в масштабах всей конфигурации.
|
|||
27
Ахиллес
09.04.12
✎
19:02
|
(25) Ну какие то сумбурные посты (18) и (21). Не понятно, что сказать хотел или похвалится.
|
|||
28
Asmody
09.04.12
✎
19:03
|
я бы ещё в комментарий регулярку бы засунул для проверки на соответствие…
|
|||
29
Asmody
09.04.12
✎
19:04
|
(28)+ или можно прям кусок кода в комментарий шарахнуть, который истину/ложь возвращает для значения реквизита
|
|||
30
GreyK
09.04.12
✎
19:08
|
(0) И с какого ..перепугу - это плохой код? Нужно отобрать все доки с определенным комментарием. Зачем гонять цикл по общим реквизитам, если реквизит известен?
|
|||
31
cathode
09.04.12
✎
19:20
|
(0) Это по ходу какая-то рарусовская отраслевка. А в Рарусе далеко не дураки конфы пишут, уж поверьте.
|
|||
32
catena
09.04.12
✎
19:20
|
(30)Английский свободно, 1с со словарем?
в (0) никто не отбирает документы с комментарием, там отбирают РЕКВИЗИТЫ с комментарием с точкой в конце. А чем не вариант? |
|||
33
Lexxxxx
09.04.12
✎
19:22
|
Холст, ну где же Вы?! Очень хотелось бы выслушать Ваше авторитетное мнение!
|
|||
34
Lexxxxx
09.04.12
✎
19:25
|
Единственное мне не ясно, вот эта беготня с поиском точек в комментарии реквизита производится каждый раз при проверке реквизитов? Может при старте системы закешировать их в списочек?
|
|||
35
Torquader
09.04.12
✎
19:28
|
Так, а в чём проблема - Комментарий - это Description в метаданных реквизита (то есть то, что вводится в строке "Коментарий" в конфигурации.
Кстати, пользователи этот комментарий не видят. Вот почему бы в него и не запихнуть что-то, что необходимо программе для работы. P.S. комментарий допускает хранение до 128 символов кода, что позволяет сложить туда даже алгоритм проверки значения на соответствие нестандартному шаблону, а не только признак необходимости заполнения реквизита. А вы, если не секрет, где признак заполнения храните ? |
|||
36
vde69
09.04.12
✎
19:33
|
(31)
------------------------------------------------------ чуток более читатебельно и красивей будет: мДок = Метаданные.Документ(Конт.Вид()); к = мДок.РеквизитТабличнойЧасти(); Для Ин=1 По к Цикл Коммент=СокрЛП(мДок.РеквизитТабличнойЧасти(Ин).Комментарий); Идент=СокрЛП(мДок.РеквизитТабличнойЧасти(Ин).Идентификатор); Если Прав(Коммент,1)<>"." Тогда Продолжить; КонецЕсли; |
|||
37
GreyK
09.04.12
✎
19:35
|
(32) В чём проблема? Ну ищутся комменты с точками в табличных частях в сабже, ну и чем вам мой русский не угодил? Вам косторочки бы выпить грамм 50 и всё как рукой снимет :)
|
|||
38
cathode
09.04.12
✎
19:36
|
В целом идея, конечно, хорошая. Но составление списков обязательных реквизитов в коде гораздо нагляднее и меньше риск потерять настройки при групповой работе или обновлениях, т.к. текстовые данные сливать вместе легче.
|
|||
39
GreyK
09.04.12
✎
19:38
|
+(37) косторочки = касторочки, рецепт не мой, но доктор Пилюлькин внушает доверие :)
|
|||
40
Torquader
09.04.12
✎
19:40
|
(38) В тексте, конечно, лучше, но править текст сложнее, чем убрать точку с реквизита - а конфигурацию в любом случае править - во еже ли хранить в текстовом файле в директории базы, то тогда его можно править, когда пользователи работают - но нужно будет следить, чтобы они сами не поправили.
|
|||
41
IamAlexy
09.04.12
✎
19:41
|
(0) а чо, прикольное решение....
|
|||
42
GreyK
09.04.12
✎
19:43
|
Хотя и присутствует проблема с выбранной строкой, но если работает не трожь!
|
|||
43
cathode
09.04.12
✎
19:48
|
(40) А TurboMD на что? Правим, выгружаем из конфигурации на ходу и ус?. К тому же оптимально управлять обязательностью заполнения группы реквизитов в зависимости, например, от вида операции документа, можно только из текста программы.
|
|||
44
Один С
09.04.12
✎
19:53
|
автор - дятел. сам то наверное все стандарты соблюдает, все отступы по стандарту Мёбиуса.
не судите, и не судимы будете.. |
|||
45
DrShad
09.04.12
✎
21:05
|
а где сам ТС? где его решение?
|
|||
46
mirosh
09.04.12
✎
21:17
|
(0) и чо тут такого?
это нестандартное решение, оно красиво (по крайней мере). а что можешь предложить ты? следи за своим кодом лучше) |
|||
47
DrShad
09.04.12
✎
21:21
|
(46) +100500
если его поместить в модуль поставляемый без текста, то хрен кто догадается почему одни реквизиты ведут себя по другому |
|||
48
Guk
09.04.12
✎
21:22
|
а где смеяться то?...
|
|||
49
andrewks
09.04.12
✎
21:27
|
тонкий английский юмор
|
|||
50
DrShad
09.04.12
✎
21:29
|
предлагаю забанить ТС, ибо мнение не высказано, своего решения нет, в обсуждении не учавствует
|
|||
51
NcSteel
09.04.12
✎
21:32
|
(29) Оооо. До такого еще не додумывался. Надо попробовать.
|
|||
52
Torquader
09.04.12
✎
21:32
|
(43) Проще, когда это можно поменять из интерфейса администратора, и от одних "зверей" требовать, а другим - "прощать".
(50) Пусть лучше расскажет, сколько минут ушло на понимание кода. |
|||
53
Torquader
09.04.12
✎
21:33
|
(51) К сожалению, в седьмой версии штатно можно исполнять только код на Visual Basic, а последний не может работать с объектами 1С напрямую.
|
|||
54
iithethethe
09.04.12
✎
21:42
|
Волшебник опустил ветку пока не узнали его перо
|
|||
55
France
09.04.12
✎
23:16
|
(0) для 77 норма.. он Раруса есть продукт по управлению правами доступа: сплошь и рядом проверка комментария на соответствие шаблону..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |