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

Хранилище

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

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



> Извлечь ФайлКартинки 2 страниц V  < 1 2          
logist Подменю пользователя
сообщение 06.05.17, 16:04
Сообщение #21

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(kat2504 @ 06.05.17, 16:11) *
уже как только не пробовала.

Даже не представляю как пробовали, но точно совсем без понимания как это надо делать.

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

Только не надо тупо копипастить код, а потому писать тут что он не работает, думайте хоть чуть-чуть, или наймите программиста.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kat2504 Подменю пользователя
сообщение 10.05.17, 12:32
Сообщение #22

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

Не уже ли никто помочь не может?

Flexy Подменю пользователя
сообщение 10.05.17, 12:51
Сообщение #23

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

kat2504 @ Сегодня, 12:32 * ,
Выше написан рабочий код. Поставьте свои переменные и получите результат.
Или, что конкретно у Вас не получается?

logist Подменю пользователя
сообщение 10.05.17, 13:18
Сообщение #24

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Flexy @ 10.05.17, 13:51) *
Или, что конкретно у Вас не получается?

Думаю, надо взять код исходной процедуры, прочесть все её модификации по теме и написать результирующий код который должен сразу работать.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

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

Flexy @ Сегодня, 13:51 * ,
Есть документ КоммерческоеПредложение в нем табличная часть Оборудование в ней реквизиты Наименование(тип Справочники.Номенклатура), Фото (тип Справочники.НоменклатураПрисоединенныеФайлы) и т.д....

При заполнении строки Наименование происходит автоматическое заполнение всех остальных строк включая столбец Фото (но заполняется названием этого фото).

В справочнике Номенклатура есть реквизит ФайлКартинки (тип Справочники.НоменклатураПрисоединенныеФайлы) через него загружаются изображения

Все изображения хранятся в РегистрыСведений.ПрисоединенныеФайлы в котором есть Измерения ПрисоединенныйФайл и ресурс ХранимыйФайл (тип ХранилищеЗначения)

logist @ Сегодня, 14:18 * ,
Вот исходный код
 Процедура Печать(ТабДок, Ссылка) Экспорт
    //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
    Макет = Документы.КоммерческоеПредложение.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КоммерческоеПредложение.ВидПредложения,
    |    КоммерческоеПредложение.Дата,
    |    КоммерческоеПредложение.ИтогоСтоимость,
    |    КоммерческоеПредложение.Контрагент,
    |    КоммерческоеПредложение.Номер,
    |    КоммерческоеПредложение.СтоимостьОборудования,
    |    КоммерческоеПредложение.СтоимостьРабот,
    |    КоммерческоеПредложение.Оборудование.(
    |        НомерСтроки,
    |        Фото,
    |        Группа,
    |        Наименование,
    |        Описание,
    |        Количество,
    |        ЕдиницаИзмерения,
    |        Цена,
    |        Сумма
    |    ),
    |    КоммерческоеПредложение.РаботыУслуги.(
    |        НомерСтроки,
    |        Наименование,
    |        Количество,
    |        ЕдиницаИзмерения,
    |        Цена,
    |        Сумма
    |    )
    |ИЗ
    |    Документ.КоммерческоеПредложение КАК КоммерческоеПредложение
    |ГДЕ
    |    КоммерческоеПредложение.Ссылка В (&Ссылка)";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();


    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьОборудованиеШапка = Макет.ПолучитьОбласть("ОборудованиеШапка");
    ОбластьОборудование = Макет.ПолучитьОбласть("Оборудование");
    ОбластьРаботыУслугиШапка = Макет.ПолучитьОбласть("РаботыУслугиШапка");
    ОбластьРаботыУслуги = Макет.ПолучитьОбласть("РаботыУслуги");
    ТабДок.Очистить();


    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;


        ТабДок.Вывести(ОбластьЗаголовок);


        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());


        ТабДок.Вывести(ОбластьОборудованиеШапка);
        ВыборкаОборудование = Выборка.Оборудование.Выбрать();
        Пока ВыборкаОборудование.Следующий() Цикл
            ОбластьОборудование.Параметры.Заполнить(ВыборкаОборудование);
            ТабДок.Вывести(ОбластьОборудование, ВыборкаОборудование.Уровень());
            
        КонецЦикла;
        


        ТабДок.Вывести(ОбластьРаботыУслугиШапка);
        ВыборкаРаботыУслуги = Выборка.РаботыУслуги.Выбрать();
        Пока ВыборкаРаботыУслуги.Следующий() Цикл
            ОбластьРаботыУслуги.Параметры.Заполнить(ВыборкаРаботыУслуги);
            ТабДок.Вывести(ОбластьРаботыУслуги, ВыборкаРаботыУслуги.Уровень());
        КонецЦикла;


        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
КонецПроцедуры


Flexy @ Сегодня, 13:51 * ,
logist @ Сегодня, 14:18 * ,

Вставляю Ваш код

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

    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;

        ТабДок.Вывести(ОбластьЗаголовок);

        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());

        ТабДок.Вывести(ОбластьОборудованиеШапка);
        ВыборкаОборудование = Выборка.Оборудование.Выбрать();
        Пока ВыборкаОборудование.Следующий() Цикл
            ОбластьОборудование.Параметры.Заполнить(ВыборкаОборудование);
            ТабДок.Вывести(ОбластьОборудование, ВыборкаОборудование.Уровень());
        КонецЦикла;
        
        ТабДок.Вывести(ОбластьКартинки);
        ВыборкаКартинки = Выборка.Картинки.Выбрать();
        Пока ВыборкаКартинки.Следующий()Цикл
        ОбластьФото = Макет.ПолучитьОбласть("Картинки");
Запрос = Новый Запрос("ВЫБРАТЬ Файл.ХранимыйФайл    ИЗ   РегистрСведений.ПрисоединенныеФайлы КАК Файл   ГДЕ Файл.ПрисоединенныйФайл = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ВыборкаКартинки.Фото);
// СсылкаНаФайлКартинкаИзНоменклатуры - Это то что у вас Номенклатура.ФайлКартинка,
// т.е. "Номенклатура" замените на вашу ссылку номенклатуры, из кода не совсем понимаю где она у вас, если вообще есть
// или если Фото в запросе это оно, то  СсылкаНаФайлКартинкаИзНоменклатуры заменить на ВыборкаОборудование.Фото
Выборка = Запрос.Выполнить().Выбрать();
Если ВыборкаФайл.Следующий() Тогда
    ДвоичныеДанные = ВыборкаФайл.ХранимыйФайл.Получить();    
    Картинка = Новый Картинка(ДвоичныеДанные);
    ОбластьФото.Рисунки.Фото.Картинка = Картинка;
    ТабДок.Вывести(ОбластьФото);
    ТабДок.Показать();
КонецЕсли;
КонецЦикла;
    

        ТабДок.Вывести(ОбластьРаботыУслугиШапка);
        ВыборкаРаботыУслуги = Выборка.РаботыУслуги.Выбрать();
        Пока ВыборкаРаботыУслуги.Следующий() Цикл
            ОбластьРаботыУслуги.Параметры.Заполнить(ВыборкаРаботыУслуги);
            ТабДок.Вывести(ОбластьРаботыУслуги, ВыборкаРаботыУслуги.Уровень());
        КонецЦикла;

        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
КонецПроцедуры


Выдает ошибки при проверке модуля
{Документ.КоммерческоеПредложение.МодульМенеджера(80,6)}: Переменная не определена (ВыборкаФайл)
Если <<?>>ВыборкаФайл.Следующий() Тогда (Проверка: Сервер)
{Документ.КоммерческоеПредложение.МодульМенеджера(81,22)}: Переменная не определена (ВыборкаФайл)
ДвоичныеДанные = <<?>>ВыборкаФайл.ХранимыйФайл.Получить(); (Проверка: Сервер)


logist @ Сегодня, 14:18 * ,
Меняю переменную
ТабДок.Вывести(ОбластьКартинки);
        ВыборкаКартинки = Выборка.Картинки.Выбрать();
        Пока ВыборкаКартинки.Следующий()Цикл
        ОбластьФото = Макет.ПолучитьОбласть("Картинки");
Запрос = Новый Запрос("ВЫБРАТЬ Файл.ХранимыйФайл    ИЗ   РегистрСведений.ПрисоединенныеФайлы КАК Файл   ГДЕ Файл.ПрисоединенныйФайл = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", ВыборкаКартинки.Фото);
// СсылкаНаФайлКартинкаИзНоменклатуры - Это то что у вас Номенклатура.ФайлКартинка,
// т.е. "Номенклатура" замените на вашу ссылку номенклатуры, из кода не совсем понимаю где она у вас, если вообще есть
// или если Фото в запросе это оно, то  СсылкаНаФайлКартинкаИзНоменклатуры заменить на ВыборкаОборудование.Фото
Выборка = Запрос.Выполнить().Выбрать();
Если ВыборкаКартинки.Следующий() Тогда
    ДвоичныеДанные = ВыборкаКартинки.ХранимыйФайл.Получить();    
    Картинка = Новый Картинка(ДвоичныеДанные);
    ОбластьФото.Рисунки.Фото.Картинка = Картинка;
    ТабДок.Вывести(ОбластьФото);
    ТабДок.Показать();
КонецЕсли;
КонецЦикла;


Синтаксических ошибок не обнаружено!

При попытке печати
{Документ.КоммерческоеПредложение.МодульМенеджера(71)}: Поле объекта не обнаружено (Картинки)
ВыборкаКартинки = Выборка.Картинки.Выбрать();





logist @ 06.05.17, 17:04 * ,

"из кода не совсем понимаю где она у вас, если вообще есть"

Вы скажите что надо посмотреть я посмотрю. Потому, что я сама понять уже не могу где оно сидит

Картинки загружаются через Номенклатуру, реквизит ФайлКартинки (тип.НоменклатураПрисоединенныеФайлы)
В НоменклатураПрисоединенныеФайлы есть реквизит ФайлХранилище (тип ХранилищеЗначения)

Все изображения хранятся в регистреСведений ПрисоединенныеФайлы в неместь измерения ХранимыйФайл (тип ХранилищеЗначения)


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

kat2504 Подменю пользователя
сообщение 10.05.17, 15:11
Сообщение #26

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

Пробую так

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

Синтаксических ошибок не обнаружено!

При попытке печати
{Документ.КоммерческоеПредложение.МодульМенеджера(78)}: Ошибка при вызове метода контекста (Выполнить)
ВыборкаФайл = Запрос.Выполнить().Выбрать();
по причине:
{(1, 103)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ВЫБРАТЬ Файл.ХранимыйФайл ИЗ РегистрСведений.ПрисоединенныеФайлы КАК Файл ГДЕ Файл.ПрисоединенныйФайл <<?>>= &Ссылка

Сообщение отредактировал logist - 10.05.17, 15:14

logist Подменю пользователя
сообщение 10.05.17, 15:16
Сообщение #27

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(kat2504 @ 10.05.17, 16:11) *
Пробую так

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

Цитата(kat2504 @ 10.05.17, 16:11) *
Синтаксических ошибок не обнаружено!

Эта функция проверяет лишь "явный" код, переменные и результаты их образования она не может проверить. В вашем случае не надо описаться на её ответ о том, что ошибок нет.

Сообщение отредактировал Vofka - 10.05.17, 15:48


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kat2504 Подменю пользователя
сообщение 10.05.17, 17:23
Сообщение #28

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

logist @ Сегодня, 16:16 * ,
Цитата
Прекращайте заниматься ерундой, вы без понимания дела тыкаетесь, подождите пока кто-то напишет рабочий код.


Я действительно, с выводом картинок столкнулась впервые. Многое уже перепробовала, но не получается ни как. Поэтому и прошу помощи.
Если вы можете помочь, буду очень благодарна.

kat2504 Подменю пользователя
сообщение 12.05.17, 9:57
Сообщение #29

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

Люди помогите кто может!!!!

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


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

 

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