|   |   | 
| 
 | Заполнение доп. реквизитов через обработку Загрузка данных из ТД | ☑ | ||
|---|---|---|---|---|
| 0
    
        oqjawa 16.07.19✎ 14:47 | 
        Создал Доп реквизит с неограниченной длинной в справочнике номенклатура. 
 Загружаю в него значения с помощью обработки "загрузка данных из табличного документа" из экселя. Для Каждого ЭлементДопСвойства Из ДопСвойства Цикл ТекСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")", Ложь); ТекЗначение = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ТекстыЯчеек[ЭлементДопСвойства.Значение], Ложь); Если Не ЗначениеЗаполнено(ТекСвойство) Тогда Сообщить("Не удалось найти свойство: """ + ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")"""); Продолжить; КонецЕсли; Если Не ЗначениеЗаполнено(ТекЗначение) Тогда Сообщить("Создаем новое значение """ + ТекстыЯчеек[ЭлементДопСвойства.Значение] + """ для свойства """ + ТекСвойство + """"); НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = ТекСвойство; НовоеЗначение.Наименование = ТекстыЯчеек[ЭлементДопСвойства.Значение]; НовоеЗначение.Записать(); ТекЗначение = НовоеЗначение.Ссылка; КонецЕсли; МассивСтрок = Объект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ТекСвойство)); Если МассивСтрок.Количество() = 0 Тогда ДопРеквизит = Объект.ДополнительныеРеквизиты.Добавить(); Иначе ДопРеквизит = МассивСтрок[0]; КонецЕсли; ДопРеквизит.Свойство = ТекСвойство; ДопРеквизит.Значение = ТекЗначение; КонецЦикла; Объект.Записать(); записывается только около 100 символов, хотя длинна строки позволяет вместить больше текста.. Дело вовсе не в длине реквизита? | |||
| 1
    
        DmitriyDI 16.07.19✎ 15:24 | 
        (0) Если это реквизит с типом строка, зачем добавлять для него элемент в ЗначенияСвойствОбъектов, просто тогда было бы: 
 ДопРеквизит.Значение = ТекстыЯчеек[ЭлементДопСвойства.Значение]; а тут получается уже не Доп реквизит с неограниченной длинной , а элемент справочника, где наименование помещает только 100 символов. | |||
| 2
    
        oqjawa 16.07.19✎ 15:41 | 
        а как по другому сделать?     | |||
| 3
    
        oqjawa 16.07.19✎ 15:54 | 
        Вы правы длинна наименования действительно 100     | |||
| 4
    
        DmitriyDI 16.07.19✎ 15:56 | 
        (2) Сделать доп реквизит, тип Строка Неограниченная, 
 Это убрать: Если Не ЗначениеЗаполнено(ТекЗначение) Тогда Сообщить("Создаем новое значение """ + ТекстыЯчеек[ЭлементДопСвойства.Значение] + """ для свойства """ + ТекСвойство + """"); НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = ТекСвойство; НовоеЗначение.Наименование = ТекстыЯчеек[ЭлементДопСвойства.Значение]; НовоеЗначение.Записать(); ТекЗначение = НовоеЗначение.Ссылка; КонецЕсли; Тут сделать так: ДопРеквизит.Значение = ТекстыЯчеек[ЭлементДопСвойства.Значение]; | |||
| 5
    
        oqjawa 16.07.19✎ 16:02 | 
        переменная не определена (ДопРеквизит)     | |||
| 6
    
        DmitriyDI 16.07.19✎ 16:04 | 
        Для Каждого ЭлементДопСвойства Из ДопСвойства Цикл 
 ТекСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")", Ложь); Если Не ЗначениеЗаполнено(ТекСвойство) Тогда Сообщить("Не удалось найти свойство: """ + ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")"""); Продолжить; КонецЕсли; МассивСтрок = Объект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ТекСвойство)); Если МассивСтрок.Количество() = 0 Тогда ДопРеквизит = Объект.ДополнительныеРеквизиты.Добавить(); Иначе ДопРеквизит = МассивСтрок[0]; КонецЕсли; ДопРеквизит.Свойство = ТекСвойство; ДопРеквизит.Значение = ТекстыЯчеек[ЭлементДопСвойства.Значение]; КонецЦикла; Объект.Записать(); | |||
| 7
    
        oqjawa 16.07.19✎ 16:23 | 
        не удалось найти свойство.. и так для каждого доп реквизита     | |||
