Как получить общую картинку 1с
Перейти к содержимому

Как получить общую картинку 1с

  • автор:

Как программно получить Картинку из базы и сохранить ее преобразовав в другой формат?

Распечатать

Распечатать

Как заполнить табличную часть формы программно? 8
Нужно по кнопке Заполнить — сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 10060 (0x0000274C): Попытка установить соединение была безуспешной 24
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает 🙂 И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 22
Данное обстоятельство может быть обусловлено многими причинами. Одна из них — неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1C: Enterprise Development Tools 52
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools — это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Посмотреть все результаты поиска похожих

Еще в этой же категории

Получить список Справочников конфигурации 2
НаКлиенте Процедура ПоКнопкеЧтениеИзМетаданных(Команда) // Вставить содержимое обработчика. Перем СписокСправочников; СписокСправочников = Новый СписокЗначений; СписокСправочников = СправочникиИзМетаданных(); Для Сч = 0 По СписокСправочников Получить список Документов конфигурации 2
//ЭлементыФормы.ОбъектПоиска — Поле Выбора на форме СписокВыбора = ЭлементыФормы.ОбъектПоиска.СписокВыбора; Для Каждого Документ Из Метаданные.Документы Цикл //Проверим, есть ли права на просмотр? Да- добавляем, Нет — пропускаем Если ПравоДосту Обход метаданных (полезные функции) 1
При написании небольших автоматизированных тестов часто надо обойти всю конфигурацию и проверить, например, для всех форм какое-нибудь свойство. Это все легко делается через свойство глобального контекста » Метаданные» , но чтоб дорбаться до обхода р Перебор Основных Реквизитов формы 0
//Перебор Основных Реквизитов формы Для Каждого Рек из ЭтаФорма.Метаданные().Реквизиты Цикл Сообщить(рек.Имя+» — » +рек.Синоним+» — » +Строка(рек.Тип)); КонецЦикла; // или так Для Каждого Рек из Метаданные().Реквизиты Цикл Сообщить(рек.Имя+» Функция устанавливает новое значение реквизита документа или справочника. 0
//функция устанавливает новое значение реквизита документа или справочника и задает вопрос, если новое значение не соответствует предыдущему Функция гЗначение(Ко,Атрибут,Значение) Экспорт Знач1=Ко.ПолучитьАтрибут(Атрибут); Знач2=Значение; //про Посмотреть все в категории Метаданные

Картинка в 1С 8.3 — программная работа

В этой статье я расскажу, как программно работать на управляемой форме с картинкой в 1С 8.3: загружать их на форму, хранить в базе и выводить картинку при открытии формы.

Для демонстрации работы с картинками решим простую задачу: в нашей условной базе имеется справочник Номенклатура, наш заказчик хочет, чтобы к каждой номенклатуре можно было привязать картинку этой номенклатуры. Реализуем эту задачу.

Первым делом у справочника Номенклатура создадим реквизит Картинка с типом ХранилищеЗначений.

Реквизит с типом ХранилищеЗначений

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

Сделаем управляемую форму элемента справочника, на которой реализуем следующий функционал: на форме будет размещено поле с картинкой, если картинка не хранится в справочнике, то оно будет пустое, а иначе при открытии формы в 1С необходимо будет получить картинку из базы автоматически, т.е. на форме нужно организовать вывод картинки. Пользователь может загрузить в 1С файл картинки, для этого он должен кликнуть на поле картинки, после этого будет открыта форма выбора файла формата jpg, а после выбора нужного файла, картинка появится на форме. При сохранении элемента, картинка должна будет записаться в базу.

Создадим управляемую форму элемента справочника, у этой формы создадим реквизит СсылкаНаКартинку с типом Строка.

Реквизит управляемой формы

Поместим этот реквизит на форму в виде поля, а вид у данного поля установим «Поле картинки».

Поле управляемой формы с видом Поле картинки

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

Свойство гиперссылка поля формы

Создадим клиентский обработчик для события Нажатие этого поля.

Событие нажатие поля формы

В этом обработчике напишем код, который будет вызывать диалог открытия файла с расширением jpg.

&НаКлиенте Процедура СсылкаНаКартинкуНажатие(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытия.ПолноеИмяФайла = ""; Фильтр = "Файл Jpg (*.jpg)|*.jpg"; ДиалогОткрытия.Фильтр = Фильтр; ДиалогОткрытия.МножественныйВыбор = Ложь; ДиалогОткрытия.Заголовок = "Выберете файл для загрузки"; ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗагрузкиФайла",ЭтаФорма); ДиалогОткрытия.Показать(ОписаниеОповещения); КонецПроцедуры 

Опишем процедуру ПослеЗагрузкиФайла, которую указали в описании оповещения, в этой процедуре, если пользователь выбрал файл, мы будем помещать его во временное хранилище при помощи метода НачатьПомещениеФайла.

&НаКлиенте Процедура ПослеЗагрузкиФайла(ВыбранныйФайл,ДопПараметр) Экспорт Если ВыбранныйФайл = Неопределено Тогда Возврат; КонецЕсли; ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтаФорма); НачатьПомещениеФайла(ОписаниеОповещения,, ВыбранныйФайл[0], Ложь, УникальныйИдентификатор); КонецПроцедуры 

Следующим шагом, необходимо в процедуре ПослеПомещенияФайла, которая указана в описании оповещения процедуры ПослеЗагрузкиФайла, присвоить реквизиту формы «СсылкаНаКартинку» адрес временного хранилища.

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

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

Для того, чтобы картинка хранилась в базе, нам необходимо сохранить картинку в реквизит объекта, делать мы это будем в событии формы ПередЗаписьюНаСервере. Создадим это событие.

Событие управляемой формы ПередЗаписьюНаСервере

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

&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ЭтоАдресВременногоХранилища(СсылкаНаКартинку) Тогда ФайлКартинки = ПолучитьИзВременногоХранилища(СсылкаНаКартинку); ТекущийОбъект.Картинка = Новый ХранилищеЗначения(ФайлКартинки); УдалитьИзВременногоХранилища(СсылкаНаКартинку); СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка"); КонецЕсли; КонецПроцедуры 

И последний штрих: нам нужно сделать так, чтобы при открытии формы, картинка появлялась на форме, если она есть в базе (в хранилище).

Для этого, создадим обработчик для события ПриСозданииНаСервере формы.

Событие ПриСозданииНаСервере управляемой формы

И в этом обработчике будем получать навигационную ссылку на картинку.

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) СсылкаНаКартинку = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"Картинка"); КонецПроцедуры 

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

Загрузка картинки на управляемую форму

Загрузка картинки на управляемую форму

Мой опыт преподавания показывает, что многие начинающие и не очень разработчики всё еще слабо программируют в управляемом приложении, теряются во многих вопросах.
Книга «Основы разработки в 1С: Такси» научила программировать под управляемым приложением 300+ начинающих программистов 1С.
И Вы обязательно освоите все тонкости разработки под управляемым приложением 1С 8.3.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Только для читателей моего блога,
промо-код на скидку в 150 рублей — blog

Для тех же, кто только начинает:
общие вопросы по разработке в 1С подробно и основательно даются в книге «Программировать в 1С за 11 шагов»

Стартуйте в изучении 1С программирования в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Только для читателей моего блога, промо-код на скидку в 150 рублей — blog

Эти книги плюс книга по разработке оперативного учёт имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

7 Replies to “Картинка в 1С 8.3 — программная работа”

Подскажыте плз а как зделать штоб к 1 товару из справочника номенклатура можна привязать несколько картинок товара не обезательно штоб оны отображались просто штоб были привязаны к одному товару. Вот пример кода который помещает одну картинку как из него зделать несколько картинок ? &НаКлиенте Процедура ПрикрепитьФайл(Команда) // ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); ДиалогОткрытияФайла.ПолноеИмяФайла = “”; ДиалогОткрытияФайла.Расширение = “”; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; // ДиалогОткрытияФайла.ВыбранныеФайлы = “”; ДиалогОткрытияФайла.Заголовок = “Выберите файлы”; Если ДиалогОткрытияФайла.Выбрать() Тогда ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; // Получение двоичные данные файла //ПутьКФайлу = ДиалогОткрытияФайла.Расширение; ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу); // Имя = Новый ДвоичныеДанные(ПутьКФайлу); //Разширение = Новый ДвоичныеДанные(ПутьКФайлу); // Передача двоичных данные на сервер ПрикрепитьФайлНаСервере(ДвоичныеДанные); Иначе Текст = “ru = “”Файл(ы) не выбран!””; en = “”File(s) not selected!”””; Предупреждение(НСтр(Текст)); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПрикрепитьФайлНаСервере(ДвоичныеДанные) // Трансформируем объект формы в справочник-объект ОбъектТекущий = РеквизитФормыВЗначение(“Объект”); // Присваиваем новое значение реквизиту “Данные” //РегистрыСведений.СопоставлениеДанных. = Новый ХранилищеЗначения(ДвоичныеДанные); ОбъектТекущий.Картинка = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.КартинкаИмя = Новый ХранилищеЗначения(Имя); //ОбъектТекущий.КартинкаРазширение = Новый ХранилищеЗначения(Разширение); //ОбъектТекущий.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); //ОбъектТекущий.РегистрыСведений.СопоставлениеДанных.Данные = Новый ХранилищеЗначения(ДвоичныеДанные); // Сохраняем изменения ОбъектТекущий.Записать(); // Данные = РегистрыСведений.СопоставлениеДанных.Данные; КонецПроцедуры

Как вытащить картинку из общих картинок?

Поместил картинку в метаданные,Общие Картинки. А вот как использовать общие картинки,не могу нигде найти. В большой книге (А.П.Габец) ничего ,кроме общих положений нет.Буду благодарен за помощь.

По теме из базы знаний

  • О встроенных моделях XDTO платформы 1С
  • Использование метафор в переговорах (Часть 1)
  • Формирование макета коллекции изображений
  • Дата
  • Дата
  • Рейтинг всех уровней
  • Рейтинг 1-го уровня
  • Древо развёрнутое
  • Древо свернутое

Свернуть все
2. natana 03.06.08 14:18 Сейчас в теме

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

3. Abadonna 3955 03.06.08 14:22 Сейчас в теме

Слушай, ну в Конфигуратор-то надо ж заглядывать 😉 Я вот еще 2 минуты назад не знал, как они там в 8-ке.
Кладешь на форму поле картинки, правая кнопка, «Свойства», выбираешь картинку в поле Картинка. Если разговор об общих, то из закладки «Из библиотеки»

4. bogdan51 03.06.08 14:42 Сейчас в теме
Картинку мне надо вывести в печатную форму.
5. Abadonna 3955 03.06.08 14:44 Сейчас в теме
Блин 😉 Таблица-Рисунки-Картинка.
В макете
6. bogdan51 03.06.08 15:02 Сейчас в теме
Макет не велено менять. В модуле надо вытащить.
7. bogdan51 03.06.08 15:25 Сейчас в теме

Таким кодом выводится рамка без рисунка.

Рисунок.Верх = 5;
Рисунок.Высота = 15;
Рисунок.Ширина = 41;
Рисунок.Лево = 53;
НашЛог = Метаданные.ОбщиеКартинки.ПрочиеАктивы;
Рисунок = НашЛог;
ТабДокумент.Вывести(ОбластьМакета);

Bolnov; Korotkij; + 2 – Ответить
8. bogdan51 04.06.08 08:30 Сейчас в теме

ВОТ КАК ПОЛУЧИЛОСЬ вставить картинку в печатную форму,не меняя МАКЕТ

Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 5;
Рисунок.Высота = 15;
Рисунок.Ширина = 41;
Рисунок.Лево = 153;
Карт = БиблиотекаКартинок.ПрочиеАктивы;
Рисунок.Картинка = Карт;
ТабДокумент.Вывести(ОбластьМакета);

Заменил ОбщиеКартинки на БиблиотекуКартинок,хотя в конфигурации объект Общие картинки

Xershi; Garik8866; deletel; SantiouS; BarsukM; Bolnov; Kutuzov; user8734; mailrum2004; OksanaSub; alina0587; Sandro1C; raystlin; pstrig; + 14 – Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *