Username:
Password:
 Log me on automatically each visit
 
Aeroion.Ru
Форумы сервера Aeroion.Ru
Welcome

Aeroion.Ru Forum Index
  » Технические форумы
   » 1Сv8: Программирование, отчёты, обработки, статьи
    » Назначение нескольких рисунков для номенклатуры из Excel файла (xls, csv)
printer-friendly view
AuthorНазначение нескольких рисунков для номенклатуры из Excel файла (xls, csv)
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Подскажите пожалуйста!
Есть какая-нибудь обработка при помощи которой можно присваивать несколько рисунков для номенклатуры из Excel файла (xls, csv), имеющего следующий формат:

<Код1 или Артикул1 или Наименование1>;<Рисунок1_1>;<Рисунок2_1>;<Рисунок3_1>;<Рисунок4_1>;<Рисунок5_1>
<Код2 или Артикул2 или Наименование2>;<Рисунок1_2>;<Рисунок2_2>;<Рисунок3_2>
<Код3 или Артикул3 или Наименование3>;<Рисунок1_3>;<Рисунок2_3>;<Рисунок3_3>;<Рисунок4_3>

Для каждой номенклатуры количество рисунков может быть разное.
Поиск номенклатуры производится по любому атрибуту - Код1, Артикул1 или Наименование1 (заведомо известно, что номенклатура в справочнике присутствует)

Или помогите пожалуйста подправить код для стандартной обработки "Загрузка данных из табличного документа" (При записи объекта), с помощью которого можно загрузить один рисунок:
Code:
НомерСтолбцаИзображение = 4;
НомерСтолбцаОписаниеИзображение = 1;

ЗапросСуществующих = Новый Запрос();
ЗапросСуществующих.Текст = "
|ВЫБРАТЬ
|    ХранилищеДополнительнойИнформации.Ссылка
|ИЗ
|    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
|    ХранилищеДополнительнойИнформации.Объект = &Объект
|    И ХранилищеДополнительнойИнформации.Наименование = &Наименование";

Объект.Записать();

ФайлКартинки = Новый Файл(СокрЛП(ТекстыЯчеек[НомерСтолбцаИзображение]));
 Предупреждение(ФайлКартинки.Существует());
Если ФайлКартинки.Существует() Тогда
    Предупреждение("!");
    ЗапросСуществующих.УстановитьПараметр("Объект", Объект.Ссылка);
    ЗапросСуществующих.УстановитьПараметр("Наименование", СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]));
    Выборка = ЗапросСуществующих.Выполнить().Выбрать();
    Если Выборка.Количество() <= 0 Тогда
        Предупреждение("!!");
        ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]),Новый СжатиеДанных);
        ХранилищеОбъект.Объект = Объект.Ссылка;
        ХранилищеОбъект.Наименование = СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]);
        ХранилищеОбъект.ИмяФайла = ТекстыЯчеек[НомерСтолбцаИзображение];
        ХранилищеОбъект.Записать();
        Объект.ОсновноеИзображение=ХранилищеОбъект.Ссылка;
    КонецЕсли;
КонецЕсли;
Back to topOffline View user's profile
Splitted: Mon 15 Aug, 2011 13:00 by Sergey
From Topic Загрузка изображения из буфера обмена или файла для номенклатуры (УТ 11, УНФ 1.2/1.3/1.4, Розница 2) ()
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Что в этом коде не так? Разве что здесь ТекстыЯчеек[НомерСтолбцаИзображение]. В ячейке просто имя файла содержится, без указания пути?

И больше не вали всё в одну тему, наши правила читай.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Извиняюсь!

Просто я не программист и не знаю как переделать этот код таким образом, чтобы можно было начиная с первого рисунка, номер столбца которого присвоим, например, переменной НомерСтолбцаИзображение и до последнего рисунка в строке (для каждой разное количество) записать в номенклатуру, первый рисунок назначался основным, и к значению НомерСтолбцаОписаниеИзображение дописывался номер по порядку (хотя, этого можно и не делать)

В ячейках прописаны полные пути (С:\Папка\Файл.jpg), но, если проще реализовать данную задачу, то можно указывать просто названия файлов, тогда нужно где-то/как-то прописать путь к папке с файлами

Спасибо!
Back to topOffline View user's profile
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Неужели никто не знает как реализовать данную задачу?
Back to topOffline View user's profile
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Кто-то знает. Просто на коленке код не напишешь, а специально заниматься, тестировать за бесплатно времени нет.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Обращаюсь к тем кто знает - И за сколько вы готовы написать код Question Rolling Eyes Question
Back to topOffline View user's profile
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Только в сентябре. Сейчас занят.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Задача решена! Тему можно закрывать.
Back to topOffline View user's profile
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Location: Оренбург
Posts: 1165
Last Visited: Yesterday at 14:46
Кредиты: 3714
Reputation: 48
Age: 41
Zodiac: Aquarius Pig

Ну так поделись. Обработки с сайта ведь скачивал.

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, слать емайлы, пытаться писать в приват. Спасибо за понимание.
Please do not PM, ICQ or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Skype Name
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Вот полностью рабочий код.
Загружает неограниченное количество рисунков для номенклатуры, при этом производится проверка рисунков на дубликаты по названию файлов.
Первый рисунок назначается основным.
В таблице должны быть прописаны полные пути к изображениям.

По коду:
НомерСтолбцаИзображение = 5 - номер колонки, в которой прописан путь к первому рисунку.

Code:
////////////////////////////////////////////////
///----------Загрузка картинок----------///
////////////////////////////////////////////////

НомерКартинки = 1;

КоличетвоЯчеек = ТекстыЯчеек.Количество();

Для НомерСтолбцаИзображение = 5 По КоличетвоЯчеек - 1 Цикл
ФайлКартинки = Новый Файл(СокрЛП(ТекстыЯчеек[НомерСтолбцаИзображение]));
ИмяФайлаКартинки = ФайлКартинки.Имя;

ЗапросСуществующих = Новый Запрос();
ЗапросСуществующих.Текст = "
|ВЫБРАТЬ
|    ХранилищеДополнительнойИнформации.Ссылка
|ИЗ
|    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
|    ХранилищеДополнительнойИнформации.Объект = &Объект
|    И ХранилищеДополнительнойИнформации.Наименование = &Наименование";

Объект.Записать();

Если ФайлКартинки.Существует() Тогда
    ЗапросСуществующих.УстановитьПараметр("Объект", Объект.Ссылка);
    ЗапросСуществующих.УстановитьПараметр("Наименование", ИмяФайлаКартинки);
    Выборка = ЗапросСуществующих.Выполнить().Выбрать();
    Если Выборка.Количество() <= 0 Тогда
        Если НомерКартинки = 1 Тогда
        //Предупреждение("Сохраняем Основную картинку!");
        ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]), Новый СжатиеДанных());
        ХранилищеОбъект.Объект = Объект.Ссылка;
        ХранилищеОбъект.Наименование = ИмяФайлаКартинки;
        ХранилищеОбъект.ИмяФайла = ИмяФайлаКартинки;
        ХранилищеОбъект.Записать();
        Объект.ОсновноеИзображение = ХранилищеОбъект.Ссылка;
        Иначе
        //Предупреждение("Добавляем Дополнительную картинку!");
        ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]), Новый СжатиеДанных());
        ХранилищеОбъект.Объект = Объект.Ссылка;
        ХранилищеОбъект.Наименование = ИмяФайлаКартинки;
        ХранилищеОбъект.ИмяФайла = ИмяФайлаКартинки;
        ХранилищеОбъект.Записать();
        КонецЕсли;
    КонецЕсли;
КонецЕсли;
НомерКартинки = НомерКартинки + 1;
КонецЦикла;
Back to topOffline View user's profile
MAX3000 Gender:Male

Участник


Joined: 15 Aug 2011
Posts: 9
Last Visited: Mon 12 Sep, 2011 00:17
Кредиты: 69
Reputation: 0
Age: 21
Zodiac: Capricorn Horse

Доработанный код.

Описание картинки берется из ячейки "НомерСтолбцаОписаниеИзображение" и к нему добавляется --- "- Рис. N"
Рисунки проверяются на дубликат по названию файла

