|
Как Ссылочному присвоить значение типа Строка | ☑ | ||
---|---|---|---|---|
0
Dimon8822
06.04.22
✎
15:40
|
Добрый день!
Подскажите, пожалуйста, как Реквизиту справочника (Тип СправочникСылка.Справочник) присвоить значение элемента массива (Тип Строка). Не могу с Типами разобраться. Спасибо заранее. |
|||
1
vicof
06.04.22
✎
15:42
|
Никак
|
|||
2
Dimon8822
06.04.22
✎
15:56
|
Как переделать строку?
Для ИндексЭлементаМассива = 0 ПО Массив.ВГраница() Цикл НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент() ; ? НовыйОбъект.ВариантОбъект = Массив[ИндексЭлементаМассива] ; НовыйОбъект.Записать(); КонецЦикла; |
|||
3
Ненавижу 1С
гуру
06.04.22
✎
15:57
|
можно более обще? откуда входные данные, что хотим получить?
|
|||
4
Kassern
06.04.22
✎
16:00
|
(2) (3) Включаю режим Ванги! ТС имеет список (возможно эксельку) с перечнем наименований товаров и хочет их загрузить в 1ску. Но там ведь тип строка, а в 1с, это ведь справочник)
Вот и пытается ТС создать на каждую строчку из внешнего списка новую номенклатуру, только он не учитывает, что у объекта номенклатуры, помимо наименования, могут быть множество свойств, причем обязательных, если речь о типовой конфе |
|||
5
Dimon8822
06.04.22
✎
16:03
|
На входе массив
НА основании массива МАССИВ создать новые элементы справочника НОМЕНКЛАТУРА |
|||
6
VladZ
06.04.22
✎
16:03
|
(5) Скачай готовое решение.
|
|||
7
Kassern
06.04.22
✎
16:05
|
(5) конфигурация какая?
|
|||
8
Dimon8822
06.04.22
✎
16:07
|
Учебная
|
|||
9
Kassern
06.04.22
✎
16:08
|
(8) а вы без массива входящих данных можете создать номенклатуру программно?
|
|||
10
Dimon8822
06.04.22
✎
16:10
|
Конечно. (2) - одна из попыток
|
|||
11
Kassern
06.04.22
✎
16:15
|
(10) а где вы наименование указываете для номенклатуры? А что за поле "ВариантОбъект" у номенклатуры?
|
|||
12
Dimon8822
06.04.22
✎
16:21
|
Создаю элемент справочника Номенклатура:
НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент() ; Реквизиту ВариантОбъект элемента справочника Номенклатура пытаюсь передать значение элемента Массива НовыйОбъект.ВариантОбъект = Массив[ИндексЭлементаМассива] ; Сохранить новый элемент НовыйОбъект.Записать(); |
|||
13
Kassern
06.04.22
✎
16:25
|
(12) я понимаю, что вы пытаетесь сделать, но вы не ответили на мой вопрос. Еще раз, где у вас заполнение наименования для номенклатуры? Это стандартный реквизит справочника наряду с кодом.
Так же я вас спросил что это за реквизит ВариантОбъект у номенклатуры. Имеется в виду, какого он типа и для чего |
|||
14
Ненавижу 1С
гуру
06.04.22
✎
16:26
|
(12) зачем нужен ВариантОбъект?
|
|||
15
Dimon8822
06.04.22
✎
16:32
|
Код присваивается автоматически
Наименование Номенклатуры присваивается програмно реквизит ВариантОбъект у номенклатуры дб Типа Строка Но НовыйОбъект.ВариантОбъект - Тип СправочникСылка и именно в реквизит Новый Вариант надо передать значение элемента Массива (Тип Строка) |
|||
16
Asmody
06.04.22
✎
16:35
|
можно увидеть нормальную постановку задачи, а не то, как вы пытаетесь её решить?
|
|||
17
hhhh
06.04.22
✎
18:19
|
(15) НовыйОбъект.ВариантОбъект = Справочники.ВариантоОбъекты.НайтиПоНаименованию(Массив[ИндексЭлементаМассива]);
|
|||
18
Trier
06.04.22
✎
18:24
|
Капец вы все токсичные, конечно. Перечитал тему - со второго сообщения было понятно, что ТС хочет.
А потом говорят, нет новичков в 1С |
|||
19
VladZ
06.04.22
✎
19:08
|
(18) А я до конца дочитал - и ничего не понял.
|
|||
20
VladZ
06.04.22
✎
19:09
|
+19 Правильно заданный вопрос содержит половину ответа.
|
|||
21
lubitelxml
06.04.22
✎
19:23
|
+(17)
НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент() ; Выборка = Справочники.ВариантоОбъекты.НайтиПоНаименованию(Массив[ИндексЭлементаМассива]); Если выборка.Следующий() Тогда НовыйОбъект.ВариантОбъект = Выборка; Иначе спрНовыйОбъект = Справочники.ВариантоОбъекты.СоздатьЭлемент(); спрНовыйОбъект.Наименование = Массив[ИндексЭлементаМассива]; спрНовыйОбъект.Записать(); НовыйОбъект.ВариантОбъект = спрНовыйОбъект.Ссылка; КонецЕсли; НовыйОбъект.Записать(); |
|||
22
lubitelxml
06.04.22
✎
19:24
|
Писал на коленке, возможно где-то ошибся. Суть в следующем - элемент справочника ВариантоОбъекты, если нашли - заполняем реквизит Номенклатуры, если не нашли - создаем новый с твоим наименованием из массива и его заполняем в номенклатуру
|
|||
23
Ёпрст
06.04.22
✎
20:59
|
(21)
>>>Если выборка.Следующий() //вот это бред (не Пит) |
|||
24
lubitelxml
07.04.22
✎
12:33
|
(23) я ж говорю на коленке писал, сам найти по наименованию никогда не использую, поэтому мог ошибится
|
|||
25
Aleksandr N
07.04.22
✎
12:38
|
(24) НайтиПоНаименованию дает ссылку, а не выборку. Поэтому и бред.
|
|||
26
Said_We
07.04.22
✎
13:51
|
Зачем поиск по наименованию?
Загнать всё в запрос и найти сразу для всех. Где не нашлось, там и создавать. |
|||
27
Dimon8822
07.04.22
✎
14:24
|
(18) Спасибо
|
|||
28
Said_We
07.04.22
✎
15:03
|
Собственно предварительно ТЗ создать:
выбрать т.Наименование из Справочник.Номенклатура как т где ложь Заполнить загрузкой значений из массива в ТЗ. выбрать т.Наименование как Наименование Поместить ВТ_Наименования из &ТЗ как т; выбрать т1.Наименование из ВТ_Наименования как т1 Левое соединение Справочник.Номенклатура как т2 по т1.Наименование = т2.Наименование Где т2.Наименование есть null Результатом запроса будут только те наименование, которые не нашлись и их надо создавать. Обход результата запроса и создание. Писал на коленке, поэтому проверяйте исправляйте... |
|||
29
hhhh
07.04.22
✎
15:37
|
(28) тс лучше такое не читать. Ему для начала что-то попроще надо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |