![]() |
![]() |
![]() |
|
КД 2.1 обрез строки | ☑ | ||
---|---|---|---|---|
0
Начинающий гуру
11.07.25
✎
15:17
|
В ПКО в событии при выгрузке пишу
Если СТРДлина(Источник.Код) > 9 Тогда Источник.Код = Лев(Источник.Код,9); КонецЕсли; У меня в базе приёмника код имеет 9 строк и я хочу обрезать в источнике эту строку, как сделать? |
|||
1
Волшебник
11.07.25
✎
15:20
|
а зачем здесь условие?
|
|||
2
Начинающий гуру
11.07.25
✎
15:21
|
(1) у некоторых код 6 символов
|
|||
3
Начинающий гуру
11.07.25
✎
15:26
|
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1694)}: Ошибка в обработчике события ПередВыгрузкой (свойства)
ПКО = СтатьиЗатрат (Справочник: Статьи затрат) ПКС = 2 (Код --> Код) Объект = 20 Расходы, связанные с режимом работы, с условиями труда (в том числе надбавки) (Статья затрат) СвойствоПриемника = Код (Строка) Обработчик = ПередВыгрузкойСвойства ОписаниеОшибки = Поле объекта недоступно для записи (Код) ПозицияМодуля = <Неизвестный модуль>(3) КодСообщения = 55 |
|||
4
timurhv
11.07.25
✎
15:27
|
(0) Мир окончательно сошел сума:
у некоторых код 6 символов ... У меня в базе приёмника код имеет 9 строк СтроковыеФункцииКлиентСервер.ДополнитьСтроку Или Лев("000000000" + Источник.Код, 9) |
|||
5
timurhv
11.07.25
✎
15:28
|
(3) ошибка верная, не трогайте источник
|
|||
6
timurhv
11.07.25
✎
15:32
|
(3) Справку в пользовательском режиме КД 2.1 нажмите, там она толково сделана и сразу видно все параметры.
|
|||
7
maxar
11.07.25
✎
15:38
|
(0) - а зачем менять код источника
Значение = ЛЕВ(... |
|||
8
СвинТуз
11.07.25
✎
15:42
|
В ПКС (Код)
Значение = Лев(Значение,9); Туплю наверняка, но КД не под рукой |
|||
9
takefive
11.07.25
✎
15:44
|
В ПКС пишите Значение =
И не Лев а Прав... |
|||
10
СвинТуз
11.07.25
✎
15:44
|
Если СтрДлина(Значение) > 9 Тогда
Значение = Лев(Значение,9); КонецЕсли; |
|||
11
timurhv
11.07.25
✎
15:46
|
(9) верно подметили! Чет повелся на Лев)
|
|||
12
СвинТуз
11.07.25
✎
15:47
|
Формат(, "ЧЦ=9; ЧДЦ=0; ЧВН=");
|
|||
13
Начинающий гуру
11.07.25
✎
15:49
|
(4) Получается в источнике код имеет всегда длину 15, а в приёмнике 9,получается он никогда не найдёт код анологичный, а при создании будет сокращать и выдавать ошибку,что не уникальный код,тогда как поступить?
|
|||
14
СвинТуз
11.07.25
✎
15:50
|
(4)
" код имеет 9 строк" Точно? |
|||
15
Климов Сергей
11.07.25
✎
15:52
|
(13) Если по факту значимая часть кода умещается в 9 символов, то всё сопоставится. В противном случае придётся отказаться от синхронизации по коду.
А сколько элементов в справочнике? Неужели больше 999 999 999 штук? |
|||
16
СвинТуз
11.07.25
✎
15:52
|
(13)
Дополнительное поле для поиска "КодВСтаройБазе" Ищет сначала по ссылке. |
|||
17
СвинТуз
11.07.25
✎
15:53
|
И если не найдет уже по полям поиска.
Хотя как настроено конечно. |
|||
18
Начинающий гуру
11.07.25
✎
15:53
|
(15) Справочник.СтатьиЗатрат и прочиедоходыирасходы
|
|||
19
timurhv
11.07.25
✎
15:54
|
(13) тогда не переносите код, поставьте галочку автонумерации или как-то так у ПКО.
Искать по ссылкам в правилах или по другим полям, какие укажете. |
|||
20
DiMel_77
11.07.25
✎
15:54
|
(0) ПКС, свойство "
Автоматически приводить значение к длине приемника" Автоматически приводить значение к длине приемника - флаг, позволяет включить автоматическое приведение Номера или Кода справочника соответствующему значению в приемнике по длине. При этом префиксы сохраняются, а числовые части преобразуются под длину поля в приемнике. |
|||
21
Климов Сергей
11.07.25
✎
15:56
|
(18) Неважно, какой справочник. Строк в нём сколько?
|
|||
22
Начинающий гуру
11.07.25
✎
15:58
|
(20) он приводит 15 к 9 и выдаёт ошибка,что код не уникален и не происходит загрузка объекта.Но он никогда не найдёт наименование другое и код сравнивается 15 с 9.
|
|||
23
Начинающий гуру
11.07.25
✎
20:06
|
Там не строк, а длина,перепутал
|
|||
24
maxar
11.07.25
✎
16:45
|
(18) перенос кода убрать, поставить автогенерацию кода в приемнике, и переносите поиском по наименованию + еще какие-то поля если они нужны , тогда ваши задвоенные по наименованию статьи сольются в одну - что даже лучше
|
|||
25
craxx
11.07.25
✎
22:13
|
(0)
Если СТРДлина(Источник.Код) > 9 Тогда Значение = Лев(Источник.Код,9); Иначе Значение = Источник.Код; КонецЕсли; |
|||
26
Волшебник
11.07.25
✎
22:20
|
(25) Зачем здесь условие? я повторяю (1)
см (9) |
|||
27
craxx
11.07.25
✎
22:24
|
(26) Согласен. Тупанул к вечеру.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |