Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 05:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Не работает код из книжки  (Прочитано 4706 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Andrej23

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-28
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток.

Пробую код из книжки и столкнулся с такой проблемой: сделал форму элемента справочника, в справочник добавил реквизит КартинкаТовара с типом ХранилищеЗначения. На форму элемента повесил кнопку с вызовом команды формы для загрузки картинки в КартинкаТовара.
Конфигуратор ругается на то, что неизвестен тип значения. Подскажите пожалуйста где ошибка. 1с 8.2
&НаКлиенте
Процедура ЗагрузитьКартинку1(Команда)
// Вставить содержимое обработчика.
Режим = РежимДиалогаВыбораФайла.Открытие;
Фильтр = "Текст(*.*)|*.*";
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите картинку";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
КартинкаТовара = ХранилищеКартинки;
КонецЕсли
КонецПроцедуры


Оффлайн Andrej23

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-28
  • Сайт: 
  • Профессия: Ученик 1С
Вот в этой строке:
ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);

Тип не определен (ХранилищеЗначения)
      ХранилищеКартинки = Новый <<?>>ХранилищеЗначения(ВыбраннаяКартинка);       (Проверка: Тонкий клиент)

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
ХранилищеЗначения (ValueStorage)
На основании значения
Синтаксис:

Новый ХранилищеЗначения(<Значение>, <АлгоритмСжатияДанных>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Значение, которое должно быть помещено в хранилище.
<АлгоритмСжатияДанных> (необязательный)

Тип: СжатиеДанных.
Задает степень сжатия данных.
Описание:

Создает объект ХранилищеЗначения и помещает в него заданное значение.
Конструктор доступен только в режиме запуска "Толстый клиент", на сервере и внешнем соединении.

Оффлайн DmitriyF

  • *****
  • Сообщений: 729
  • РЕПУТАЦИЯ: 48
  • КПД: 7%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
&НаКлиенте
Процедура ЗагрузитьКартинку1(Команда)
   // Вставить содержимое обработчика.
#Если Сервер ИЛИ ТолстыйКлиент Тогда
   Режим = РежимДиалогаВыбораФайла.Открытие;
   Фильтр = "Текст(*.*)|*.*";
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   ДиалогОткрытияФайла.Фильтр = Фильтр;
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите картинку";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
      ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
      ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
      КартинкаТовара = ХранилищеКартинки;
   КонецЕсли
#Иначе
Вызов процедуры на сервере
#КонецЕсли
КонецПроцедуры

Нет под рукой 1с но вроде должно быть как то так.

Оффлайн Andrej23

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-28
  • Сайт: 
  • Профессия: Ученик 1С
Сделал, но не работает

&НаСервере
Процедура ЗагрузитьКартинку123(Команда)
   #Если Сервер ИЛИ ТолстыйКлиент Тогда
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   ДиалогОткрытияФайла.Фильтр = "Текст(*.*)|*.*";
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите картинку";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
      ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
     ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
      КартинкаТовара = ХранилищеКартинки;
   КонецЕсли
#Иначе
#КонецЕсли
КонецПроцедуры
(пришлось без "code" т.к. переносы не переносятся).

В строке
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

конфигуратор пишет ту же ошибку:
Тип не определен (ДиалогВыбораФайла)
   ДиалогОткрытияФайла = Новый <<?>>ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); (Проверка: Сервер)


Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
&НаКлиенте
Процедура ЗагрузитьКартинку123(Команда)
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   ДиалогОткрытияФайла.Фильтр = "Текст(*.*)|*.*";
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите картинку";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
      ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
        #Если Сервер ИЛИ ТолстыйКлиент Тогда
            ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
            КартинкаТовара = ХранилищеКартинки;
        #Иначе
            ХранилищеНаСервере(ВыбраннаяКартинка);
        #КонецЕсли
   КонецЕсли
КонецПроцедуры

&НаСервере
Процедура ХранилищеНаСервере(ВыбраннаяКартинка)
     ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
      КартинкаТовара = ХранилищеКартинки;
КонецПроцедуры;

Оффлайн Andrej23

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-28
  • Сайт: 
  • Профессия: Ученик 1С
Спасибо, теперь загрузка проходит без ошибки.

Подскажите еще пожалуйста, а можно на эту же форму после загрузки вывести загруженную в реквизит КартинкаТовара картинку?

Пробовал сделать на форме реквизит Декорация1 (поле картинки), но она ссылается на строковой реквизит с путем к файлу и где-то ошибся - код почему-то не распознает реквизит справочника КартинкаТовара (тип ХранилищеЗначения).

Пробовал вот так:

&НаКлиенте
Процедура ЗагрузитьКартинку123(Команда)  //загружает картинку в реквизит справочника КартинкаТовара.
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   ДиалогОткрытияФайла.Фильтр = "Текст(*.*)|*.*";
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите картинку";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
      ВыбраннаяКартинка = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла);
        #Если Сервер ИЛИ ТолстыйКлиент Тогда
            ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
            КартинкаТовара = ХранилищеКартинки;
        #Иначе
            ХранилищеНаСервере(ВыбраннаяКартинка);
        #КонецЕсли
   КонецЕсли
КонецПроцедуры

Процедура ПриОткрытии(Отказ) //здесь хотел сделать загрузку картинки на форму в реквизит Декорация1 при открытии формы элемента
   КартинкаТов = Новый Картинка();
   ЗагрКартинки(КартинкаТов);
Если КартинкаТов <> Неопределено Тогда
   Элементы.Декорация1.Картинка = КартинкаТов;
КонецЕсли
КонецПроцедуры 


&НаСервере
Процедура ХранилищеНаСервере(ВыбраннаяКартинка)
     ХранилищеКартинки = Новый ХранилищеЗначения(ВыбраннаяКартинка);
     КартинкаТовара = ХранилищеКартинки;
КонецПроцедуры;
 
Процедура ЗагрКартинки(КартинкаТов)
   КартинкаТов = КартинкаТовара.Получить();
КонецПроцедуры;

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
см. решение по з.5.2 из сборника

Оффлайн Andrej23

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-12-28
  • Сайт: 
  • Профессия: Ученик 1С
Огромное спасибо, буду разбираться :)


Теги: картинка 
 

Не работает метод Сдвинуть() по отношению к программно добавляемой колонке1С:Предприятие 8.3 (8.3.10.2561) Управление производственным предприятием, редакция 1.4 Приветствую, я добавляю программно свою колонку в методе ПриОткрытии() модуля формы, вот так

Автор InsiderРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 291
Последний ответ 21 Сен 2017, 10:33
от Insider
Не работает структура подчиненности документов "Требование-накладная" и "Передач

Автор sv_stas_svРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 4100
Последний ответ 10 Мар 2011, 07:36
от sv_stas_sv
Дин.список отбор данных - не работает код при тех же данных

Автор Аля ТинаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 103
Последний ответ 13 Дек 2017, 09:15
от Аля Тина
Не работает кнопка "установить интервал дат"

Автор depp_juniorРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3679
Последний ответ 11 Июл 2014, 18:07
от LexaK
не работает отчет "Выработка сотрудника" в ЗУП2.5.35.3

Автор a_a2001Раздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3765
Последний ответ 20 Июн 2011, 11:14
от Zvezo

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
175 Сообщений
ilyay ilyay
69 Сообщений
oleg-x
48 Сообщений
alex0402
44 Сообщений
AIFrame
39 Сообщений
andron81_81
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 282
  • Точка Скрытых: 0
  • Точка Пользователей: 3
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal