Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как переделать код в функцию?

v7: Как переделать код в функцию?
Я
   JuixyJes
 
21.05.19 - 12:31
Доброго времени суток! Помогите пожалуйста, есть код в процедуре, но идентичный код имеется в 6 процедурах конфигурации. Как этот код сделать функцией, чтобы к ней обращаться?

    адрес =СтрЗаменить( ТЗ.ПолучитьЗначение(стр,1).ЮрАдрес, ",",РазделительСтрок);
    Если ПустоеЗначение(адрес) = 1 Тогда
        индекс = " ";
        область = " ";
        город = " ";
        ул = " ";
        кв = "" ;
    ИначеЕсли ПустоеЗначение(СтрПолучитьСтроку(адрес,1)) = 1 Тогда
        индекс = СтрПолучитьСтроку(адрес,2)+", ";
        область = СтрПолучитьСтроку(адрес,3)+", ";
        город = СтрПолучитьСтроку(адрес,5)+", ";
        ул = СтрПолучитьСтроку(адрес,7)+" "+СтрПолучитьСтроку(адрес,8)+", ";
        кв = "кв. " + СтрПолучитьСтроку(адрес,9) + СтрПолучитьСтроку(адрес,10) ;
    Иначе
        индекс = СтрПолучитьСтроку(адрес,1)+", "+" ";
        область = СтрПолучитьСтроку(адрес,2)+", "+" ";
        город = СтрПолучитьСтроку(адрес,3)+", "+" ";
        ул = СтрПолучитьСтроку(адрес,4)+" "+ СтрПолучитьСтроку(адрес,5)+", "+" ";
        кв =  СтрПолучитьСтроку(адрес,6)  ;
    КонецЕсли;
 
 
   Mikeware
 
1 - 21.05.19 - 12:44
обернуть в Функция()/КонецФункции ?
   Йохохо
 
2 - 21.05.19 - 12:48
(1) так индекс то не видно снаружи будет, и область, куда потом итить?
   trooba
 
3 - 21.05.19 - 12:48
(0) Только что твоя функция будет возвращать? Нужно список значений добавлять
   JuixyJes
 
4 - 21.05.19 - 12:56
(3) это понятно, список значений, но как мне это сделать то, я в 7ке вообще не соображаю
   JuixyJes
 
5 - 21.05.19 - 13:30
я бы и оставила так как есть, работает же, но  сильно много строчек из-за вот этого всего, ибо не только этот код повторяется.
   mikecool
 
6 - 21.05.19 - 13:44
(4) если не соображаешь и работает - не трожь!!!
   Garykom
 
7 - 21.05.19 - 13:44
>Если ПустоеЗначение(адрес) = 1 Тогда 
нахрен не надо, инициализация пустых всегда сначала без условия

>ИначеЕсли ПустоеЗначение(СтрПолучитьСтроку(адрес,1)) = 1 Тогда
сложно просто "НомерПодстроки" сместить на 1? и писать
 индекс = СтрПолучитьСтроку(адрес, НомерПодстроки)+", "+" ";
 область = СтрПолучитьСтроку(адрес, НомерПодстроки+1)+", "+" ";
   Garykom
 
8 - 21.05.19 - 13:45
и да вот эти +", "+" ";  хрень какая то
   Mikeware
 
9 - 21.05.19 - 14:00
(2) ну дык возвращать... как и положено функции.
(4) функции в других языках сильно отличаются от функций в клюшках?
   JuixyJes
 
10 - 21.05.19 - 14:11
(7) проблема в том, что адрес - разделение строки на составляющие и если у меня заполнены данные в реквизите адреса как ",,,,," то и заполнится все этими самыми запятыми. А мне оно не нужно.
   JuixyJes
 
11 - 21.05.19 - 14:21
(7) Вы мне лучше подскажите как мне сделать так чтобы функция работала с той переменной которую я выбираю в процедуре
   1Сергей
 
12 - 21.05.19 - 14:22
(11) передать её параметром. не?
   Garykom
 
13 - 21.05.19 - 14:25
адрес =СтрЗаменить( ТЗ.ПолучитьЗначение(стр,1).ЮрАдрес, ",",РазделительСтрок);

или "адрес" в функцию или объект из колонки ТЗ + имя реквизита объекта или ТЗ + строка + колонка + имя реквизита
   HawkEye
 
14 - 21.05.19 - 14:35
(11)
это функция:
Функция РазобратьАдрес(вхАдрес)
    адрес =СтрЗаменить(вхАдрес, ",",РазделительСтрок); 
    Если ПустоеЗначение(адрес) = 1 Тогда 
        индекс = " "



это ее вызов:
 РазобратьАдрес(ТЗ.ПолучитьЗначение(стр,1).ЮрАдрес)


дальше надо понимать, что у тебя такое:
индекс, область, город, ул, кв
   MWWRuza
 
15 - 21.05.19 - 14:49
+(14)И поместить ее в глобальный модуль, объявив экспортной, с помощью "Экспорт", что-бы к ней можно было из любого места конфы обращаться.
   Garykom
 
16 - 21.05.19 - 14:52
(15) В ВК
   HawkEye
 
17 - 21.05.19 - 15:00
(15) зачем?
   Mikeware
 
18 - 21.05.19 - 15:36
(16) разместить в инете как веб-сервис
   1Сергей
 
19 - 21.05.19 - 15:37
(16) Во вконтактике?
   Mikeware
 
20 - 21.05.19 - 15:38
(19) а разве там порнуху не запретили?
   MWWRuza
 
21 - 21.05.19 - 19:14
(17)Вот за этим: (0)есть код в процедуре, но идентичный код имеется в 6 процедурах конфигурации.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.