Code:
///////////////////////////////////////////
///----------Загрузка картинок----------///
///////////////////////////////////////////

НомерСтолбцаОписаниеИзображение = 1;
НомерКартинки = 1;

МассивДобавленныхКартинок = Новый Массив;
КоличетвоЯчеек = ТекстыЯчеек.Количество();

Для НомерСтолбцаИзображение = 8 По КоличетвоЯчеек - 1 Цикл

ФайлКартинки = Новый Файл(СокрЛП(ТекстыЯчеек[НомерСтолбцаИзображение]));
ИмяФайлаКартинки = ФайлКартинки.Имя;
ОписаниеКартинки = ФайлКартинки.ИмяБезРасширения;
НовоеОписаниеКартинки = СокрЛП(ТекстыЯчеек[НомерСтолбцаОписаниеИзображение]) + " - Рис. " + НомерКартинки;

Если МассивДобавленныхКартинок.Найти(ОписаниеКартинки) = Неопределено Тогда
МассивДобавленныхКартинок.Добавить(ОписаниеКартинки);

ЗапросСуществующих = Новый Запрос();
ЗапросСуществующих.Текст = "
|ВЫБРАТЬ
|    ХранилищеДополнительнойИнформации.Ссылка
|ИЗ
|    Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
|    ХранилищеДополнительнойИнформации.Объект = &Объект
|    И ХранилищеДополнительнойИнформации.Наименование = &Наименование";

Объект.Записать();

Если ФайлКартинки.Существует() Тогда
    ЗапросСуществующих.УстановитьПараметр("Объект", Объект.Ссылка);
    ЗапросСуществующих.УстановитьПараметр("Наименование", НовоеОписаниеКартинки);
    Выборка = ЗапросСуществующих.Выполнить().Выбрать();
    Если Выборка.Количество() <= 0 Тогда
        Если НомерКартинки = 1 Тогда
        //Предупреждение("Сохраняем Основную картинку!");
        ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]), Новый СжатиеДанных());
        ХранилищеОбъект.Объект = Объект.Ссылка;
        ХранилищеОбъект.Наименование = НовоеОписаниеКартинки;
        ХранилищеОбъект.ИмяФайла = ИмяФайлаКартинки;
        ХранилищеОбъект.Записать();
        Объект.ОсновноеИзображение = ХранилищеОбъект.Ссылка;
        Иначе
        //Предупреждение("Добавляем Дополнительную картинку!");
        ХранилищеОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
        ХранилищеОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
        ХранилищеОбъект.Хранилище = Новый ХранилищеЗначения(Новый Картинка(ТекстыЯчеек[НомерСтолбцаИзображение]), Новый СжатиеДанных());
        ХранилищеОбъект.Объект = Объект.Ссылка;
        ХранилищеОбъект.Наименование =  НовоеОписаниеКартинки;
        ХранилищеОбъект.ИмяФайла = ИмяФайлаКартинки;
        ХранилищеОбъект.Записать();
        КонецЕсли;
    КонецЕсли;
КонецЕсли;
НомерКартинки = НомерКартинки + 1;
КонецЕсли;       
КонецЦикла;
Back to topOffline View user's profile
Display posts from previous:   

Summary Rating For >> Назначение нескольких рисунков для номенклатуры из Excel файла (xls, csv)
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Загрузка изображения из буфера обмена...
Обработка (1С 8.2, управляемые формы)...
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 22 Tue 24 Apr, 2012 14:42 View latest post
Sergey
No new posts Быстрое создание серий номенклатуры п...
Обработка
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Fri 02 Apr, 2010 20:06 View latest post
Sergey
No new posts Сроки резервирования номенклатуры на ...
Отчет
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Fri 02 Apr, 2010 19:41 View latest post
Sergey
No new posts Сроки хранения номенклатуры на склада...
Отчет
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Fri 02 Apr, 2010 19:36 View latest post
Sergey
No new posts Функция. Сортировка табличной части д...
Управление торговлей 10.3
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Sat 03 Apr, 2010 01:41 View latest post
Sergey




All times are UTC + 3 Hours
All times are synchronized with the forum server time
Users browsing this topic:1 Guest
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum