|   |   | 
| 
 | Почему на этом коде зависает? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Лиза777 19.07.13✎ 19:24 | 
        Здравствуйте.
  У меня комплексная автоматизация. В общем модуле общего назначения есть процедура ПриУстановкеНовогоНомераДляДокументов(), у нас там было ДобавитьПрефиксУзла(Префикс); я поменяла на Попытка Если Источник.Организация = Справочники.Организации.НайтиПоКоду("00003") Тогда Если Источник.Подразделение = Справочники.Подразделения.НайтиПоКоду("00020 ") Тогда Префикс = "СцК"; ИначеЕсли Источник.Подразделение = Справочники.Подразделения.НайтиПоКоду("КС0000009") Тогда Префикс = "СцН"; ИначеЕсли Источник.Подразделение = Справочники.Подразделения.НайтиПоКоду("КС0000008") Тогда Префикс = "СцТ"; КонецЕсли; Иначе ДобавитьПрефиксУзла(Префикс); КонецЕсли; Исключение ДобавитьПрефиксУзла(Префикс); КонецПопытки; и после этого стало очень зависать проведение всех документов. С 20-й попытки только проводится, вываливается ошибка "конфликт блокировок при выполнении транзакции". а что не так-то? ну мне надо префикс менять в зависимости от подразделения | |||
| 1
    
        Defender aka LINN 19.07.13✎ 19:25 | 
        рукалицо...     | |||
| 2
    
        WhiteCat 19.07.13✎ 19:29 | 
        (0) О май гад...     | |||
| 3
    
        WhiteCat 19.07.13✎ 19:31 | 
        (0) Может прописать префикс в справочник "Подразделения"?     | |||
| 4
    
        WhiteCat 19.07.13✎ 19:35 | 
        +(3) И получать его запросом     | |||
| 5
    
        Fragster гуру 19.07.13✎ 19:36 | 
        (3) прав
  немного копроускорить можно так: Организация00003 = XMLЗначение(Тип("СправочникСсылка.Организации"), "ТутУидОрганизацииСКодом00003"); // тут комментарий о том, что это за организация ... // тут остальные те, что НайтиПоКоду Если Источник.Организация = Организация00003 Тогда ... | |||
| 6
    
        WhiteCat 19.07.13✎ 19:37 | 
        +(4) Или вообще "зашить" префикс в код подразделения (например, последние 3 символа, или первые три символа, или вообще код будет префиксом подразделения - он, префикс, все равно ведь уникальный).     | |||
| 7
    
        Defender aka LINN 19.07.13✎ 19:37 | 
        (5) КАК ЭТО РАЗВИДЕТЬ??!     | |||
| 8
    
        WhiteCat 19.07.13✎ 19:38 | 
        (7) "РАЗ" что?     | |||
| 9
    
        Fragster гуру 19.07.13✎ 19:42 | 
        (7) что, ускорение и независимость от кода непредопределенных данных не затрагивающее конфу. по хорошему, конечно, допреквизит/атрибут к подразделению надо, о чем я прямо сразу и написал.     | |||
| 10
    
        WhiteCat 19.07.13✎ 19:44 | 
        (9) Нафиг доп реквизит. Зашить префикс в код и не париться - доступно и на сервере и на клиенте, получается из базы элементарно, прям со ссылкой в комплекте уже идет.     | |||
| 11
    
        Fragster гуру 19.07.13✎ 19:45 | 
        (10) а вдруг там еще 100500 мест с "найтипокоду" и если код поменять - все развалится?     | |||
| 12
    
        Defender aka LINN 19.07.13✎ 19:47 | 
        (9) Натрибуквы тут XML?
  Ну и куда побежишь, когда будет все то же самое, но в другой базе, где ВНЕЗАПНО другой идентификатор? | |||
| 13
    
        WhiteCat 19.07.13✎ 19:49 | 
        (11) Так то ты прав. Но ИМХО лучше найти глобально все эти "найтипокоду" и заменить на нормальные конструкции.
  Для данного примера работать будет вот так: Префикс = Источник.Подразделение.Код Тормоза тут ИМХО идут как раз из-за строчек подобных Если Источник.Подразделение = Справочники.Подразделения.НайтиПоКоду("00020 ") | |||
| 14
    
        WhiteCat 19.07.13✎ 19:50 | 
        А вообще надо начать с расстрела кодера, который все это написал.     | |||
| 15
    
        Fragster гуру 19.07.13✎ 19:50 | 
        (12) ну, оно работает сильно быстрее, чем найтипокоду. будет ОбъектНеНайден, да.     | |||
| 16
    
        vvp91 19.07.13✎ 19:55 | 
        > (13) Префикс = Источник.Подразделение.Код
  Получение реквизита через точку - садись, два. | |||
| 17
    
        Defender aka LINN 19.07.13✎ 19:56 | 
        (15) И сильно быстрее, чем ПолучитьСсылку, да?
  Хотя что то, что то - это лютый, леденящий душу, невыразимый пипец | |||
| 18
    
        WhiteCat 19.07.13✎ 19:57 | 
        (16) Ну запросом получай, кто мешает     | |||
| 19
    
        Fragster гуру 19.07.13✎ 19:59 | 
        сделал замер     | |||
| 20
    
        WhiteCat 19.07.13✎ 20:00 | 
        (19) И как?     | |||
| 21
    
        Fragster гуру 19.07.13✎ 20:00 | 
        (17) чем получитьссылку - сейчас добавлю в замер     | |||
| 22
    
        Fragster гуру 19.07.13✎ 20:03 | 
        Запрос = Новый Запрос;
  Запрос.Текст = " |ВЫБРАТЬ ПЕРВЫЕ 1 | Организации.Код, | Организации.Ссылка |ИЗ | Справочник.Организации КАК Организации |ГДЕ | НЕ Организации.ЭтоГруппа"; Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Код = Выборка.Код; УИД = XMLСтрока(Выборка.Ссылка); Повторов = 10000; ТекДата = ТекущаяДата(); Пока ТекущаяДата() = ТекДата Цикл // ждем начала секунды, чтобы снизить погрешность; КонецЦикла; ТекДата = ТекущаяДата(); Для Сч = 1 По Повторов Цикл Орг = Справочники.Организации.НайтиПоКоду(Код); КонецЦикла; Сообщить("По коду: " + (ТекущаяДата()-ТекДата)); ТекДата = ТекущаяДата(); Пока ТекущаяДата() = ТекДата Цикл // ждем начала секунды, чтобы снизить погрешность; КонецЦикла; ТекДата = ТекущаяДата(); Для Сч = 1 По Повторов Цикл Орг = XMLЗначение(Тип("СправочникСсылка.Организации"), УИД); КонецЦикла; Сообщить("По уиду: " + (ТекущаяДата()-ТекДата)); ТекДата = ТекущаяДата(); Пока ТекущаяДата() = ТекДата Цикл // ждем начала секунды, чтобы снизить погрешность; КонецЦикла; ТекДата = ТекущаяДата(); Для Сч = 1 По Повторов Цикл Орг = Справочники.Организации.ПолучитьСсылку(Новый УникальныйИдентификатор(УИД)); КонецЦикла; Сообщить("ПолучитьСсылку: " + (ТекущаяДата()-ТекДата)); | |||
| 23
    
        Fragster гуру 19.07.13✎ 20:03 | 
        По коду: 47
  По уиду: 0 ПолучитьСсылку: 0 | |||
| 24
    
        Fragster гуру 19.07.13✎ 20:04 | 
        убираем по коду, увеличиваем итерации в 100 раз:
  По уиду: 21 ПолучитьСсылку: 27 | |||
| 25
    
        Fragster гуру 19.07.13✎ 20:05 | 
        если вынести из цикла тип(), то
  По уиду: 16 ПолучитьСсылку: 27 | |||
| 26
    
        vde69 19.07.13✎ 20:10 | 
        почему ни кто не посоветовал быдло ускорение?
  Если Источник.Организация.Код = "00003" Тогда Если Источник.Подразделение.Код = "00020 " Тогда Префикс = "СцК"; | |||
| 27
    
        Defender aka LINN 19.07.13✎ 20:20 | 
        Defender aka LINN разрыдался и ушел в отшельники     | |||
| 28
    
        Fragster гуру 19.07.13✎ 20:21 | 
        (26) это считывает объект, возможно не быстрее     | |||
| 29
    
        Grobik 19.07.13✎ 20:24 | 
        (27) Не вижу
  http://www.forum.mista.ru/ban_list.php | |||
| 30
    
        EvgeniuXP 19.07.13✎ 20:37 | 
        (0) вас уволить нужно, за решение НайтиПоКоду... вы сколько времени учились? копейку в себя вложили? чтобы потом зарабатывать?     | |||
| 31
    
        Defender aka LINN 19.07.13✎ 20:45 | 
        (29) Так лучше?     | |||
| 32
    
        Grobik 19.07.13✎ 20:49 | 
        (31) Если бы я себя по пьяни баним, то многим людям бы не помог.
  Нет — не лучше. | |||
| 33
    
        Defender aka LINN 19.07.13✎ 20:50 | 
        (32) Это печально ©     | |||
| 34
    
        Mitriy 19.07.13✎ 20:52 | 
        я плакаю...     | |||
| 35
    
        Grobik 19.07.13✎ 20:57 | 
        "Если жизнь печальна, она не заслуживает даже называться жизнью." Эразм Роттердамский.
  "Никто из нас не говорит, живя без бед, что счастием своим судьбе обязан он; когда же к нам заботы и печаль придут, готовы мы сейчас во всем винить судьбу." Филет Косский "Печальна судьба человека, который смотрит на жизнь с высоты своих несчастий." Н.Голубов "Жизнь по преимуществу печальна. А сразу потом умираешь" Януш Леон Вишневский | |||
| 36
    
        wertyu 19.07.13✎ 21:01 | 
        (0) ещё никто не писал, что это ужасно?     | |||
| 37
    
        iHell 19.07.13✎ 21:03 | 
        Параметры сеанса еще не предлагали ?     | |||
| 38
    
        iHell 19.07.13✎ 21:04 | 
        + И регистр сведений - что типа произвольных параметров.     | |||
| 39
    
        Grobik 19.07.13✎ 21:05 | 
        (36) гугл "Отрезал себе член и умер от потери крови"     | |||
| 40
    
        wertyu 19.07.13✎ 21:06 | 
        (39) это был риторический вопрос )     | |||
| 41
    
        Конфигуратор1с 19.07.13✎ 21:07 | 
        злые вы, девушку зря обижаете. Видно же что 7шница     | |||
| 42
    
        Grobik 19.07.13✎ 21:07 | 
        Надеюсь Лиза уже забыла про свой вопрос.     | |||
| 43
    
        wertyu 19.07.13✎ 21:09 | 
        (42) тем более, что даже переделывать ничего не надо было )     | |||
| 44
    
        МЮЛЛЕР 19.07.13✎ 21:12 | 
        о май гад!!!     | |||
| 46
    
        Grobik 19.07.13✎ 21:15 | 
        (44) oh my God было Помогите сделать конфигурацию тут. Человек выкинул от коллекторской конторы базу на 1300 человек по башкортостану на 173 с копейками миллиона.     | |||
| 47
    
        Жан Пердежон 19.07.13✎ 21:16 | 
        (28) тебя ждали     | |||
| 48
    
        wertyu 19.07.13✎ 21:18 | 
        (47) вы о чём спорите? в КА для префиксов точно всё сделано, как и в УПП, и в УСО     | |||
| 50
    
        МЮЛЛЕР 19.07.13✎ 21:19 | 
        (49) longx@ukr.net     | |||
| 51
    
        Grobik 19.07.13✎ 21:19 | 
        (48) Если такой разносторонне образованный - пожалуйста ответь мне здесь v8: Документооборот КОРП для Украины     | |||
| 52
    
        Жан Пердежон 19.07.13✎ 21:20 | 
        +(47) промахнулся, это я (26)     | |||
| 53
    
        wertyu 19.07.13✎ 21:20 | 
        (46) видимо у них на собеседовании обязательное условие было - всё время быть обдолбанным )     | |||
| 54
    
        Grobik 19.07.13✎ 21:20 | 
        (50) Про меня все ясно, никогда не скрывался     | |||
| 55
    
        Fragster гуру 19.07.13✎ 21:21 | 
        (47) кто ждал? где ждал?     | |||
| 56
    
        wertyu 19.07.13✎ 21:21 | 
        (51) я хз какой документооборот на Украине, посмотри в личку )     | |||
| 57
    
        wertyu 19.07.13✎ 21:22 | 
        (55) см (52) )     | |||
| 58
    
        Grobik 19.07.13✎ 21:22 | 
        Нафиг личку, если шариш пиши на емыл. Можно заработать.     | |||
| 59
    
        wertyu 19.07.13✎ 21:23 | 
        (58) хорошо, напишу тут: Самара, Россия )     | |||
| 60
    
        Лиза777 20.07.13✎ 19:22 | 
        (30)(36) что ж вы сразу "уволить", вы же тоже не сразу умным стали. Я вот потому и задала вопрос, что не знаю как такой код оптимизировать. Я вот не знала, что НайтиПоКоду это тормоз. Хотя стараюсь запросы использовать, так как это быстрее, но тут вот что-то не додумалась.
  "Ужасно" наверное почти все сначала программировали, но потом научились. (13) надо же я вот так не догадалась, попробую так. Спасибо всем добрым людям, которые пытались помочь и подсказали! | |||
| 61
    
        NS 20.07.13✎ 20:05 | 
        (41) А что, в семерке так принято писать?
  А пустые циклы от одного до миллиона - там вставлять не принято? | |||
| 62
    
        NS 20.07.13✎ 20:05 | 
        (60) Зачем что-то находить, если можно тупо в условии сравнить код?     | |||
| 63
    
        Лиза777 20.07.13✎ 20:45 | 
        (61) я на 7-ке не пишу давно. Я на 8-ке пишу     | |||
| 64
    
        zak555 20.07.13✎ 20:47 | 
        (63) ты сеййчас в какой краске ?     | |||
| 65
    
        Красный рассвет 20.07.13✎ 20:48 | 
        (63) Лучше на сап уйди...     | |||
| 66
    
        Красный рассвет 20.07.13✎ 20:50 | 
        +(65) или замуж     | |||
| 67
    
        Конфигуратор1с 20.07.13✎ 20:50 | 
        (61) не. в семерке не было предопределенных элементов. виде не раз когда служебные справочники так юзали через найти по коду.     | |||
| 68
    
        zak555 20.07.13✎ 20:51 | 
        (67) были,ввидеглабльных пермененных     | |||
| 69
    
        Конфигуратор1с 20.07.13✎ 20:52 | 
        (60) ""Ужасно" наверное почти все сначала программировали, но потом научились. " в 99% так и есть, только фиг кто признается) 
  а найти по коду - это тот же запрос, таким образом в (0) у тебя 4 маленьких запроса в каждом документе | |||
| 70
    
        Конфигуратор1с 20.07.13✎ 20:53 | 
        (68) тем не менее были. кстати не только как глобальные переменные)     | |||
| 71
    
        Красный рассвет 20.07.13✎ 20:54 | 
        (67) В семерке грамотные люди заводили отдельный справочник для подобных вещей. 
  Ну главное что не по наименованию... По коду еще ничего)) | |||
| 72
    
        Конфигуратор1с 20.07.13✎ 20:58 | 
        (71) ну так и искали по коду.     | |||
| 73
    
        Конфигуратор1с 20.07.13✎ 20:59 | 
        жаль не осталось ни одной семерочной базы - там такого было много     | |||
| 74
    
        zak555 20.07.13✎ 21:00 | 
        (73) выкладывать бдгазпрома ? =)     | |||
| 75
    
        Конфигуратор1с 20.07.13✎ 21:00 | 
        (74) давай     | |||
| 76
    
        Красный рассвет 20.07.13✎ 21:02 | 
        (74) Номенклатура "Газ", код "0001"?     | |||
| 77
    
        Конфигуратор1с 20.07.13✎ 21:08 | 
        (76) ну ту сподручнее в константу если газ один, правда если у них газы то печаль     | |||
| 78
    
        Красный рассвет 20.07.13✎ 21:11 | 
        ну вот, девачка просто помощи хотела, а тут все такие злобные и еще какими-то константами пугают. Стыдно должно быть     | |||
| 79
    
        zak555 20.07.13✎ 21:11 | 
        на старомхарде =)     | |||
| 80
    
        NS 20.07.13✎ 22:28 | 
        (67) там есть константы, и если и искали - то никак не в этом случае.
  Зачем тут искать элемент? Тут реквизит в справочнике завести надо. А если без изменения - то просто сравнить код. | |||
| 81
    
        Конфигуратор1с 20.07.13✎ 23:04 | 
        (80) "там есть константы" - констант на все не хватит. Но я не о этом случае     | |||
| 82
    
        Lama12 21.07.13✎ 13:16 | 
        (0)Давай будем честными. Код в (0) вообще работает? Ну если не считать тормозов?     | |||
| 83
    
        Лиза777 21.07.13✎ 17:24 | 
        (82) работает, если не считать тормозов ))     | |||
| 84
    
        Лиза777 21.07.13✎ 17:29 | 
        (78) спасибо за поддержку!     | |||
| 85
    
        Torquader 21.07.13✎ 17:43 | 
        А не проще ли сляпать регистр сведений, где задать префиксы для подразделений ?     | |||
| 86
    
        1s_ivan 21.07.13✎ 17:46 | 
        Лиза777, когда нужно сделать связи между 2-мя справочниками, (спр-спр), или (спр-число) и прочие пользовательские соответствия, лучше всего подходят регистры сведений. При желании, можно сделать регистр сведений периодическими, и в нем будут вся история изменений.
  Например для вашей задачи: 1. Создайте регистр сведений «ПрефиксыПодразделенийОрганизаций» : 2 измерения («Организация»{спр.организаций.ссылка}, {«Подразделение» спр.подразделений.ссылка}): 1 ресурс («Префикс»{строка} ) 2. Получаете значение префикса по организации и подразделению (Не нужно объяснят как?) 3. НО обязательно проверяйте, если в регистре нет такой комбинации, тогда выполняется стандартный ДобавитьПрефиксУзла(Префикс); | |||
| 87
    
        Лиза777 21.07.13✎ 17:49 | 
        (86) ну да мне ваш вариант понятен, пока сделаю как в (26), завтра посмотрю как будет программа работать под нагрузкой     | |||
| 88
    
        Lama12 21.07.13✎ 18:43 | 
        (83) А мне кажется либо не весь код приведен, либо в случае организации с кодом "00003" префикс узла не добавится, т.к. в этой ветке условия нет ДобавитьПрефиксУзла(Префикс);     | |||
| 89
    
        1s_ivan 21.07.13✎ 21:38 | 
        (88) думаю ошибки нет, ведь смысл в том, чтобы менять значение переменной "Префикс".     | |||
| 90
    
        unkairosed 22.07.13✎ 02:21 | 
        Про борщ уже кто-то писал?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |