|   |   | 
| 
 | 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 норма.. он Раруса есть продукт по управлению правами доступа: сплошь и рядом проверка комментария на соответствие шаблону..     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |