Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: v7: Обновление формы при загрузки картинки

Доброго времени в перечень номенклатуры добавил картинку товара,
реализовал механизм загрузки.
При загрузке файл копируется в определенную директорию и переименовывается в код товара.  В процедуре ПриОткрытии фото загружается.
Проблема в том что приходится закрывать и открывать форму вновь чтобы картинка обновилась.
Как можно это сделать?
Метод обновить модуля формы не работает.
Ответ: () отследи переменную "ИмяФайла"
Вопрос: Загрузка изображения на форму

На форме есть поле "АдресКартинки", где отображается картинка. Проблемы в следующем:

1) Сделать так, чтобы картинка вставала под размеры этого поля
2) Отображалась сразу после загрузки
3) Указать фильтры при добавлении на форматы картинки (jpg и т.д)

Загрузку картинки делаю так:
1C
1
2
3
4
5
6
7
8
9
10
&НаКлиенте
Процедура Загрузить(Команда)
    
Перем Имя, Адрес;
  Если ПоместитьФайл(Адрес,"",Имя,Истина,ЭтаФорма.УникальныйИдентификатор) Тогда
    Объект.ИмяФайла=Имя;
    ПоместитьФайлОбъекта(Адрес);
КонецЕсли;
 
КонецПроцедуры
Сама процедура
1C
1
2
3
4
5
6
7
8
9
10
11
&НаСервере
Процедура ПоместитьФайлОбъекта(Адрес)
  Спр=РеквизитФормыВЗначение("Объект");
  ДвоичныеДанные=ПолучитьИзВременногоХранилища(Адрес);
  Спр.Рентген=Новый ХранилищеЗначения(ДвоичныеДанные);
  Спр.Записать();
  УдалитьИзВременногоХранилища(Адрес);
  АдресКартинки=Адрес;
  ЗначениеВРеквизитФормы(Спр,"Объект");
 
КонецПроцедуры
ПриСозданииНаСервере
1C
1
2
3
4
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    АдресКартинки=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Рентген");
КонецПроцедуры
Ответ: juristbrn,
1) в свойствах элемента - декорации выставите РазмерКартинки - Пропорционально.
2) попробуйте закомментить строку удаления из временного хранилища в процедуре ПоместитьФайлОбъекта(...)
3) насколько знаю, фильтры возможны в случае использования ДиалогВыбораФайла, для ПоместитьФайл(...) нет. смотрите синтакс-помощник.
Вопрос: Двухсторонняя печать файла картинки

Требуется напечатать сертификат (файл формата TIFF - несколько изображений в одном файле). Так, вроде бы, ничего сложного, но есть один нюанс: требуется печатать его либо односторонним, либо двухсторонним(заранее задано значение в реквизит).

Нашел такой вот способ:
rundll32.exe C:\WINDOWS\System32\shimgvw.dll,ImageView_PrintTo /pt """+ПутьКФайлу+""" """+СокрЛП(ИмяПринтера)+""""
В качестве имени принтера передаю одну из настроек(односторонняя печать или двухсторонняя печать). Способ этот подсмотрел в конфе, где он использовался для печати табличного документа 1С.
Но в моем случае печать, почему-то, всегда получается односторонняя(уже и пробовали двухстороннюю ставить по умолчанию - не помогает).
Вопрос: может, есть какой-то ключ или команда для двухсторонней печати shimgvw.dll?
Что будет, если я многостраничный TIFF попытаюсь запихнуть в картинку макета 1С(что-то мне подсказывает, что без разбивки его на файлы ничего не выйдет)?
Ответ: Как я и думал, загрузка в макет 1С всего файла привела к загрузке первой страницы. Надо как-то разбивать на страницы его видимо...
Вопрос: Загрузка изображений по ссылке в справочник Номенклатура УТ 10.3

Добрый вечер всем.
Подскажите, посоветуйте, поделитесь пожалуйста опытом с такой проблемой.
Есть файл xml, из которого я загружаю в базу справочник номенклатура, среди прочих полей, что есть у товаров, есть ссылки на изображения, которые нужно первую вставить как лицевую картинку, а остальные загнать в файл, там в форме элемента есть этот значок со скрепкой.
Если можно, посоветуйте, как тут быть пожалуйста, устал уже искать - ни одного нормального примера не нашёл совсем, помогите!
Ответ:
очистить основную картинку - в реквизит объекта номенклатуры записать
Код:
Справочники.ХранилищеДополнительнойИнформации.ПустаяСсылка()
Вопрос: Загрузка ТЧ упр. формы

Подскажите пожалуйста, не знаю как заполнить ТЧ документа...
Переписал обработку для загрузки из Excell данных, получаю прочитанный файлик в табличное поле, выбираю необходимые колонки, клацаю "Загрузить", но тут вопрос, не получается обратиться к тч моего документа из данной обработки... Вопрос указан в коде ниже! Помогите пожалуйста!
Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
&НаСервере
Процедура Загрузить(Отказ)
    
    Если Объект.СписокЗагрузки.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    
    //РеквизитФормыВЗначение("Объект").ПроверитьДублиСтрок(Отказ);
    //
    //Если Отказ Тогда
    //  Возврат;
    //КонецЕсли;
    
    Если ВидОперации = "Цены" Тогда
        Менеджер = Справочники.Номенклатура;
    ИначеЕсли ВидОперации = "Остатки" Тогда
        ДокументВводОстатков = Документы.ВводНачальныхОстатков.СоздатьДокумент();
        ДокументВводОстатков.РазделУчета = "Запасы";
        ДокументВводОстатков.Организация = Справочники.Организации.ОсновнаяОрганизация;
        ДокументВводОстатков.Дата = ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата());
        ДокументВводОстатков.Комментарий = "# Документ введен обработкой загрузки данных из электронной таблицы.";
        Менеджер = Справочники.Номенклатура;
    ИначеЕсли ВидОперации = "Номенклатура" Тогда
        Менеджер = Справочники.Номенклатура;
    ИначеЕсли ВидОперации = "Контрагенты" Тогда
        Менеджер = Справочники.Контрагенты;
    ИначеЕсли ВидОперации = "РегНомера" Тогда
        Менеджер = Документы.итсЗагрузкаРегистраИТС;
        
    КонецЕсли;
    
    Для каждого СтрокаЗагрузки Из Объект.СписокЗагрузки Цикл
    
        Если НЕ СтрокаЗагрузки.ФлагЗагрузки Тогда
            Продолжить;
        КонецЕсли;
        
        Если СтрокаЗагрузки.Ссылка.Пустая() Тогда
            ОбъектДляЗаписи = Менеджер.СоздатьЭлемент();
        Иначе
            ОбъектДляЗаписи = СтрокаЗагрузки.Ссылка.ПолучитьОбъект();
        КонецЕсли;
        
        Если ВидОперации = "Контрагенты" Тогда
            
            ЗаполнитьЗначенияСвойств(ОбъектДляЗаписи, СтрокаЗагрузки);
            ОбъектДляЗаписи.НаименованиеПолное = ОбъектДляЗаписи.НаименованиеПолное;
            ОбъектДляЗаписи.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
            ОбъектДляЗаписи.СчетУчетаРасчетовСПокупателем = ПланыСчетов.Управленческий.РасчетыСПокупателями;
            ОбъектДляЗаписи.СчетУчетаАвансовПокупателя = ПланыСчетов.Управленческий.РасчетыПоАвансамПолученным;
            ОбъектДляЗаписи.СчетУчетаРасчетовСПоставщиком = ПланыСчетов.Управленческий.РасчетыСПоставщиками;
            ОбъектДляЗаписи.СчетУчетаАвансовПоставщику = ПланыСчетов.Управленческий.РасчетыПоАвансамВыданным;
            ОбъектДляЗаписи.ВестиРасчетыПоДоговорам = Истина;
            ОбъектДляЗаписи.ВестиРасчетыПоДокументам = Истина;
            ОбъектДляЗаписи.ВестиРасчетыПоЗаказам = Истина;
            ОбъектДляЗаписи.ВестиУчетОплатыПоСчетам = Истина;
            ОбъектДляЗаписи.Записать();
            
        //ИначеЕсли ВидОперации = "РегНомера" Тогда 
            //СтрокаТЧ = Объект.Приход.Добавить();
            //ЗаполнитьЗначенияСвойств (ОбъектДляЗаписи, СтрокаЗагрузки);
            //ОбъектДляЗаписи.РегНомера = СтрокаТЧ.СерийныйНомер;
            //ОбъектДляЗаписи.Записать(); ВОТ тут вопрос... знаю что неправильно написано,
                        //                                           не знаю как тут быть, подскажите!!!!
                        //                                           Выложил все, чтобы посмотрели всю процедуру,
                        //                                           тут несколько видов операций, интересует только "РегНомера".
                        //                                           Если нужна будет обработка, я сброшу... В ТЧ документа нужен 1                         //столбец только - РегНомер
            
        ИначеЕсли ВидОперации = "Номенклатура" Тогда
            
            ЗаполнитьЗначенияСвойств(ОбъектДляЗаписи, СтрокаЗагрузки);
            ОбъектДляЗаписи.НаименованиеПолное = СтрокаЗагрузки.Наименование;
            ОбъектДляЗаписи.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
            ОбъектДляЗаписи.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.ОсновнаяГруппа;
            ОбъектДляЗаписи.СчетУчетаЗапасов = ПланыСчетов.Управленческий.СырьеИМатериалы;
            ОбъектДляЗаписи.СчетУчетаЗатрат = ПланыСчетов.Управленческий.НезавершенноеПроизводство;
            ОбъектДляЗаписи.СпособПополнения = Перечисления.СпособыПополненияЗапасов.Закупка;
            ОбъектДляЗаписи.МетодОценки = Перечисления.МетодОценкиЗапасов.ПоСредней;
            ОбъектДляЗаписи.НаправлениеДеятельности = Справочники.НаправленияДеятельности.ОсновноеНаправление;
            ОбъектДляЗаписи.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас;
            ОбъектДляЗаписи.СтранаПроисхождения = СтранаПроисхождения;
            
            СтавкаНДС = НайтиСтавкуНДС(СтрокаЗагрузки.НДС);
            Если СтавкаНДС <>Неопределено Тогда
                ОбъектДляЗаписи.СтавкаНДС = СтавкаНДС;
            Иначе
                ОбъектДляЗаписи.СтавкаНДС = ?(ЗначениеЗаполнено(ОбъектДляЗаписи.СтавкаНДС), ОбъектДляЗаписи.СтавкаНДС, Справочники.Организации.ОсновнаяОрганизация.СтавкаНДСПоУмолчанию);
            КонецЕсли;
            
            ОбъектДляЗаписи.Записать();
            
            Если ЗначениеЗаполнено(СтрокаЗагрузки.ШтрихКод) Тогда
                НаборЗаписейШтрихКодыНоменклатуры = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
                НаборЗаписейШтрихКодыНоменклатуры.Отбор.ШтрихКод.Установить(СтрокаЗагрузки.ШтрихКод);
                НоваяСтрока = НаборЗаписейШтрихКодыНоменклатуры.Добавить();
                НоваяСтрока.Номенклатура = ОбъектДляЗаписи.Ссылка;
                НоваяСтрока.ШтрихКод = СтрокаЗагрузки.ШтрихКод;
                НаборЗаписейШтрихКодыНоменклатуры.Записать(Истина);
            КонецЕсли;
            
        ИначеЕсли ВидОперации = "Цены" Тогда
            
            Если НЕ ЗначениеЗаполнено(ОбъектДляЗаписи.Ссылка) Тогда
                
                ЗаполнитьЗначенияСвойств(ОбъектДляЗаписи, СтрокаЗагрузки);
                ОбъектДляЗаписи.НаименованиеПолное = СтрокаЗагрузки.Наименование;
                ОбъектДляЗаписи.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
                ОбъектДляЗаписи.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.ОсновнаяГруппа;
                ОбъектДляЗаписи.СчетУчетаЗапасов = ПланыСчетов.Управленческий.СырьеИМатериалы;
                ОбъектДляЗаписи.СчетУчетаЗатрат = ПланыСчетов.Управленческий.НезавершенноеПроизводство;
                ОбъектДляЗаписи.СпособПополнения = Перечисления.СпособыПополненияЗапасов.Закупка;
                ОбъектДляЗаписи.МетодОценки = Перечисления.МетодОценкиЗапасов.ПоСредней;
                ОбъектДляЗаписи.НаправлениеДеятельности = Справочники.НаправленияДеятельности.ОсновноеНаправление;
                ОбъектДляЗаписи.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас;
                ОбъектДляЗаписи.СтранаПроисхождения = СтранаПроисхождения;
                
                СтавкаНДС = НайтиСтавкуНДС(СтрокаЗагрузки.НДС);
                Если СтавкаНДС <>Неопределено Тогда
                    ОбъектДляЗаписи.СтавкаНДС = СтавкаНДС;
                Иначе
                    ОбъектДляЗаписи.СтавкаНДС = ?(ЗначениеЗаполнено(ОбъектДляЗаписи.СтавкаНДС), ОбъектДляЗаписи.СтавкаНДС, Справочники.Организации.ОсновнаяОрганизация.СтавкаНДСПоУмолчанию);
                КонецЕсли;
                
                ОбъектДляЗаписи.Записать();
                
            КонецЕсли;
            
            НаборЗаписейЦеныНоменклатуры = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
            НаборЗаписейЦеныНоменклатуры.Отбор.Период.Установить(?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата()));
            НаборЗаписейЦеныНоменклатуры.Отбор.ВидЦен.Установить(?(ЗначениеЗаполнено(ВидЦен), ВидЦен, Справочники.ВидыЦен.Оптовая));
            НаборЗаписейЦеныНоменклатуры.Отбор.Номенклатура.Установить(ОбъектДляЗаписи.Ссылка);
            НаборЗаписейЦеныНоменклатуры.Отбор.Характеристика.Установить(Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка());
            НоваяСтрока = НаборЗаписейЦеныНоменклатуры.Добавить();
            НоваяСтрока.Номенклатура = ОбъектДляЗаписи.Ссылка;
            НоваяСтрока.ВидЦен = ?(ЗначениеЗаполнено(ВидЦен), ВидЦен, Справочники.ВидыЦен.Оптовая);
            НоваяСтрока.Актуальность = Истина;
            НоваяСтрока.Период = ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата());
            НоваяСтрока.Цена = СтрокаЗагрузки.Цена;
            НоваяСтрока.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
            НаборЗаписейЦеныНоменклатуры.Записать(Истина);
 
        ИначеЕсли ВидОперации = "Остатки" Тогда
            
            Если НЕ ЗначениеЗаполнено(ОбъектДляЗаписи.Ссылка) Тогда
                
                ЗаполнитьЗначенияСвойств(ОбъектДляЗаписи, СтрокаЗагрузки);
                ОбъектДляЗаписи.НаименованиеПолное = СтрокаЗагрузки.Наименование;
                ОбъектДляЗаписи.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
                ОбъектДляЗаписи.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.ОсновнаяГруппа;
                ОбъектДляЗаписи.СчетУчетаЗапасов = ПланыСчетов.Управленческий.СырьеИМатериалы;
                ОбъектДляЗаписи.СчетУчетаЗатрат = ПланыСчетов.Управленческий.НезавершенноеПроизводство;
                ОбъектДляЗаписи.СпособПополнения = Перечисления.СпособыПополненияЗапасов.Закупка;
                ОбъектДляЗаписи.МетодОценки = Перечисления.МетодОценкиЗапасов.ПоСредней;
                ОбъектДляЗаписи.НаправлениеДеятельности = Справочники.НаправленияДеятельности.ОсновноеНаправление;
                ОбъектДляЗаписи.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас;
                ОбъектДляЗаписи.СтранаПроисхождения = СтранаПроисхождения;
                
                СтавкаНДС = НайтиСтавкуНДС(СтрокаЗагрузки.НДС);
                Если СтавкаНДС <>Неопределено Тогда
                    ОбъектДляЗаписи.СтавкаНДС = СтавкаНДС;
                Иначе
                    ОбъектДляЗаписи.СтавкаНДС = ?(ЗначениеЗаполнено(ОбъектДляЗаписи.СтавкаНДС), ОбъектДляЗаписи.СтавкаНДС, Справочники.Организации.ОсновнаяОрганизация.СтавкаНДСПоУмолчанию);
                КонецЕсли;
                
                ОбъектДляЗаписи.Записать();
                
            КонецЕсли;
            
            Если ЗначениеЗаполнено(СтрокаЗагрузки.НомерГТД) Тогда
                НоваяСтрока = ДокументВводОстатков.ЗапасыВРазрезеГТД.Добавить();
                НоваяСтрока.Номенклатура = ОбъектДляЗаписи.Ссылка;
                НоваяСтрока.Количество = СтрокаЗагрузки.Количество;
                НоваяСтрока.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
                СтранаПроисхождения = ОбъектДляЗаписи.Ссылка.СтранаПроисхождения;
                Если СтранаПроисхождения.Пустая() Тогда
                    Отказ = Истина;
                    Сообщить("Для позиции "+СокрЛП(НоваяСтрока.Номенклатура)+" не заполнена страна происхождения!");
                КонецЕсли;
                НоваяСтрока.СтранаПроисхождения = ОбъектДляЗаписи.Ссылка.СтранаПроисхождения;
                НоваяСтрока.НомерГТД = НайтиСоздатьНомерГТД(СтрокаЗагрузки.НомерГТД);
            КонецЕсли;
            
            НоваяСтрока = ДокументВводОстатков.Запасы.Добавить();
            НоваяСтрока.Номенклатура = ОбъектДляЗаписи.Ссылка;
            НоваяСтрока.Количество = СтрокаЗагрузки.Количество;
            НоваяСтрока.Цена = СтрокаЗагрузки.Цена;
            НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
            НоваяСтрока.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.шт;
            НоваяСтрока.СтруктурнаяЕдиница = ?(ЗначениеЗаполнено(Склад), Склад, Справочники.СтруктурныеЕдиницы.ОсновнойСклад);
            
        КонецЕсли;
        
    КонецЦикла;
    
    Если Отказ Тогда
        Сообщить("Во время загрузки произошли ошибки. Данные не будут загружены.");
        Возврат;
    КонецЕсли;
    
    Если ВидОперации = "Остатки" Тогда
        ДокументВводОстатков.Записать(РежимЗаписиДокумента.Проведение);
    КонецЕсли;
    
    
