8.3 УТ11 внешняя обработка модуль объекта
Здравствуйте, это обработка для загрузки данных из таблицы xlsx и создания новой номенклатуры, очень долго не могу понять почему не работает загрузка картинки для номенклатуры через отладку выяснил что ошибка связана с КартинкаОбъект.Записать(); Написано что Тип значения должен быть СправочникСссылка.Номенклатура ,.
Через табло в значении владелец файла, там просто пусто , я думаю ошибка здесь в КартинкаОбъект.Владелец = Товар.Ссылка; потому что у Товар (Товар = Справочники.Номенклатура.СоздатьЭлемент();) У справочника номенклатуры владельца нет, в сам справочник добавить владельца, Вопрос как можно все таки провести КартинкаОбьект и как назначить владельца , Так же пытался добавить Товар.Владелец = Справочник.Номеклатура или Пользователи.ТекущийПользователь не работает .Мне просто нужно создать новую номенклатуру с картинкой по URL .3 дня ищу ответ, я знаю что уже были подобные ситуации ,но я перепробывал все способы на форуме внедрения картинок.

```1c
    КартинкаСсылка = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    Если Не Excel.Cells(НомерСтроки, 7).Text = Неопределено или не Excel.Cells(НомерСтроки, 7).Text = " Тогда
    Если КартинкаСсылка.Пустая() Тогда
    КартинкаСсылка = Справочники.НоменклатураПрисоединенныеФайлы.НайтиПоНаименованию(Товар.Код);
    КонецЕсли;
    Если КартинкаСсылка.Пустая() Тогда
    КартинкаОбъект = Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
    КартинкаОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
    КартинкаОбъект.Наименование = Товар.Код;
    КартинкаОбъект.Владелец = Товар.Ссылка;

    //----------------------------
    //СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);
    //
    //ФайлОтвет = ПолучитьИмяВременногоФайла();
    //HTTPСоединение = Новый HTTPСоединение(СтруктураURI.ИмяСервера);
    //HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    //Ответ = HTTPСоединение.Получить(HTTPЗапрос, ФайлОтвет);
    //
    //Если Ответ.КодСостояния = 200 Тогда
    // Возврат Новый ДвоичныеДанные(ФайлОтвет);
    //КонецЕсли;
    //----------------------------------
    URL = Excel.Cells(НомерСтроки, 7).Text;
    СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);

    ФайлОтвет = ПолучитьИмяВременногоФайла();
    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.ИмяСервера);
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    Ответ = HTTPСоединение.Получить(HTTPЗапрос, ФайлОтвет);

    //К1 = Новый Картинка(ФайлОтвет, истина);
    К1 = Новый ДвоичныеДанные(ФайлОтвет);
    КартинкаОбъект.ФайлХранилище = Новый ХранилищеЗначения(ФайлОтвет);

    КартинкаОбъект.Расширение = "jpg";
    КартинкаОбъект.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;

    Сообщить("1");
    ФайлК = Новый Файл(ФайлОтвет);

    Сообщить("2");
    КартинкаОбъект.Размер = ФайлК.Размер();

    КартинкаОбъект.Записать();
    КартинкаСсылка = КартинкаОбъект.Ссылка;

    КартинкаСохранить = РегистрыСведений.ПрисоединенныеФайлы.СоздатьНаборЗаписей();
    КартинкаСохранить.Отбор.ПрисоединенныйФайл.Установить(КартинкаОбъект.Ссылка);
    НовыйФайл = КартинкаСохранить.Добавить();
    НовыйФайл.ПрисоединенныйФайл = КартинкаСсылка;
    НовыйФайл.ХранимыйФайл = КартинкаОбъект.ФайлХранилище;
    КартинкаСохранить.Записать();
    КонецЕсли;
    Товар.ФайлКартинки = КартинкаСсылка;
    Иначе
    Товар.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    КонецЕсли;
```

 Помогите пожалуйста
---
1. Вы знаете, можете обижаться, но готовое рабочее решение я уже скинул в самом начале. Сейчас я воспроизвел его на УТ и код рабочий. Так что не надо говорить, что никто Вам не помогает. Нужно просто уметь воспринимать помощь.
2. Синтаксис-помощник практически никогда не даст вам решение адаптированное конкретно под вашу ситуацию. нужно учиться им пользоваться.
3. Если Вы нашли в интернете КОНКРЕТНО ВАШ вариант - можете считать что вам крупно повезло. Это обычно исключение из правил. Чаще всего приходится искать маленькие подсказки, чтобы оттолкнувшись от найти СВОЕ решение, которое и будет КОНКРЕТНО ВАШИМ вариантом.
4. Все "КРУТЫЕ ПРОГРАММИСтЫ" когда-то были начинающими. И начинали большинство в гораздо худших условиях, по сравнению с нынешними условиями новичков. Это я про огромные базы знаний и форумы в интернете. Раньше все 1Сники довольствовались только кодом из типовых конфигураций и желтыми книгами при изучении 1С.
5. Большинство "Крутых" программистов выросли на 1С франчах. Если Вы новичок - вам просто необходимо смотреть в сторону франчей, как школы для 1Сника.

ЗЫ. Рабочий пример загрузки картинки в справочник номенклатура с сайта:
---
все не то.

```1c
    Если КартинкаСсылка.Пустая() Тогда
    URL = Excel.Cells(НомерСтроки, 7).Text;
    СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);

    ФайлОтвет = ПолучитьИмяВременногоФайла("jpg");
    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.ИмяСервера);
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    Ответ = HTTPСоединение.Получить(HTTPЗапрос, ФайлОтвет);
    К1 = Новый ДвоичныеДанные(ФайлОтвет);

    Файл = Новый Файл(ФайлОтвет);
    ПараметрыФайла = Новый Структура("Автор, ВладелецФайлов, ИмяБезРасширение, РасширениеБезТочки",
    Пользователи.АвторизованныйПользователь(),
    Товар.Ссылка,
    Файл.ИмяБезРасширения,
    Файл.Расширение);

    СсылкаНаФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, ПоместитьВоВременноеХранилище(К1, Новый УникальныйИдентификатор));
    Иначе
    Товар.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    КонецЕсли;
```
---
Справочник НоменклатураПрисоединенныеФайлы не подчинен справочнику номенклатура. Там есть реквизит "ВладелецФайла" с типом "Справочник.Номенклатура".

должно быть так:
КартинкаОбъект.ВладелецФайла = Товар.Ссылка;
---
{ВнешняяОбработка.Тест2.МодульОбъекта(158)}: Ошибка при вызове метода контекста (Записать)
     КартинкаОбъект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.РаботаСФайлами.Модуль(1505)}: Не заполнен владелец в файле
"00-00000370".
   ВызватьИсключение ОписаниеОшибки;

К сожалению опять выдает это
---
все не то.

```1c
    Если КартинкаСсылка.Пустая() Тогда
    URL = Excel.Cells(НомерСтроки, 7).Text;
    СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);

    ФайлОтвет = ПолучитьИмяВременногоФайла("jpg");
    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.ИмяСервера);
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    Ответ = HTTPСоединение.Получить(HTTPЗапрос, ФайлОтвет);
    К1 = Новый ДвоичныеДанные(ФайлОтвет);

    Файл = Новый Файл(ФайлОтвет);
    ПараметрыФайла = Новый Структура("Автор, ВладелецФайлов, ИмяБезРасширение, РасширениеБезТочки",
    Пользователи.АвторизованныйПользователь(),
    Товар.Ссылка,
    Файл.ИмяБезРасширения,
    Файл.Расширение);

    СсылкаНаФайл = РаботаСФайлами.ДобавитьФайл(ПараметрыФайла, ПоместитьВоВременноеХранилище(К1, Новый УникальныйИдентификатор));
    Иначе
    Товар.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    КонецЕсли;
```
---
```1c
    КартинкаСсылка = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    Если Не Excel.Cells(НомерСтроки, 7).Text = Неопределено или не Excel.Cells(НомерСтроки, 7).Text = " Тогда
    Если КартинкаСсылка.Пустая() Тогда
    //КартинкаСсылка = Справочники.НоменклатураПрисоединенныеФайлы.НайтиПоНаименованию(Товар.Код);
    URL = Excel.Cells(НомерСтроки, 7).Text;
    СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URL);

    ФайлОтвет = ПолучитьИмяВременногоФайла("jpg");
    HTTPСоединение = Новый HTTPСоединение(СтруктураURI.ИмяСервера);
    HTTPЗапрос = Новый HTTPЗапрос(СтруктураURI.ПутьНаСервере);
    Ответ = HTTPСоединение.Получить(HTTPЗапрос, ФайлОтвет);
    К1 = Новый ДвоичныеДанные(ФайлОтвет);
    Иначе
    Товар.ФайлКартинки = Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка();
    КонецЕсли;
    КонецЕсли;
```

Обработка работает, но картинка в файлах не появляется
---
этот код нужно вставить в предыдущий или же полностью заменить новым?
---
Полностью заменить
---
Полностью заменил, картинки в файлах нету ,ошибку обработка не выдает.

(10)
тема близкая ,ибо мы делаем одно и то же задание для стажировки
---
Товарищи, моя бы воля - вы бы не прошли стажировку. Вы же не собираетесь работать в реальном времени в режиме вопрос - ответ на инфостарте? Если, конечно, стажировка при приеме на работу. Судя по вашему коду - БСП вы не знаете от слова совсем. Да и по структуре конфигурации и написанию кода откровенно хромаете.

Извините за прямоту, конечно. Ничего личного.
---
Моя бы воля Во первых я бы через Ctrl+F1 просмотрел как нужно создать элемент номенклатуры (там про это ничего нету ,ФайлКартинки поиск не видит,та в принципе ничего почти полезного нету!!,а если поиск и отвечает ,то предлагает на выбор 30 ответов ,без примера выполнения, ВСЕ ДЛЯ НОВИЧКОВ).
Во вторых можно просмотреть методические материалы на сайте 1с, там есть огромнейшее кол-во информации ,вопрос только для кого,я бы хотел сказать ВСЕ ДЛЯ НОВИЧКОВ, но нет. По факту там необъятный океан, из которого мне нужно несколько литров ,но я же не специалист и не инженер по 1С.Но самое интересное если взять и загуглить "Как добавить владельца для элемента номенклатуры", НЕТУ НЕТУ есть все,но конкретно моего варианта нету!!! 8.2 вышла в 2009 и не один крутой 1с программист не в состоянии написать как это сделать, точно так же и НЕТУ справочной информации и руководств по созданию програмно номенклатуры со всеми реквизитами (те чтобы прям все строки заполнить правильно и програмно) . Я 3 дня пытался Добавить ФайлКартинки, всеми способами что есть в интернете, проблема в том, что код есть ,а объяснения нет.Я понимаю что вы все гуру программирования на 1с, но что так трудно обьяснить НОВИЧКУ как и почему. В 1С любое слово на русском языке может быть процедурой,функцией,строкой,цифрой и другими вещами, как я должен понимать что в коде других людей, они его не подписывают или они же не называют Пкакаятопроцедура Скакаятострока и тд, Я просто хочу узнать как из URL сделать файл картинки и чтобы это работало. Я все варианты перепробовал ,поэтому и пишу сюда
---
1. Вы знаете, можете обижаться, но готовое рабочее решение я уже скинул в самом начале. Сейчас я воспроизвел его на УТ и код рабочий. Так что не надо говорить, что никто Вам не помогает. Нужно просто уметь воспринимать помощь.
2. Синтаксис-помощник практически никогда не даст вам решение адаптированное конкретно под вашу ситуацию. нужно учиться им пользоваться.
3. Если Вы нашли в интернете КОНКРЕТНО ВАШ вариант - можете считать что вам крупно повезло. Это обычно исключение из правил. Чаще всего приходится искать маленькие подсказки, чтобы оттолкнувшись от найти СВОЕ решение, которое и будет КОНКРЕТНО ВАШИМ вариантом.
4. Все "КРУТЫЕ ПРОГРАММИСтЫ" когда-то были начинающими. И начинали большинство в гораздо худших условиях, по сравнению с нынешними условиями новичков. Это я про огромные базы знаний и форумы в интернете. Раньше все 1Сники довольствовались только кодом из типовых конфигураций и желтыми книгами при изучении 1С.
5. Большинство "Крутых" программистов выросли на 1С франчах. Если Вы новичок - вам просто необходимо смотреть в сторону франчей, как школы для 1Сника.

ЗЫ. Рабочий пример загрузки картинки в справочник номенклатура с сайта:
---
Большое вам спасибо, проблема оказалась в платформе ,которую я по всей видимости сломал выполняя первое тестовое задание. При запуске вашего кода в 1С:Предприятие 8.3, учебная версия (8.3.17.1386) все заработало. (2 дня из-за платформы) .
---
Через отладку видно что значение КартинкаОБъект ВладелецФайла не заполнено . Почему то КартинкаОбъект.ВладелецФайла не работает
---
{ВнешняяОбработка.Тест2.МодульОбъекта(71)}: Ошибка при установке значения атрибута контекста (Владелец)
   Товар.Владелец = Справочники.НоменклатураПрисоединенныеФайлы;
          Товар.Владелец = Справочники.Номенклатура;//пробывал тоже не работает
по причине:
Справочник не имеет владельца

Если самому Товару назначить Владельца ,тоде ошибка
---
Буквально вчера обсуждалась похожая тема.
https://forum.infostart.ru/forum9/topic243923/
---
{ОбщийМодуль.РаботаСФайлами.Модуль(596)}: Ошибка при добавлении присоединенного файла "Портативная акустика JBL Charge 4 22.jpg":
Не заполнен владелец в файле
"Портативная акустика JBL Charge 4 22".
   ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(

похожая ошибка выходит