7.7 Вставка картинки из файла

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем knizhnikv, 2 ноя 2009.

  1. TopicStarter Overlay
    knizhnikv
    Offline

    knizhnikv

    Регистрация:
    2 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Есть обрабока ПечатьЭтикетки, в ней имеется печатная форма, в неё необходимо загружать небольшую картинку (логотип).
    что я делал: делал вставку картинки ВСТАВИТЬ Картинку из файла, но, на форме она отображается, но необходимо её менять, т.е. в коде модуля нужно её менять.

    Как обращаться к этому объекту?

    понятно что в коде программы можно написать

    рис = СоздатьОбъект("Картинка");
    рис.Загрузить("C:\1.bmp");

    как связать объект который отображается на печатной форме с созданным объектом "рис".
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Вставить в шаблон нужные логотипы и использовать секции
  3. TopicStarter Overlay
    knizhnikv
    Offline

    knizhnikv

    Регистрация:
    2 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    А все таки как загрузить картинку?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    вставить картинку можно только в объект картинка...
    сначала надо будет сделать ячейку потом ее присоединять, и вставлять в эту ячейку картинку

    определяешь что
    за картинку надо грузить и делаешь:
    моя_картинка.Загрузить("имя картинки");

    где:
    моя_картинка - идентификатор объекта "картинка" в таблице;
    "имя картинки" - имя картинки может быть: идентификатор картинки в библиотеке картинок или имя файла.
  5. TopicStarter Overlay
    knizhnikv
    Offline

    knizhnikv

    Регистрация:
    2 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Я чуть чуть не догоняю.

    идентификатор "моя_картинка" где храниться, откуда её брать?

    Я должен в ячейки таблицы написать "моя_картинка" и определить что это ячейка выражение, а потом делать создать объект типа "картинка" и затем грузить, или нужно сделать операцию вставить Картинку и тогда в таблице будет отображаться графический объект картинка, но где тогда взять у этого графическго объекта идентификатор???
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    нет - идентификатор задавайте в самой таблице (вверу слева) ИМЯ области
  7. TopicStarter Overlay
    knizhnikv
    Offline

    knizhnikv

    Регистрация:
    2 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Новерно я совесем тупой:)

    Идентификатор задавать для ячейки или для графического объекта который находиться в таблице?

    Пробовал так: имеется рисунок в таблице его имя D34, меняю на рисунок1

    затем делаю в коде программы

    рисунок1.загрузить("C:\Pic\2.bmp");

    Система говорит что переменная не опеределена.

    делаю подругому
    Рисунок1=СоздатьОбъект("Картинка");
    Рисунок1.Загрузить("C:\Pic\2.bmp");

    печатаю этикетку графический объект пустой....

    если задать имя ячейки и делаю тоже самое что и с графическим объектом, такая же реакция.

    Я чую что делаю не правильно....
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    СДЕЛАЙ ТАК:

    1) вставляешь на таблицу объект - картинка. В свойстве картинки на закладке текст прописываешь:
    ВыводКартинки(<Таблица>.ТекущийОбъект)

    где(<Таблица> - объект типа "Таблица", который ты создаешь

    Код:
    Перем ИмяФайла;
    
    процедура ВыводКартинки(Объект)
    Если ПустоеЗначение(ИмяФайла)=0 тогда
    Объект.Загрузить(ИмяФайла);
    КонецЕсли;
    КонецПроцедуры
    
    
    Процедура Сформировать()
    Т=создатьобъект("Таблица");
    //выводим первую картинку
    ИмяФайла="Картинка1.bmp";
    т.Вывести();
    Т.Показать();
    
    //выводим вторую картинку
    ИмяФайла="Картинка2.bmp";
    т.Вывести();
    Т.Показать();
    
    КонецПроцедуры
    
    
    

    Можно и проще

    Код:
    Т.ТекущийОбъект.Загрузить(ИмяФайла) 
    
    
    
    Но в этом случае ты на 100% должен быть уверен что файл существует
  9. TopicStarter Overlay
    knizhnikv
    Offline

    knizhnikv

    Регистрация:
    2 ноя 2009
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Наконецто, большое СПАСИБО
  10. NovInNik
    Offline

    NovInNik Опытный в 1С

    Регистрация:
    12 ноя 2007
    Сообщения:
    195
    Симпатии:
    1
    Баллы:
    29
    В продолжении данного вопроса, дабы не создавать новую тему.
    Каким образом осуществить печать табличной части документа, чтобы у каждого элемента распечатывалось существующее изображение, а если оно отсутствует то пустое.
    Интересует сам код перебора и вывода. Замысел есть у самого, буду пробовать. Может просто кто сталкивался.
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    что вы понимаете под "пустое" - просто перед выводом секции очищать объект и заполнять только если есть. Вот и все
  12. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    А можно поподробнее Что делать.
    У меня 8 файлов - картинок . Нужно чтобы при печати выводились те картинки, которые указаны.
    Пример в справочнике стоит флаг на картинке 1 и 4 . При печати должны быть именно картинки 1 и 4 в соответствующих полях.
    Всего будет 3 поля. Карт1 в 1 поле, карт2 во 2 поле, 3 поле пустое так как 3 картинка не выбрана.
  13. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Вроде разобрался.
  14. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    С одной картинкой всё великолепно. А как сделать еще с 2-мя картинками?
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    д.б. на одном листе или что?
  16. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Как я писал выше. В общем сделал ещё в пятницу.
    Код:
    Процедура ВыводКартинки(Объект)
        Если ПустоеЗначение(ИмяФайла)=0 тогда
        Объект.Загрузить(ИмяФайла);
        КонецЕсли;
    КонецПроцедуры
    //*******************************************
    Процедура ВыводКартин(Картин)
        Если ПустоеЗначение(ИмяФайл)=0 тогда
        Картин.Загрузить(ИмяФайл);
        КонецЕсли;
    КонецПроцедуры
    
    //*******************************************
    Процедура ВыводКарт(Карт)
        Если ПустоеЗначение(ИмяФайлик)=0 тогда
        Карт.Загрузить(ИмяФайлик);
        КонецЕсли;
    КонецПроцедуры
    
    Процедура Сформировать()
        Таб = СоздатьОбъект("Таблица");
                Если Кнопка1=1 Тогда
                    ИмяФайла="путь\2.bmp";
                КонецЕсли;     
                Если Кнопка2=1 Тогда
                    ИмяФайл="путь\2.bmp";
                КонецЕсли;     
                Если Кнопка3=1 Тогда
                    ИмяФайлик="путь\2.bmp";
                КонецЕсли;     
    ИмяФайлик=""; если без рисунка
    В свойстве картинок прописываем ВыводКартинки(Таб.ТекущийОбъект)
    где ВыводКартинки - название процедуры
    
    
    Может кому понадобится
  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    зачем три процедуры, когда можно использовать одну?
  18. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    У меня в одной не желало работать. На объект ругалось все время. Сделал в 3 . Ругаться перестало.
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    какая ошибка была?
  20. Николай7
    Offline

    Николай7

    Регистрация:
    16 июл 2014
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    Уже не помню. На таблицу и значения ругалось, те что в картинке прописаны. Якобы нет таких.

Поделиться этой страницей