Имя: Пароль:
1C
1С v8
Картинки в дереве.
,
0 aleks_cons
 
18.11.13
11:45
Имеется такой запрос:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Папка", Папка);
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Наименование,
        |    Номенклатура.Артикул,
        |    Номенклатура.Ссылка КАК Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.Родитель В ИЕРАРХИИ(&Папка)
        |ИТОГИ ПО
        |    Ссылка ИЕРАРХИЯ";

    Результат = Запрос.Выполнить();

    //Дерево = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
    ЭлементыФормы.ДеревоЗнач.Значение = Дерево;
    ЭлементыФормы.ДеревоЗнач.СоздатьКолонки();

Этот запрс выгружается на форму в Табличное поле (дерево).

Как сделать вывод картинок рядом с номенклатурой! ?
1 aleks_cons
 
18.11.13
12:07
Помогите решить. Кто-нибудь...
2 1dvd
 
18.11.13
12:08
у каждой номенклатуры своя картинка?
3 zakidonoff
 
18.11.13
12:11
На поле вешаешь комбинированную картинку, где индекс 0 - папка, индекс 1 - реквизит (или что там у тебя), затем обработчиком события привыводестроки меняешь индекс, в зависимости от того, есть ли суть значение ячейки папка, или нет.
4 aleks_cons
 
18.11.13
12:18
У каждой номенклатуры своя картинка (изображение товара). Конфигурация стандартная. За решение бонус на мобильник )
5 1dvd
 
18.11.13
12:20
(4) ок, возьмусь за пятый иФон
6 aleks_cons
 
18.11.13
12:22
Предлагал на мобильник ($), а не сам телефон. В ожидании чуда...
7 1dvd
 
18.11.13
12:22
(6) Чудес не бывает ©
8 aleks_cons
 
18.11.13
12:26
1dvd - приятно поговорить. жаль что не по делу....
9 Fedor-1971
 
18.11.13
12:26
Форма управляемая или обычная?
На форме есть дерево и область картинки куда будет выводиться картинка текущей номенклатуры? Правильно понял?
10 aleks_cons
 
18.11.13
12:28
обычная форма. УТ 10.3. На форме только ТаблицаЗначение (дерево значений) Области картинки нет. (но мне без разницы) можно и добавить.
11 aleks_cons
 
18.11.13
12:31
http://www.fayloobmennik.net/3359805 - тестовая обработка (для примера) Нужно вывести картинку номенклатуры (она у всех товаров своя) УТ 10.3 типова
12 zakidonoff
 
18.11.13
12:32
У меня как-то так реализовано:

Процедура ТабличноеПолеДокументПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки.Проведение <> -1 Тогда
        Если ЗначениеЗаполнено(ДанныеСтроки.ДокументОбъект) Тогда
            Если ДокументыЧек Тогда
                ЭлементыФормы.ТабличноеПоле.Колонки.Проведение.КартинкиСтрок = БиблиотекаКартинок.СостоянияДокумента;
                ЭлементыФормы.ТабличноеПоле.Колонки.ВнешнийПроведение.КартинкиСтрок = БиблиотекаКартинок.СостоянияДокумента;
                СтандартныеРеквизиты = Метаданные.НайтиПоТипу(ТипЗнч(ДанныеСтроки.ДокументОбъект)).СтандартныеРеквизиты;
                ЕстьПроведение = Ложь;
                Для Каждого Реквизит ИЗ СтандартныеРеквизиты Цикл
                    Если Реквизит.Имя = "Проведен" Тогда
                        ЕстьПроведение = Истина;
                        Прервать;
                    КонецЕсли;                        
                КонецЦикла;
                Если ЕстьПроведение И ДанныеСтроки.ДокументОбъект.Проведен Тогда
                    ИндексКартинки = 0;
                ИначеЕсли ДанныеСтроки.ДокументОбъект.ПометкаУдаления Тогда
                    ИндексКартинки = 1;
                ИначеЕсли НЕ ЕстьПроведение Тогда
                    ИндексКартинки = 0;
                Иначе
                    ИндексКартинки = 2;
                КонецЕсли;
            Иначе
                ЭлементыФормы.ТабличноеПоле.Колонки.Проведение.КартинкиСтрок = БиблиотекаКартинок.ПометкаУдаленияЭлементаСправочника;
                ЭлементыФормы.ТабличноеПоле.Колонки.ВнешнийПроведение.КартинкиСтрок = БиблиотекаКартинок.ПометкаУдаленияЭлементаСправочника;
                Если НЕ ДанныеСтроки.ДокументОбъект.ПометкаУдаления Тогда
                    ИндексКартинки = 0;
                Иначе
                    ИндексКартинки = 1;
                КонецЕсли;
            КонецЕсли;
            ОформлениеСтроки.Ячейки.Проведение.ИндексКартинки = ИндексКартинки;
            ОформлениеСтроки.Ячейки.ВнешнийПроведение.ИндексКартинки = ДанныеСтроки.ВнешнийИндексКартинки;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Проведение.ОтображатьКартинку          = ЗначениеЗаполнено(ДанныеСтроки.ДокументОбъект);
        ОформлениеСтроки.Ячейки.ВнешнийПроведение.ОтображатьКартинку = ЗначениеЗаполнено(ДанныеСтроки.ВнешнийДокумент);
    КонецЕсли;
КонецПроцедуры
13 zakidonoff
 
18.11.13
12:34
(12) Суть в том, что здесь прописан как механизм установки картинок из библиотеки, так и отображение по индексу нужной картинки из уже установленной. В общем, всё что для счастья надо есть
14 1dvd
 
18.11.13
12:35
(12) (13) у него каждая номенкалтура имеет соственную картинку (считай фотку). Никаких библиотек.
15 Fedor-1971
 
18.11.13
12:35
Выгружаешь результаты запроса в дерево и в событии ПриАктивизацииСтроки() обновляешь картинку в поле.
16 aleks_cons
 
18.11.13
12:39
Спасибо. Буду пробовать. Но если кто решит за меня и отправит мне на почту [email protected] ждет 500 р. на телефон. (первый правильный ответ) Решение выложу на форум.(для общего благо)
17 aleks_cons
 
18.11.13
12:40
или прямо сюда пишите. здесь точно будет известно кто первый.
18 zakidonoff
 
18.11.13
12:41
(16) ТЗ не чёткое. Слабо понятно что именно тебе нужно и каков должен быть итоговый результат.
На фрилансе я таких заказчиков лесом отправляю вне зависимости от сулимой суммы )
19 aleks_cons
 
18.11.13
12:42
ТЗ - файл примера указан. В нем все понятно. (Нужна просто картинка рядом с наименованием товара). Что не ясно? Скачайте пример и попробуйте туда поставить картинку и все.
20 1dvd
 
18.11.13
12:44
(16) тут дерево надо через ActiveX делать. Кароче, гемор ищё тот. Позовите меня, когда раскошелитесь на пятый ифон
21 aleks_cons
 
18.11.13
12:44
ТЗ - главное смысл. Я же не выкладываю свою (большую) обработку чтобы не писать сложное ТЗ. А здесь как школе. Название товара а рядом картинка. и все
22 aleks_cons
 
18.11.13
12:44
1dvd - ок) Удачного дня. Вопрос еще открыт. Кому не сложно
23 zakidonoff
 
18.11.13
12:47
(21) А картинки туда лепить - какие бог пошлёт? Или из карточки номенклатуры брать? Там, между прочим, иконки нужны, а не плакаты 2*2
24 aleks_cons
 
18.11.13
12:49
из карточки номенклатуры. ОсновноеИзображение
25 zakidonoff
 
18.11.13
12:53
(24) Изврат. Ради любопытства открой картинку в каком-нибудь редакторе и изени её размер на 16*16 - посмотри какая каша получится. Врядли тебя такое устроит
26 aleks_cons
 
18.11.13
12:57
какие предложения?
27 aleks_cons
 
18.11.13
12:58
задача не решаема?
28 zakidonoff
 
18.11.13
13:00
(27) Если нерешаема задача ручного создания кошерных иконок для каждой позиции номенклатуры в формате 16*16 - то да, нерешаема.
29 aleks_cons
 
18.11.13
13:11
zakidonoff - спасибо за ответ. Кто нибудь ... Может есть еще решения данной задачи?
30 Fedor-1971
 
18.11.13
13:32
(29) так уже предлагал, сделай одну большую картинку возле дерева. Как её обновлять можно посмотреть в справочнике номенклатуры (там вроде есть картинка)
31 catena
 
18.11.13
13:42
(29)Мелкие иконки вешаются, большие только вне ТП.
32 aleks_cons
 
18.11.13
15:04
буду думать как решить. но надежда не умерла...
33 zakidonoff
 
18.11.13
15:12
(32) твоя надежда крутится вокруг идеи презентабельно сжать растровое изображение до размеров иконки.
Это априори невозможно. Никак. Вообще никак.
Если и думать как решать, то уже не в области добавления картинок к каждой строке дерева значений табличной части, а, скажем, как тебе выше предлагали - в области создания одного поля картинки, где будет отражаться текущее большое изображение, скажем, при выделении определенной строки.
Или выводить дерево не в табличное поле, а в хтмл документ, где ширина строк будет позволять отражать картинки читабельного вида (скажем, 100*100) - список, конечно, станет заметно шире, зато по картинкам будет понятно, что было в исходнике...
34 aleks_cons
 
18.11.13
16:24
zakidonoff - (27) Если нерешаема задача ручного создания кошерных иконок для каждой позиции номенклатуры в формате 16*16 - то да, нерешаема.

16*16 - буду думать как сдеать для каждого товра. сможешь решить формат 16х16 в 1с?  
- в области создания одного поля картинки, где будет отражаться текущее большое изображение, скажем, при выделении определенной строки.
и это тоже нужно, но думаю сам справлюсь.
35 aleks_cons
 
18.11.13
16:26
zakidonoff как с тобой связаться? тел. е-майл или т.п.?
36 zakidonoff
 
18.11.13
17:40
(35) [email protected]
Придумаешь как сделать иконки - просто добавь их к уже существующим картинкам в справочнике номенклатуры.
Отпишешь на почту, как сделаешь - верну тебе твою обработку с готовым алгоритмом вывода.
Вместе с номером своего телефона =)
37 aleks_cons
 
18.11.13
19:02
(36) жду ответ на почту
38 aleks_cons
 
18.11.13
21:29
zakidonoff - ты где?
39 zakidonoff
 
18.11.13
21:54
40 zakidonoff
 
18.11.13
21:59
+79609713764 - жду обещанных 500р и тебе бонусом будет ещё прога автоматом уменьшающая картинки )
41 aleks_cons
 
19.11.13
00:10
{Форма.Форма.Форма(57)}: Ошибка при установке значения атрибута контекста (КартинкиСтрок)
        ЭлементыФормы.ДеревоЗнач.Колонки[мИмяКолонки].КартинкиСтрок = СтрОформления.ИконкаКартинка;
по причине:
Несоответствие типов
42 zakidonoff
 
19.11.13
04:42
(41) Так правильно. Нужно к каждой картинке номенклатуры добавить иконку. И всё ок будет.
Либо через программку занести их в хранилище.
43 zakidonoff
 
19.11.13
06:35
Да, и готов посыпать голову пеплом - при уменьшении изображений до размера 16*16 получаются вполне смотрибельные иконки. По крайней мере, эскизно исходные габариты изображения разобрать можно.
44 catena
 
19.11.13
06:41
(43)У меня основное изображение автоматически в иконку в таблице превращается, зачем доп.реквизит?
45 zakidonoff
 
19.11.13
06:48
(44) лагает при длинных списках
46 aleks_cons
 
19.11.13
08:19
(45) доброе утро. у меня только большая картинка отображается. что с мелко картинкой?. по пунктам объясни куда ее вставить
47 zakidonoff
 
19.11.13
08:25
По-пунктам:
1) Кидаешь мне на счёт обещанные 500р.
2) Получаешь от меня фул версию с автоматическим запиливанием миниатюр.
3) ?????
4) ПРОФИТ
-)
__
Вариант 2 (тоже что и вариант 1, только заменить пункт 2 )
2) В обработке меняешь строки:
ИначеЕсли Результат.Количество() = 1 Тогда
    Результат.Следующий();
    //уменьшить изображение, добавить новую картинку в хранилище
    УменьшитьКартинкуИЗанестивХранилище(Результат.Ссылка, Номенклатура, ИконкаКартинка);
КонецЕсли;

на следующие:

ИначеЕсли Результат.Количество() = 1 Тогда
    Результат.Следующий();
    //уменьшить изображение, добавить новую картинку в хранилище
    //УменьшитьКартинкуИЗанестивХранилище(Результат.Ссылка, Номенклатура, ИконкаКартинка);
    ИконкаКартинка = Результат.Ссылка.Хранилище.Получить();
КонецЕсли;
48 aleks_cons
 
19.11.13
08:40
оплата прошла. жду готовый вариант.
49 zakidonoff
 
19.11.13
08:53
50 aleks_cons
 
19.11.13
09:10
(49) Эта версия не создает иконки. Обработка кот. ты присылал до этой, создавала иконки.
51 aleks_cons
 
19.11.13
09:51
(49) Работает. спасибо ) главное чтобы путь к обработке где она находиться был короткий (пример с:\123\) , а не С:\123\Новая папка\Еще одна пака\ ит.п.\
52 zakidonoff
 
19.11.13
10:05
(51) длина пути не более 60 символов. связано с ограничением i_view