КонецПроцедуры
Ответ: Решил проблему таким способом!
duk, спасибо Вам большое!

Код 1C
1
2
3
4
5
6
7
8
9
10
11
Если ВидОперации = "РегНомера" Тогда 
            ОбъектДляЗаписи = Документы.итсЗагрузкаРегистраИТС.СоздатьДокумент();
            ОбъектДляЗаписи.Дата = ?(ЗначениеЗаполнено(Дата), Дата, ТекущаяДата());
            Для каждого СтрокаЗагрузки Из Объект.СписокЗагрузки Цикл
            ЗаполнитьЗначенияСвойств (ОбъектДляЗаписи, СтрокаЗагрузки);
            чл=ОбъектДляЗаписи.Приход.Добавить();
            чл.СерийныйНомер = СтрокаЗагрузки.РегНомер;
            
            КонецЦикла;
            ОбъектДляЗаписи.Записать();
            КонецЕсли;
Вопрос: Вывод картинки на печатную форму

Всем привет!

Я только начинаю программировать на 1С.
Помогите с выводом картинки из хранилища значения на печатную форму.

После прочтения мануалов, создал такой код:

Код 1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
&НаКлиенте
Процедура КартинкаПоФизЛицу(Команда)
    
    ТабДок = Новый ТабличныйДокумент;
        Макет = ПолучитьМакетНаСервере();
        Область1 = Макет.ПолучитьОбласть("Заголовок");
    Область2 = Макет.ПолучитьОбласть("Шапка");
 
        // Тут получаю ссылку на картинку, которая хранится в реквизитах справочника.
    СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеКартинки");
    
    //Тут создаю область на печатной форме под картинку (как я понял)
    Рисунок = Область2.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
    
        // Тут я устанавливаю значение области на макете, но получаю ошибку несоответствие типов
        Рисунок.Картинка = СсылкаНаКартинку;
 
      // Тут выполняю команду отобразить картинку на печатной форме (как я понял)
    Рисунок.Расположить(Область2.Области.Изо);
    
    
        ТабДок.Вывести(Область1);
    ТабДок.Вывести(Область2);
        ТабДок.Показать()
                    
КонецПроцедуры
 
 &НаСервере
 Функция ПолучитьМакетНаСервере()
     
    Объект1 = РеквизитФормыВЗначение("объект");
    Макет = Объект1.ПолучитьМакет("ПечатьКартинки"); 
    Возврат Макет;
         
КонецФункции
На толстом клиенте получаю ошибку "Несоответствие типов".

Подскажите алгоритм/механизм отображения картинки на печатной форме.

Заранее спасибо!

Добавлено через 1 час 17 минут
Please, help me
Ответ: ...
Не выходит
...
Чтото = Объект.Ссылка.ДанныеКартинки.Получить(); // - тут я получаю двоичные данные
(выглядят как 16-ричный код)
,
СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеКартинки"); // тут я получаю ссылку на картинку
(выглядит как то так e1cib/data/Справочник.Люди.ДанныеКартинки?ref=a5fa001bfc1d1b9311e0078de46a1140 )

Но при присвоении значения
Рисунок.Картинка = Чтото (тип - Двоичные данные) - Несоответствие типов
и
Рисунок.Картинка = СсылкаНаКартинку (ссылка на данные по картинки) - Тоже несоответствие типов

Как же все таки вывести картинку на макет ???

Добавлено через 29 минут
При чем если сделать через файл на диске:
Код 1C
1
2
3
Картинка1 = Новый Картинка("c:\temp\mario.jpg");
Рисунок.Картинка = Картинка1;
Рисунок.Расположить(ОбластьШапка.Область("R1C1:R4C4"));  
То печатает (выводит на форму)

Добавлено через 3 минуты
Урааа , получилось

Надо было вместо пути на диске - подсунуть переменную Чтото
Полученную через
Объект.Ссылка.ДанныеКартинки.Получить();
Вопрос: Выгрузка картинок номенклатуры

Добрый день!
Нужно выгрузить основную картинку каждой номенклатуры из каталога в базе в каталог на диске.

Код:
&НаКлиенте
Процедура ВыгрузитьКартинкиНоменклатуры(Команда)
    Если НЕ ЗначениеЗаполнено(КаталогФайла) Тогда
        Сообщить("Каталог файла не заполнен!");
        Возврат;
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(КаталогВБазе) Тогда
        Сообщить("Каталог в базе не заполнен!");
        Возврат;
    КонецЕсли;
    ТаблицаЗначений = ВыгрузитьКартинкиНоменклатурыНаСервере();
   
    Для каждого Стр Из ТаблицаЗначений Цикл
        Если Не ЗначениеЗаполнено(Стр.ФайлКартинки) Тогда
            Продолжить;
        КонецЕсли;
        Картинка = Стр.ФайлКартинки.ФайлХранилище.Получить();
        Если ТипЗнч(Картинка) = Тип("Картинка") Тогда
            Картинка.Записать(КаталогФайла + "\" + Стр.Артикул + "_" + Стр.Наименование + ".jpg");
        КонецЕсли;       
    КонецЦикла;
КонецПроцедуры

&НаСервереБезКонтекста
Функция  ВыгрузитьКартинкиНоменклатурыНаСервере()
    Запрос = Новый Запрос; //Вот так
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Код,
        |    Номенклатура.Наименование,
        |    Номенклатура.Артикул,
        |    Номенклатура.ФайлКартинки
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура";

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

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    ПеременнаяНаВозврат = "";
   
    ТаблицаЗначений = Новый ТаблицаЗначений;
    ТаблицаЗначений.Колонки.Добавить("Код");
    ТаблицаЗначений.Колонки.Добавить("Наименование");
    ТаблицаЗначений.Колонки.Добавить("Артикул");
    ТаблицаЗначений.Колонки.Добавить("ФайлКартинки");
   
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
               
        Стр = ТаблицаЗначений.Добавить();
        Стр.Код = ВыборкаДетальныеЗаписи.Код;
        Стр.Наименование = ВыборкаДетальныеЗаписи.Наименование;
        Стр.Артикул = ВыборкаДетальныеЗаписи.Артикул;
        Стр.ФайлКартинки = ВыборкаДетальныеЗаписи.ФайлКартинки;
       
    КонецЦикла;
   
    Возврат ТаблицаЗначений;
КонецФункции

&НаКлиенте
Процедура УстановитьКаталогФайла(Команда)
    Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.Заголовок = "Выберите каталог";
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        Каталог = ДиалогОткрытияФайла.Каталог;
    Иначе
    Предупреждение(НСтр("ru = 'Каталог не выбран!'"));
    КонецЕсли;
    КаталогФайла = Каталог;
КонецПроцедуры
Вот тут в Картинка не получаются данные из базы хотя основная картинка у номенклатуры есть:
Делаю все как указано в С-П когда получаю картинку из ХранилищеЗначения. Может картинки вообще не тут храняться? Посмотрел в отладчике, там вроде все корректно получается и обращаюсь к нужному реквизиту, где хранится картинка:
Ответ:
Хорошо подправлю код, меньше ошибок будет
Вчера уже сам решил вопрос, обратился к функции общего модуля:
Код:
Картинка =  ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(Номенклатура);
Спасибо за помощь!
--- Объединение сообщений, 13 янв 2017 ---
Не пойму каким образом "хранится в томах"? Файл картинки же просто записывается на диск.
--- Объединение сообщений, 13 янв 2017 ---
Темка вот эта?
Там немного не мой вопрос... но все-равно спасибо.
Вопрос: v7: Вызвать процедуру или функцию из картинки на форме, как?

Чего-то затупил конкретно... Собственно, сабж...
Подробнее: Форма(справочника, но, это не важно). В ней есть поле картинки. Как кликнув по картинке, вызвать процедуру модуля формы(в ней я хочу открывать картинку методом ЗапуститьПриложение(ПутьКФайлу))-???
В самой картинке есть только идентификатор... Чем отловить событие клика на этом поле?
Ответ: Понятно. Окна вне 1С, мне особо не мешают, зато открывают картинку в исход сделал вот так:

В глобальнике, потому, что используется в нескольких местах, кроме справочника:

// Влад 19.01.2018

Функция НормализоватьАртикул(Арт) Экспорт
    Рез    = СокрЛП(Арт);
    Рез    = СтрЗаменить(Рез,"\","_");
    Рез    = СтрЗаменить(Рез,"/","_");
    Возврат Рез;
КонецФункции

Функция ВернутьИмяФайлаКартинки(Код, Артикул) Экспорт
    ИмяФайлаКартинки = КаталогИБ() + СокрЛП(Константа.КаталогКартинок)+ "\" + СокрЛП(Код) + "_" + НормализоватьАртикул(Артикул) + ".jpg";
    Возврат ИмяФайлаКартинки;
КонецФункции    
// Конец Влад 19.04.2018

Функция убирает слэши из Артикула, меняет на нижние подчеркивания, иначе "общая файловая ошибка".

В форме справочника:

// Влад 19.01.2018

Процедура ЗагрузитьКартинку()
    ИмяФайлаКартинки = ВернутьИмяФайлаКартинки(Код, Артикул);
    Если ФС.СуществуетФайл(ИмяФайлаКартинки) = 1 Тогда
        Картинка.Загрузить(ИмяФайлаКартинки);    
    КонецЕсли;    
КонецПроцедуры

Процедура УдалитьКартинку()
    Если Вопрос("Вы уверены, что хотите удалить картинку?",4,10) = 6 Тогда
        ИмяФайлаКартинки = ВернутьИмяФайлаКартинки(Код, Артикул);    
        ФС.УдалитьФайл(ИмяФайлаКартинки);
        ПустКартинка = СоздатьОбъект("Картинка");
        Картинка.УстановитьКартинку(ПустКартинка);
        Форма.Обновить(0);
    КонецЕсли;    
КонецПроцедуры

Процедура ЗагрузитьКартинкуВБазу()
    ИмяФайлаКартинки = ВернутьИмяФайлаКартинки(Код, Артикул);
    Если ФС.СуществуетФайл(ИмяФайлаКартинки) = 1 Тогда
        Если Вопрос("Вы уверены, что хотите изменить картинку?",4,10) <> 6 Тогда
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;
    НоваяКартинка     = "";
    Если ФС.ВыбратьФайлКартинки(0,НоваяКартинка,КатЗагрКартинки,"Выберите файл картинки для текущего товара!","jpg",10) = 1 Тогда
        ФС.КопироватьФайл(КатЗагрКартинки + НоваяКартинка, ИмяФайлаКартинки, 0);    
    КонецЕсли;
    Картинка.Загрузить(ИмяФайлаКартинки);    
КонецПроцедуры

Процедура ПросмотрКартинки()
    ИмяФайлаКартинки = ВернутьИмяФайлаКартинки(Код, Артикул);
    ЗапуститьПриложение(ИмяФайлаКартинки);
КонецПроцедуры
// Конец работы с картинками Влад 19.04.2018


Картинки храню в папке, с именем заданным в константе, внутри ИБ.
Вопрос: Не могу вывести картинку на печать

Доброго времени суток.
Управляемое приложение. Конфигурация далека от типовой CRM., есть спр. номенклатура, есть спр Объект недвижимости.
Связывает их между собой рс .А_НоменклатураНедвижимость. В спр. Номенклатура есть картинка-тип справочник- номенк.прикрепленные файлы.
запрос=новый запрос;
запрос.Текст="ВЫБРАТЬ
| А_НоменклатураНедвижимость.Номенклатура.ФайлКартинки как Файл
|ИЗ
| РегистрСведений.А_НоменклатураНедвижимость КАК А_НоменклатураНедвижимость
|ГДЕ
| А_НоменклатураНедвижимость.ОбъектНедвижимости.Ссылка = &Ссылка";
запрос.УстановитьПараметр("ссылка",ссылканаобъект.объектнедвижимости);
рез=запрос.Выполнить().Выбрать();
если рез.Следующий() тогда

СправДопИнф=рез.файл;
Изображение=СправДопИнф.ФайлХранилище.получить();
ИзображениеОбласть = приложение1.Рисунки.кк;
_Картинка = Новый Картинка(изображение);
ИзображениеОбласть.Картинка=_Картинка;

конецесли;
в отладке рез.файл-ссылка на справочник .номенклатура присоединенные файлы.
в итоге область выводить пустой без картинки.
Ответ:
Если кто столкнется то вот так
запрос=новый запрос;
запрос.Текст="ВЫБРАТЬ
| А_НоменклатураНедвижимость.Номенклатура.ФайлКартинки как ФайлКартинки
|ИЗ
| РегистрСведений.А_НоменклатураНедвижимость КАК А_НоменклатураНедвижимость
|ГДЕ
| А_НоменклатураНедвижимость.ОбъектНедвижимости.Ссылка = &Ссылка";
запрос.УстановитьПараметр("ссылка",ссылканаобъект.объектнедвижимости);
Результат=запрос.Выполнить();
ВыборкаКартинки = Результат.Выбрать();

Пока ВыборкаКартинки.Следующий() Цикл
Если ВыборкаКартинки.ФайлКартинки <> Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка() Тогда

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


КонецЦикла;
табДок.Вывести(ПРИЛОЖЕНИЕ1);
Вопрос: Как отобразить картинку статуса в форме списка документа

Подскажите пожалуйста, если возможность в форме списка документа отображать картинки, которые будут меняться в зависимости от значения реквизита документа. Например Статус = "Выполнен" тогда отображается одна картинка, Статус = "В процессе" другая.
Ответ: Можно.
1. Для этого необходимо в форме списка установить галочку произвольный запрос на динамический список (основной реквизит "Список") и дописать там условие вида
1C
1
ВЫБОР КОГДА Статус = &Выполнен ТОГДА 0 КОГДА ... ТОГДА 1 И Т.Д. КОНЕЦ КАК Картинка
2. Заготовить картинку, в ней должны быть размещены несколько вариантов картинок, идущие друг за другом (как кадры). Нумерация картинок начинается с 0 (то, что добавляли в запросе).
3. вынести Список на форму и реквизиту Картинка установить в свойстве Вид: Поле картинки.
Надеюсь мысль ясна ; )