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

Хранилище

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

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



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

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

Написала вот такой код, все работает, ошибок не выдает, не извлекает только Фото.

&НаКлиенте
Процедура ОборудованиеНаименованиеПриИзменении(Элемент)
        Стр=Элементы.Оборудование.ТекущиеДанные;
     Стр.ЕдиницаИзмерения = ИзвлечьРеквизит(Стр.Наименование,"ЕдиницаИзмерения");
        Стр.Описание = ИзвлечьРеквизит(Стр.Наименование,"Комментарий");
        Стр.Группа = ИзвлечьРеквизит(Стр.Наименование,"Родитель");
        Стр.Фото = ИзвлечьРеквизит(Стр.Наименование,"ФайлКартинки");
КонецПроцедуры

&НаСервереБезКонтекста
Функция ИзвлечьРеквизит(Ссылка,ИмяРеквизита)  
    Возврат Ссылка[ИмяРеквизита];
КонецФункции


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

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


 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 04.05.17, 8:20

Bernet Подменю пользователя
сообщение 03.05.17, 23:11
Сообщение #2

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 319 раз
Рейтинг: 0

kat2504 @ Вчера, 22:16 * ,
спать ложитесь, завтра разберемся


Сообщение отредактировал Vofka - 04.05.17, 8:20


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Petre Подменю пользователя
сообщение 04.05.17, 8:28
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

kat2504 @ Вчера, 22:16 * ,
И что же говорит отладчик?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

logist Подменю пользователя
сообщение 04.05.17, 8:40
Сообщение #4

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

Цитата(kat2504 @ 03.05.17, 22:16) *
При заполнении столбца Наименование нужно автоматическое заполнение остальных столбцов,

Для каких целей? Если просто отобразить, то для этого не надо писать код, можно разместить в таблице поля у которых будет путь к данным вида "Оборудование.Наименование.ЕдиницаИзмерения"


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

kat2504 Подменю пользователя
сообщение 04.05.17, 18:38
Сообщение #5

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

Petre @ Сегодня, 9:28 * ,
Отладчик ошибок не выдает, В самой программе все заполняет кроме Столбца Фото, и также ошибок не выдает, проверяла фото есть в номенклатуре


logist @ Сегодня, 9:40 * ,

Если просто в Документе прописываешь путь к данным, в документе отображает, но на печать не выводит, пустую строку, а мне надо чтобы при необходимости могла еще и распечатать этот документ с изображениями

Petre Подменю пользователя
сообщение 05.05.17, 8:14
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

kat2504 @ Вчера, 19:38 * ,
Отладчик не для выдачи ошибок, а для отладки: пошаговой проверки выполнения кода.
Проверьте значение источника и приемника после присвоения.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

kat2504 Подменю пользователя
сообщение 05.05.17, 10:52
Сообщение #7

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

Petre @ Сегодня, 9:14 * ,
Так все теперь отображает все видит, но вместо вывода изображения у меня что в документ, что на печать выводит название этой Картинки

Мне в принципе по сути надо чтобы само изображение выводилось при печати этого документа

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

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

Цитата(kat2504 @ 04.05.17, 19:38) *
Если просто в Документе прописываешь путь к данным, в документе отображает, но на печать не выводит, пустую строку, а мне надо чтобы при необходимости могла еще и распечатать этот документ с изображениями

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

Цитата(kat2504 @ 05.05.17, 11:52) *
но вместо вывода изображения у меня что в документ, что на печать выводит название этой Картинки

Вы не сделали вывод картинки в процедуре формирующей печатную форму, указание просто ссылки ничего не даст (на случай если вы делали через Конструктор печатной формы), необходимо написать код который извлекает картинку и помещает её в область табличного документа.


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

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

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

logist @ Сегодня, 14:27 * ,
А не подскажите мне такой код? Я с Картинками столкнулась впервые

logist @ Сегодня, 14:27 * ,
Делала через конструктор, выдал вот такой код в модуль менеджере, Что мне в нем надо дописать чтобы картинку вывести на печать

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

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

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

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

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

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

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

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

Bernet Подменю пользователя
сообщение 05.05.17, 16:41
Сообщение #10

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 319 раз
Рейтинг: 0

kat2504 @ Сегодня, 17:19 * ,
во-первых, в табличном документе в макете надо добавить в область печати объект "Картинка" и назвать его например "ТоварКартинка",
дальше в коде при формировании табличного документа необходимо указать путь к картинке, примерно так:
ТабДок = Новый ТабличныйДокумент; 
Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой");
Картинка = Новый Картинка(ПутьККартинке);
ОбластьКартинки.Рисунки.ТоварКартинка.Картинка = Картинка;
ТабДок.Вывести(ОбластьКартинки);
ТабДок.Показать();


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

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

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

Bernet @ Сегодня, 17:41 * ,

В Табличном документе в макете в области печати у меня есть объект "Фото" и он так и называется

Далее в модуль менеджер мне надо внести ваш код? В моем случае он должен такой получиться?

ТабДок = Новый ТабличныйДокумент; 
Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
ОбластьФото = Макет.ПолучитьОбласть("ОбластьСФото");
Фото = Новый Фото(ПутьКФото);
ОбластьФото.Рисунки.Фото.Фото = Фото;
ТабДок.Вывести(ОбластьФото);
ТабДок.Показать();


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

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

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

Bernet @ Сегодня, 17:41 * ,

тьфу совсем торможу
ТабДок = Новый ТабличныйДокумент; 
Макет = ОбработкаОбъект.ПолучитьМакет("Макет");
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой");
Картинка = Новый Картинка(ПутьККартинке);
ОбластьКартинки.Рисунки.Фото.Картинка = Картинка;
ТабДок.Вывести(ОбластьКартинки);
ТабДок.Показать();


Так должно получитьтся?

kat2504 Подменю пользователя
сообщение 05.05.17, 20:02
Сообщение #13

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

kat2504 @ Сегодня, 19:44 * ,

Но тогда при проверке модуля выдает ошибки:
{Документ.КоммерческоеПредложение.МодульМенеджера(68,9)}: Переменная не определена (ОбработкаОбъект)
Макет = <<?>>ОбработкаОбъект.ПолучитьМакет("Макет"); (Проверка: Сервер)
{Документ.КоммерческоеПредложение.МодульМенеджера(70,27)}: Переменная не определена (ПутьККартинке)
Картинка = Новый Картинка(<<?>>ПутьККартинке); (Проверка: Сервер)

logist Подменю пользователя
сообщение 05.05.17, 22:06
Сообщение #14

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

Цитата(kat2504 @ 05.05.17, 21:02) *
Но тогда при проверке модуля выдает ошибки:

Наверное не надо тупо копипастить код.

Макет = ОбработкаОбъект.ПолучитьМакет("Макет");

замените на
Документ.КоммерческоеПредложение.ПолучитьМакет("Макет");


Ну а
Картинка = Новый Картинка(ПутьККартинке);

Надо бы "ПутьККартинке" задать. Тут надо понимать как она хранится, в базе или на диске, в справочнике или в регистре


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

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

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

logist @ Сегодня, 23:06 * ,
Ну а
Картинка = Новый Картинка(ПутьККартинке);

Надо бы "ПутьККартинке" задать. Тут надо понимать как она хранится, в базе или на диске, в справочнике или в регистре

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

Я создала документ КоммерческоеПредложение
В нем есть табличная часть Оборудование с реквизитами: Наименование(тип Номенклатура), и Фото (тип Строка), и все остальные
Все остальные реквизиты для автоматического заполнения таблицы берутся из справочника Номенклатура

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

Какой путь мне надо прописать?




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

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

Цитата(kat2504 @ 06.05.17, 0:06) *
Какой путь мне надо прописать?

Цитата(logist @ 05.05.17, 23:06) *
Тут надо понимать как она хранится, в базе или на диске, в справочнике или в регистре

Вангую, ожидайте...


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

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

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

logist @ Сегодня, 1:42 * ,
Конфигурация Сервисный центр 1.6
1С 8.3


kat2504 @ Сегодня, 2:00 * ,
Вы скажите что надо посмотреть я посмотрю.
Храниться на базе
А вот в регистре или справочнике я ХЗ, потому что есть РегистрСведений.ПрисоединенныеФайлы и Справочник.НоменклатураПрисоединенныеФайлы

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

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

Цитата(kat2504 @ 06.05.17, 2:09) *
Конфигурация Сервисный центр 1.6

Не знаком. Посмотрите в предприятии или запросом, если в РС ПрисоединенныеФайлы есть записи - значит там, если нет, то в каком реквизите справочника хранится сама картинка, он имеет тип ХранилищеЗначения


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

kat2504 Подменю пользователя
сообщение 06.05.17, 7:56
Сообщение #19

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

logist @ Сегодня, 2:59 * ,
Я нашла где они сидят в РегистрСведений ПрисоединенныеФайлы в нем есть ресурс ХранимыйФайл тип ХранилищеЗначания

logist @ Сегодня, 2:59 * ,
ТабДок = Новый ТабличныйДокумент; 
Макет = Документы.КоммерческоеПредложение.ПолучитьМакет("Печать");
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой");
Картинка = Новый Картинка(ПрисоединенныеФайлы.ХранимыйФайл);
ОбластьКартинки.Рисунки.Фото.Картинка = Картинка;
ТабДок.Вывести(ОбластьКартинки);
ТабДок.Показать();


Получился вот такой код, отладчик ошибок не выдает
При нажатии на печать выдает ошибку
{Документ.КоммерческоеПредложение.МодульМенеджера(69)}: Ошибка при вызове метода контекста (ПолучитьОбласть)
ОбластьКартинки = Макет.ПолучитьОбласть("ОбластьСКартинкой");
по причине:
Область не найдена: ОбластьСКартинкой


logist @ Сегодня, 2:59 * ,
Исправила код и получилось вот так
    ТабДок = Новый ТабличныйДокумент; 
Макет = Документы.КоммерческоеПредложение.ПолучитьМакет("Печать");
ОбластьФото = Макет.ПолучитьОбласть("Оборудование");
Картинка = Новый Картинка(ПрисоединенныеФайлы.ХранимыйФайл);
ОбластьФото.Рисунки.Фото.Картинка = Картинка;
ТабДок.Вывести(ОбластьФото);
ТабДок.Показать();


Отладка проходит, при попытке печали опять ошибка
{Документ.КоммерческоеПредложение.МодульМенеджера(70)}: Поле объекта не обнаружено (ХранимыйФайл)
Картинка = Новый Картинка(ПрисоединенныеФайлы.ХранимыйФайл);

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

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

kat2504 @ Сегодня, 8:56 * ,

Как это путь к картинке прописать, уже как только не пробовала. Может есть мысли какие нибудь?

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


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

 

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