Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> программное заполнение ссылки на вновь созданную характеристику номенклатуры ERP управляемые формы 8.3 3 страниц V   1 2 3 >          
svetas_l Подменю пользователя
сообщение 09.03.20, 12:46
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый день!
создаю новую характеристику номенклатуры ERP управляемые формы 8.3
&НаСервере

Функция СоздатьХарактеристику(Номенклатура,Цвет)
    // ХарактеристикиНоменклатуры
  Запрос = Новый Запрос;
  Запрос.Текст = "
|ВЫБРАТЬ
|    ХарактеристикиНоменклатуры.Ссылка КАК Характеристика,
|    ХарактеристикиНоменклатуры.НомерСтроки,
|    ХарактеристикиНоменклатуры.Свойство,
|    ХарактеристикиНоменклатуры.Значение,
|    ХарактеристикиНоменклатуры.ТекстоваяСтрока,
|    ХарактеристикиНоменклатуры.Ссылка КАК Ссылка1,
|    ХарактеристикиНоменклатуры.Ссылка.Владелец,
|    ХарактеристикиНоменклатуры.Ссылка.Принципал,
|    ХарактеристикиНоменклатуры.Ссылка.Контрагент,
|    ХарактеристикиНоменклатуры.Ссылка.Предопределенный,
|    ХарактеристикиНоменклатуры.Ссылка.ИмяПредопределенныхДанных,
|    ХарактеристикиНоменклатуры.Ссылка.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных1,
|    ХарактеристикиНоменклатуры.Свойство.ТипЗначения,
|    Номенклатура.Ссылка КАК Ссылка2,
|    Номенклатура.Наименование
|    ИЗ
|    Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатуры
|        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
|        ПО ХарактеристикиНоменклатуры.Ссылка.Владелец = Номенклатура.Ссылка
|        ЛЕВОЕ СОЕДИНЕНИЕ ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения КАК ДополнительныеРеквизитыИСведения
|        ПО ХарактеристикиНоменклатуры.Свойство = ДополнительныеРеквизитыИСведения.Ссылка
|ГДЕ
|      Номенклатура.Наименование = &Номенклатура_

|    И ДополнительныеРеквизитыИСведения.Наименование = ""Цвет (Мотоциклы (Для характеристик))""
|    И ХарактеристикиНоменклатуры.Значение ПОДОБНО &Цвет_
|";

Запрос.УстановитьПараметр("Номенклатура_",    Номенклатура);
Запрос.УстановитьПараметр("Цвет_",    Цвет);
РезультатЗапроса = Запрос.Выполнить().Выбрать();

Если РезультатЗапроса.Количество()=0   Тогда
    
     GUID=Новый УникальныйИдентификатор();
     СоздадимХарактеристикуСсылка=  Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(GUID);
     СоздадимХарактеристику = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
     СоздадимХарактеристику.УстановитьНовыйКод();
     СоздадимХарактеристику.Владелец =Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
            
     НовоеСвойство3 =СоздадимХарактеристику.ДополнительныеРеквизиты.Добавить();  
      НовоеСвойство3.Свойство = "Цвет (Мотоциклы (Для характеристик))";
     НовоеСвойство3.Значение = СокрЛП(Строка(Цвет));
     НовоеСвойство3.ТекстоваяСтрока = СокрЛП(Строка(Цвет));
    
     СоздадимХарактеристику.НаименованиеПолное  =Строка(НовоеСвойство3.Значение);
     СоздадимХарактеристику.Наименование =  Строка(НовоеСвойство3.Значение);
      СсылкаНового=Справочники[СоздадимХарактеристику.ЭтотОбъект.Метаданные().Имя].ПолучитьСсылку();
     СоздадимХарактеристику.УстановитьСсылкуНового(СоздадимХарактеристикуСсылка);    

    Попытка
     СоздадимХарактеристику.Записать();
     Исключение
     Сообщить("Не удалось записать элемент справочника. " + ОписаниеОшибки());
    КонецПопытки;  
    
      Возврат СоздадимХарактеристику;
Иначе
    
    Пока РезультатЗапроса.Следующий() Цикл
      Характеристика = РезультатЗапроса.Характеристика;
    КонецЦикла;
  Возврат  Характеристика;
КонецЕсли;

КонецФункции



но ссылка не заполняется


а нужно на выходе из функции передать именно ссылку.
Помогите, пожалуйста.

Сообщение отредактировал Vofka - 10.03.20, 9:46

nik389 Подменю пользователя
сообщение 09.03.20, 22:08
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 153
Из: Украина
Спасибо сказали: 37 раз
Рейтинг: 34

svetas_l @ Сегодня, 12:46 * ,
зачем вам в запросе полное соединение? по контексту вашей задачи оно здесь вообще не нужно, сделали бы сразу выборку по номенклатуре, а потом отбор характеристик по ней

вот это зачем?
GUID=Новый УникальныйИдентификатор();
     СоздадимХарактеристикуСсылка=  Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(GUID);


и вот это?
 СсылкаНового=Справочники[СоздадимХарактеристику.ЭтотОбъект.Метаданные().Имя].ПолучитьСсылку();
     СоздадимХарактеристику.УстановитьСсылкуНового(СоздадимХарактеристикуСсылка);


все гораздо проще, если запись успешна, то
 Возврат СоздадимХарактеристику.Ссылка

если нет, то
Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()


и вот этот код:
СоздадимХарактеристику.Владелец =Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура);
, вы точно уверены, что номенклатура будет найдена?

svetas_l Подменю пользователя
сообщение 10.03.20, 10:35
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

номенклатура или ищется или создаётся другой функцией, цель данной функции такая же либо найти либо создать новую характеристику, и передать ссылку на вновь созданную характеристику, непосредственно при заполнении в таблицу значений которая загружается в табличную часть документа "Поступление Товаров Услуг".
Вопрос был "как записать ссылку на вновь созданную характеристику". Пожалуйста, давайте, не отклоняться от темы вопроса.
Номенклатура создаётся, и заполняется в таблицу значений, и выгружается в документ,
так же создаются и выгружаются составные серийные номера (имеющие 5 дополнительных характеристик),
а характеристики не полностью выгружаются в документ, точнее после их создания функцией передаётся пустая ссылка на вновь созданную характеристику, в результате она не записывается в таблицу значений и не выгружается в табличную часть документа..
Нужно сделать так что бы ссылка заполнялась на вновь созданный документ.

pablo Подменю пользователя
сообщение 10.03.20, 11:24
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Вам уже написали, правильный ответ. Вы возвращаете значение типа СправочникОбъект, а должны - СправочникСсылка.
Правильно писать -
СоздадимХарактеристику.Ссылка


Signature
Правильно поставленный вопрос содержит до 90% ответа.

nik389 Подменю пользователя
сообщение 10.03.20, 11:25
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 153
Из: Украина
Спасибо сказали: 37 раз
Рейтинг: 34

Цитата
номенклатура или ищется или создаётся другой функцией

если номенклатура уже найдена, зачем же вы ее опять в этой функции ищете?

Цитата
Нужно сделать так что бы ссылка заполнялась на вновь созданный документ.

я же вам написал как должно быть:
если запись успешна, то
Возврат СоздадимХарактеристику.Ссылка


если нет, то
Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()

svetas_l Подменю пользователя
сообщение 10.03.20, 12:21
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

nik389 @ Сегодня, 11:25 * ,
СоздадимХарактеристику.Ссылка = видно в отладчике ссылка=пустая, а объект создаётся, а нужно заполненную ссылку передать в любом случае

еще раз вопрос был по названию темы - как при создании объекта -передать заполненную ссылку, а не пустую. В отладчике видно - объект создаётся, но ссылка на него пустая, а не заполненная.....
ВОПРОС - передать не пустую ссылку, чтобы потом вставить напрямую в документ

Вопрос был "как записать ссылку на вновь созданную характеристику, но так чтобы она не была пустой!!!!".

pablo - вы правы, только теперь осталось ответить по теме вопроса "как записать ссылку на вновь созданную характеристику, но так чтобы она не была пустой!!!!""

nik389 - понимаете "как записать ссылку на вновь созданную характеристику, но так чтобы она не была пустой!!!!"" , а вы опять пишите - пустую ссылку (Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка()), картинка из отладчика приложена была..
только теперь осталось ответить по теме вопроса "как записать ссылку на вновь созданную характеристику, но так чтобы она не была пустой!!!!""

nik389 Подменю пользователя
сообщение 10.03.20, 12:34
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 153
Из: Украина
Спасибо сказали: 37 раз
Рейтинг: 34

svetas_l @ Сегодня, 12:21 * ,
ссылка появится после записи объекта. Судя по скрину отладки, у вас еще запись объекта не произошла

svetas_l Подменю пользователя
сообщение 10.03.20, 12:40
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka- вы такой круой всем всегда отвечаете, может быть мне ответите "как записать ссылку на вновь созданную характеристику, но так чтобы она не была пустой!!!!"" "


nik389 в исключение не вылетает , значит по идеи произошла....
    Попытка 
     СоздадимХарактеристику.Записать();
     Исключение
     Сообщить("Не удалось записать элемент справочника. " + ОписаниеОшибки());
    КонецПопытки;

но все равно ссылка пустая

svetas_l @ Сегодня, 12:37 * ,
может с настройками что-то?

sava1 Подменю пользователя
сообщение 10.03.20, 13:13
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(svetas_l @ 10.03.20, 12:40) *
Попытка
СоздадимХарактеристику.Записать();
СсылкаНаХар = СоздадимХарактеристику.Ссылка;
Исключение
Сообщить("Не удалось записать элемент справочника. " + ОписаниеОшибки());
КонецПопытки;


nik389 Подменю пользователя
сообщение 10.03.20, 13:37
Сообщение #10

Завсегдатай
****
Группа: Пользователи
Сообщений: 153
Из: Украина
Спасибо сказали: 37 раз
Рейтинг: 34

Цитата(svetas_l @ 10.03.20, 12:40) *
в исключение не вылетает

уберите временно попытку исключение да и проверьте, чего гадать..

sava1 Подменю пользователя
сообщение 10.03.20, 13:40
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(nik389 @ 10.03.20, 13:37) *
уберите временно попытку исключение да и проверьте, чего гадать..

А ПВХ открыть уже трудно ?

Vofka Подменю пользователя
сообщение 10.03.20, 14:11
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата(svetas_l @ 10.03.20, 12:40) *
Vofka- вы такой круой

Продолжайте, мне нравится... diablo.gif
Я все не перечитывал, поэтому не знаю поможет ли мой совет. Мне кажется, что проблема в том, что вы смотрите ссылку ДО записи объекта в базу. Конечно она будет пустая. Смотрите ссылку после кода
Попытка 
    СоздадимХарактеристику.Записать();
Исключение
    Сообщить("Не удалось записать элемент справочника. " + ОписаниеОшибки());
КонецПопытки;

И не совсем понятно зачем вы тут вообще с установкой ссылки вручную играетесь. Просто после записи сделайте

Возврат СоздадимХарактеристику.Ссылка;


Сообщение отредактировал Vofka - 10.03.20, 14:12

svetas_l Подменю пользователя
сообщение 10.03.20, 15:34
Сообщение #13

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

не получается объект создаётся, но с пустой ссылкой, и в документ не передаётся....по Олбъект.ссылка, поэтому и поставила Объект, чобы проверить есть ли что-то живое вообще, живое есть, но ссылка пустая

sava1 Подменю пользователя
сообщение 10.03.20, 15:36
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Цитата(svetas_l @ 10.03.20, 15:34) *
объект создаётся, но с пустой ссылкой


такого не бывает

svetas_l Подменю пользователя
сообщение 10.03.20, 15:39
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

я б не писала на форму, если бы всё так легко было Возврат СоздадимХарактеристику.Ссылка, я убрала СоздадимХарактеристику.Ссылка, поскольку объект создаётся а ссылка пустая

svetas_l Подменю пользователя
сообщение 10.03.20, 22:53
Сообщение #16

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

svetas_l @ Сегодня, 15:39 * ,
да вылетает функция
наверное неправильно заполняю доп реквизиты
ошибка где-то тут
НовоеСвойство3 =СоздадимХарактеристику.ДополнительныеРеквизиты.Добавить();  
      НовоеСвойство3.Свойство = "Цвет (Мотоциклы (Для характеристик))";
     НовоеСвойство3.Значение = СокрЛП(Строка(Цвет));
     НовоеСвойство3.ТекстоваяСтрока = СокрЛП(Строка(Цвет));

Вот бы хоть кто-то существенное что-нибудь сказал 05071.gif

svetas_l Подменю пользователя
сообщение 11.03.20, 19:13
Сообщение #17

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka помогите, пожалуйста

sava1 Подменю пользователя
сообщение 11.03.20, 19:19
Сообщение #18

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

для начала сделаете все это вручную - определитесь что Вы делаете, а потом переходите на программирование.

svetas_l Подменю пользователя
сообщение 11.03.20, 20:09
Сообщение #19

Говорящий
***
Группа: Пользователи
Сообщений: 68
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 19:19 * ,
вообще не поняла, как вы себе это представляете - ошибку в создании доп реквизитов искать в ручную? затем переходя на программирование? вы кайф ловите?

svetas_l @ Сегодня, 19:54 * ,
я делаю функцию создания характеристик Функция СоздатьХарактеристику(Номенклатура,Цвет), она их как выяснилось не создаёт а вылетает
Что тут искать в ручную?

Господи 3 день торчу на этом форуме, а кроме бреда никто ничего не написал....

sava1 Подменю пользователя
сообщение 11.03.20, 22:37
Сообщение #20

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Вы связь обьектов себе представляете? Или опишите задачу и попросите код или задайте конкретный вопрос, а не огрызками.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


3 страниц V   1 2 3 >
Ответить Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 15:09
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!