| 8
    
        oqjawa 16.07.19✎ 16:25 | 
        странно если я вот тут:
 Если Не ЗначениеЗаполнено(ТекЗначение) Тогда Сообщить("Создаем новое значение """ + ТекстыЯчеек[ЭлементДопСвойства.Значение] + """ для свойства """ + ТекСвойство + """"); НовоеЗначение = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент(); НовоеЗначение.Владелец = ТекСвойство; НовоеЗначение.ПолноеНаименование = ТекстыЯчеек[ЭлементДопСвойства.Значение]; НовоеЗначение.Записать(); ТекЗначение = НовоеЗначение.Ссылка.ПолноеНаименование; КонецЕсли; он выводит немного больше текста но не весь.. хотя у реквизита Справочники.ЗначенияСвойствОбъектов.ПолноеНаименование длинна не ограничена | |||
| 9
    
        DmitriyDI 16.07.19✎ 16:27 | 
        (8) странно, что при том же коде он находит свойство), вот это странно)     | |||
| 10
    
        oqjawa 16.07.19✎ 16:29 | 
        нет нет) я ваш код вставлял когда он на свойства ругался
 Для Каждого ЭлементДопСвойства Из ДопСвойства Цикл ТекСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")", Ложь); Если Не ЗначениеЗаполнено(ТекСвойство) Тогда Сообщить("Не удалось найти свойство: """ + ЭлементДопСвойства.Ключ + " (" + Объект.ВидНоменклатуры + ")"""); Продолжить; КонецЕсли; МассивСтрок = Объект.ДополнительныеРеквизиты.НайтиСтроки(Новый Структура("Свойство", ТекСвойство)); Если МассивСтрок.Количество() = 0 Тогда ДопРеквизит = Объект.ДополнительныеРеквизиты.Добавить(); Иначе ДопРеквизит = МассивСтрок[0]; КонецЕсли; ДопРеквизит.Свойство = ТекСвойство; ДопРеквизит.Значение = ТекстыЯчеек[ЭлементДопСвойства.Значение]; КонецЦикла; Объект.Записать(); | |||
| 11
    
        DmitriyDI 16.07.19✎ 16:31 | 
        (10) Видимо не туда вставил или не так, потому что мой код в плане поиска свойства ничем не отличается от указанного в шапке.     | |||
| 12
    
        oqjawa 16.07.19✎ 16:40 | 
        Действительно, не туда вставил.. зато теперь выводит 1024 символа.. это и есть неограниченная длинна?     | |||
| 13
    
        hhhh 16.07.19✎ 16:55 | 
        (12) ну так в конфе задано для ДопРеквизит.Значение. там ни фига не неограниченное.     | |||
| 14
    
        oqjawa 16.07.19✎ 16:59 | 
        (13)странно, а руками спокойно позволяет вбить хоть больше 1024     | |||
| 15
    
        oqjawa 16.07.19✎ 17:10 | 
        ладно странно что он руками позволяет вбить больше 1024 при неограниченной длине когда не загружает больше 1024 символов..
 но когда я ставлю ограничение 1024 и пытаюсь руками написать больше.. тоже даёт мне это сделать | |||
| 16
    
        DmitriyDI 16.07.19✎ 17:18 | 
        (15) Надо попробовать сохранить больше чем 1024 и посмотреть в регистре ДополнительныеСведения как это выглядит и вообще сохранит ли он это значение?     | |||
| 17
    
        hhhh 16.07.19✎ 17:22 | 
        (16) всёж таки он не в регистр пишет, а в тч допреквизиты.     | |||
| 18
    
        oqjawa 16.07.19✎ 17:23 | 
        регистр пустой     | |||
| 19
    
        oqjawa 16.07.19✎ 17:23 | 
        ни одной записи     | |||
| 20
    
        hhhh 16.07.19✎ 17:24 | 
        (19) прикалываешься? тч дополнительные реквизиты, какой нахрен регистр?     | |||
| 21
    
        trooba 16.07.19✎ 17:30 | 
        (20) Он путает доп свойства с доп реквизитами, а они действительно в разных местах     | |||
| 22
    
        oqjawa 16.07.19✎ 17:33 | 
        (21) и в чем прикол?     | |||
| 23
    
        oqjawa 16.07.19✎ 17:34 | 
        (22) это может быть как то связано с тем что я немогу загрузить больше 1024 символов?     | |||
| 24
    
        oqjawa 16.07.19✎ 17:35 | 
        я сейчас серьёзно, не стебу, не язвлю скорее всего реально запутался     | |||
| 25
    
        trooba 16.07.19✎ 17:36 | 
        (23) Это связано с тем, что доп реквизиты в табличной части объекта расположены, а доп свойства в регистре.     | |||
| 26
    
        oqjawa 16.07.19✎ 17:39 | 
        ну мне же регистр и нафиг не нужен     | |||
| 27
    
        hhhh 16.07.19✎ 17:43 | 
        они просто издеваются, у них везде 1024. Номенклатура полное наименование 1024, описание тоже 1024. вот такая вот БСП.     | |||
| 28
    
        DmitriyDI 16.07.19✎ 18:25 | 
        (18) да, в тч надо смотреть на запись) сохраняется больше 1024?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |