![]() |
#1 |
Участник
|
Здравствуйте, уважаемые!
Как-то на форуме встречала топик, в котором предлагалось бить смертным боем тех, кто в коде пишет что-то наподобие Код: if Item."Item Category code"='ГОТОВЫЕ' then.... Вот и возник вопрос, а как писать-то? Ведь написать нужно так, чтобы в случае изменения кода(например, Готовые зачем-то заменили на ГОТ) все продолжало работать. Пожалуйста, поделитесь опытом. |
|
![]() |
#2 |
Участник
|
Конкретно тот кусок кода, который Вы привели - сам по себе "переводу" не подлежит.
А вот если смотреть на ситуацию в целом, и если б Вы описали, для чего Вам это нужно - то возможно - можно придумать вариант без хардкода. |
|
![]() |
#3 |
Участник
|
Цитата:
-при создании товара- в зависимости от выбранной КодТоварной Категории заполняются поля определенными значениями. -при выгрузке в Клиент-Банк у меня все завязано на названия журналов, при любом изменении-все летит. -в любом отчете(который мы пишем) по товару многочисленные проверки по группе -с измерениями та же песня. |
|
![]() |
#4 |
Участник
|
Создаете поле в настроечной таблице (раздел выбирайте сами, в зависимости от того, как именно хотите использовать поле). В данном случае будет ссылка на Категории Товара. После этого в коде можно будет писать так :
ТоварНастройка.GET; ТоварНастройка.TESTFIELD(НашеПоле); // по желанию IF Item."Item Category code"= ТоварНастройка.НашеПоле THEN.... |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от ruselhope
![]() Здравствуйте, уважаемые!
Как-то на форуме встречала топик, в котором предлагалось бить смертным боем тех, кто в коде пишет что-то наподобие Код: if Item."Item Category code"='ГОТОВЫЕ' then.... Вот и возник вопрос, а как писать-то? Ведь написать нужно так, чтобы в случае изменения кода(например, Готовые зачем-то заменили на ГОТ) все продолжало работать. Пожалуйста, поделитесь опытом. ![]() |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Участник
|
Цитата:
А какая разница, после компиляции все равно заглавные будут.
![]() |
|
![]() |
#8 |
Участник
|
Добавляете в настройки соответсвующего раздела поле со ссылкой на соответсвующий справочник- в данном случае, на справочник Товар Категория - а в коде сравниваете не с конкретним значением, а со значением поля из настроек.
У меня все именно так сделано - дополнительные настройки сгрупированны по тематике и вынесены в настройки соответсвующего модуля. |
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
Цитата:
Таких ситуаций у меня возникает довольно много, например,
-при создании товара- в зависимости от выбранной КодТоварной Категории заполняются поля определенными значениями. Правда придется целую таблицу потратить (а они дороги) |
|
![]() |
#11 |
Участник
|
Всё просто - добавляете в настройки соответсвующего раздела поле со ссылкой на соответсвующий справочник (в данном случае, на справочник Товар Категория), а в коде сравниваете не с конкретним значением, а со значением поля из настроек.
У меня все именно так сделано - дополнительные настройки сгрупированны по тематике и вынесены в настройки соответсвующего модуля. ![]() |
|
![]() |
#12 |
Участник
|
grif,Sitizen - Народ вам что делать нечего?
![]() Решили все ответить одно и то же? Займитесь лучше делом-изучайте 5 навижин. ruselhope-а вам посоветую изучить программирование . Ни в одной уважаемой системе значение полей не прописывается в коде. И не важно Навижин-это или что либо другое. Как делать правильно-в Навижине столько примеров. Откройте глаза-и смотрите на Наивжин. Для чего там сделаны - setup таблицы например? Где прописаны серии номеров для заказов? Вообщем смотрите. |
|
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
Участник
|
Детский сад
![]() Галин, ну ты то уж тоже... прям и ответить нельзя... даже и не знаю, что теперь делать ![]() |
|
![]() |
#15 |
Участник
|
|
|
![]() |
#16 |
Участник
|
|
|
![]() |
#17 |
Участник
|
randrews- я сама решаю как мне и на что реагировать
![]() ![]() sitizen - наверно сделать выводы? ![]() balashov - да только для партнеров пока. в России выйдет только вроде через год. |
|
![]() |
#18 |
Участник
|
Цитата:
![]() ![]() Помню кто-то спросил на форуме - в каких случаях ставят CALCFIELDS, а в каких SETFILTER (в контексте, что эти функции несут похожий смысл). Там, может, и уместно просить человека посмотреть хелп. Но здесь человек хотел узнать - какие есть способы бороться с хардкодом. Узнать различные способы борьбы с этим явлением. По-моему, нормальный вопрос. |
|
![]() |
#19 |
Участник
|
randrews-зря вы так. Я новичков не мочу.
![]() Просто вопрос очень общий. Если у вас есть время написать здесь полный ответ-и описать правила архитектуры и программирования. Отлично, так и сделайте. У меня лично нет. Я дала конкретный совет-посмотрите Setup таблицы и там все поймете. Человеку же и с другими вещами разбираться после. Также? ![]() Я просто даю удочку ловить рыбу, а не рыбу, если человек голоден. ![]() |
|
![]() |
#20 |
Участник
|
randrews, а где Вы увидели "мочить"?
Между прочим, Галка, единственная из всех, высказала УНИВЕРСАЛЬНУЮ мысль, подходящую к любой затруднительной ситуации, с которой только может столкнуться новичок, а Вы это за наезд сочли... Грустно ![]() Конечно, идея "вместо хардкода по значению поля - вынести это в настройку товаров" - ценная, но далеко не универсальная. В следующий раз - у ruselhope возникнет другая проблема, и "настройка товаров" - уже не поможет ![]() Зато НАВЕРНЯКА поможет мысль (если ей проникнуться как следует), что почти все, что может понадобиться в работе - УЖЕ реализовано в САМОМ Navision - и осталось только открыть форму/таблицу/отчет - и посмотреть, как это сделано там. ![]() ![]() ![]() ЗЫ: замечу к своему стыду, что никакую документацию я так никогда и не прочла... ![]() Так что совет, данный Галиной - ОЧЕНЬ даже правильный. Если действительно "открыть глаза - и смотреть на Navision" - можно понять, что "почти все уже придумано до нас", и ломать голову над "велосипедом" (aka "как сделать так, чтоб при переименовании записи все не рушилось?") - совершенно необязательно... достаточно "открыть глаза" ![]() |
|