|
Добавление Реквизитов программно | ☑ | ||
---|---|---|---|---|
0
Hammond
09.10.20
✎
18:32
|
Добрый Вечер, товарищи знатоки.
Мне нужно из таблицы ексель выгрузить данные в справочник номенклатура. для этого нужно считать шапку в экселе и проверить, есть ли такие реквизиты в справочнике. Если каких-то нет, то их нужно создать программно. Использую такой код: Если НЕ ЕстьРеквизитДокумента(ИмяБезПробелов, Метаданные.Справочники.Номенклатура, "Артикул") Тогда Сообщить("Не найден реквизит с именем " + ИмяБезПробелов + "! Колонка не будет загружена!"); ДобавляемыеРеквизиты = Новый Массив; МассивТипов = новый Массив; МассивТипов.Добавить(Тип("Строка")); Реквизит = Новый РеквизитФормы(ИмяБезПробелов,новый ОписаниеТипов(МассивТипов),, ИмяБезПробелов, Истина); ДобавляемыеРеквизиты.Добавить(Реквизит); ИзменитьРеквизиты(ДобавляемыеРеквизиты); Сообщить("Реквизит" + ИмяБезПробелов + "создан"); Иначе НовСтрока = МассивКолонок.Добавить(); НовСтрока.НомерКолонки = КолонкаОтсчета; НовСтрока.НазваниеКолонки = ИмяБезПробелов; КонецЕсли; Появляется ошибка "Недопустимое значение параметра(параметр номер 1)" пытался менять ИмяБезПробелов на любое выражение в "" (например, "авыпвапаы"). в таком случае писало, что не уникальный реквизит. Как быть? |
|||
1
ДенисЧ
09.10.20
✎
18:35
|
Вставь
Сообщить(ИмяБезПробелов) и посмотри, что там |
|||
2
Hammond
09.10.20
✎
18:37
|
Там хранится имя колонки из экселя
|
|||
3
ДенисЧ
09.10.20
✎
18:40
|
Я сказал "посмотри", а не "расскажи, что там, по твоему мнению, находится"
|
|||
4
Hammond
09.10.20
✎
18:43
|
Дружище, у меня же в коде строка написана
Сообщить("Реквизит" + ИмяБезПробелов + "создан"); он после того, как ошибку закрываю, в сообщениях пишется: Не найден реквизит с именем Группа! Колонка не будет загружена! РеквизитГруппасоздан Не найден реквизит с именем Цена,руб.! Колонка не будет загружена! но на всякий случай написал сообщить(ИмяБезПробелов) выдало "Группа", это первая не найденная колонка из экселя в реквизитах |
|||
5
Йохохо
09.10.20
✎
18:49
|
(4) "Реквизит" + ИмяБезПробелов - тут у тебя приведение типа к строке
|
|||
6
Hammond
09.10.20
✎
18:53
|
не совсем понимаю
я же тут просто сообщение на экран вывожу а ИмяБезПробелов и так тип строка |
|||
7
ДенисЧ
09.10.20
✎
19:11
|
"Цена,руб."
Точно неправильное имя колонки |
|||
8
Hammond
09.10.20
✎
19:18
|
в таблице экселя колонка имеет именно такое название
|
|||
9
ДенисЧ
09.10.20
✎
19:20
|
(8) Что написано в екселе - 1с не волнует. Имя колонки не может содержать запятых, точек и прочих экскрементов. И не начинаться с цифры тоже должн
|
|||
10
Hammond
09.10.20
✎
19:22
|
Тогда как быть в таком случае?
и что делать с реквизитом группа? |
|||
11
ДенисЧ
09.10.20
✎
19:25
|
С группой без картинок я не понял.
А с запятыми - менять их на какой-то символ. Например, на "_" |
|||
12
Hammond
09.10.20
✎
19:31
|
Давай попробую подробнее описать
я считываю шапку таблицы эксель, потом проверяю наличие реквизитов в справочнике с таким же именем. в шапке Экселя есть такие столбцы как Артикул, Группа, Наименование, Производитель, Единица Измерения, Цена, руб., Изображение. Код, который я указал в начале, выполняется, и выдает, что группа, цена,руб не найдены. мне нужно создать эти реквизиты в справочнике, но столкнулся с ошибкой, описанной выше |
|||
13
ДенисЧ
09.10.20
✎
19:34
|
В справочнике? Создать метаданные? Программно?
https://www.youtube.com/watch?v=MNaOqWLlWsQ |
|||
14
Hammond
09.10.20
✎
19:36
|
ну именно это мне и нужно сделать
|
|||
15
hhhh
09.10.20
✎
20:23
|
(14) создать реквизит Цена,руб. у вас точно не получится. Потому что запятые и точки в имени реквизита не разрешаются.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |