Работа с файлами (картинками) в интерфейсе Такси

Публикация № 195003

Разработка - Работа с интерфейсом

Рассмотрим алгоритм работы с файлами и картинками в новом интерфейсе 1С:Предприятие 8.3 "Такси".

Во-первых, почему я решил написать эту статью: Новая концепция 1С - отказ от модальных окон, следовательно все методы и объекты, которые порождали открытие модальных окон в новом интерфейсе работать не смогут, точнее смогут, только если в свойствах конфигурации разрешить модальные окна.
Рассмотрим алгоритм работы с файлами и картинками в новом интерфейсе 1С:Предприятие 8.3 "Такси".

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

 

Однако, если разрешить модальные окна, то мы столкнемся с проблемами при работе в web-клиенте.
 
 
Во-вторых, о работе с картинками в управляемых формах часто спрашивают.
 
Итак, задача: в справочнике "Товары" необходимо сохранять и отображать в форме фотографию товара.
Исходная конфигурация не содержит ничего, кроме самого справочника с товарами, выкладывать ее не буду, просто создайте пустую конфигурацию в 8.3.
 
Для хранения самого графического файла, в справочнике создадим реквизит "ДанныеКартинки", с типом "Хранилище значений".
 
 
Если планируете выгружать картинку (файл) из информационной базы обратно в файловую систему, то добавьте еще реквизит, который будет хранить исходное имя файла и его тип.
 
Далее, займемся формой. Как видно на картинке, реквизит с типом хранилище значений в форме недоступен.
 
 
Как будем отображать картинку в форме? Нет, не декорацией с типом "картинка". А в виде реквизита формы с типом "строка". Да, да! Это очевидно, и странно, что мало кто об этом догадывается сам. ;)
 
Все дело в том, что если на форму вынести реквизит с типом "строка", который будет содержать навигационную ссылку на графические данные или адрес временного хранилища которое содержит такие данные, то форма сможет отобразить сами графические данные.
Добавим реквизит формы с именем "СсылкаНаКартинку", тип "строка", длина не ограничена. И поместим его в реквизиты формы.
 
 
По умолчанию, строка в форме будет выглядеть как поле ввода, нам нужно поменять это, в свойствах элемента формы. Выберем в свойстве "Вид" "Поле картинки".
 
 
Интерфейсная часть готова. Займемся кодингом. Создадим команду формы "ВыбратьФайлКартинки", в виде кнопки расположим ее на форме.
 
 
В модуле опишем обработчик события "Действие" для созданной команды формы:



Пару комментариев к вышеописанному коду:
Если бы мы не обращали внимание на режим модальности приложения, то могли вполне использовать метод "ПоместитьФайл", однако цель статьи показать работу с файлами именно в таком режиме.
Метод НачатьПомещениеФайла помещает выбранный файл во временное хранилище (если выбор файла был произведен) и вызывает процедуру "ОбработатьВыборФайла" в этом же модуле.
Обращаю внимание на выделенный "УникальныйИдентификатор", этим свойством мы связали временное хранилище с текущей формой. В противном случае файл в хранилище помещен будет, но само хранилище при серверном вызовет будет уничтожено, а нам оно еще понадобится, для записи файла в реквизит справочника.

Опишем процедуру "ОбработатьВыборФайла":


Если пользователь не отказался от выбора файла, то в реквизит формы "СсылкаНаКартинку" помещаем адрес во временном хранилище, куда были помещены данные картинки.

 
Вуаля!
 
 
Так, осталось теперь при записи элемента справочника записать данные из временного хранилища в реквизит элемента справочника. Описываем событие ПередЗаписьюНаСервере:

Проверяем в реквизите формы у нас что? Если адрес временного хранилища, пишем данные в реквизит элемента справочника, обращаясь к "ТекущийОбъект", "ТекущийОбъект" - это сконвертированные данные формы, которые пишутся в базу в этот момент времени.

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

 
Актуальную версию статьи и выгрузку базы с примером можно найти тут.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. maxis33 42 22.07.13 10:09 Сейчас в теме
Просто и доступно, спасибо!
2. Ёпрст 1045 22.07.13 10:13 Сейчас в теме
что такое "модельных окон" ?
3. GROOVY 2563 22.07.13 13:30 Сейчас в теме
4. Ёпрст 1045 22.07.13 13:35 Сейчас в теме
(3) тогда исправляй везде, а не только в заголовке темы.
:)
5. WalterMort 328 24.07.13 09:01 Сейчас в теме
Вроде как диалоги открытия/закрытия файлов из браузера не требуют отключения блокировки всплывающих окон. Нафиг с ними то так заморочились?
6. YPermitin 10277 24.07.13 09:01 Сейчас в теме
Принцип остался тот же, что и для управляемых форм.
Так получается?
7. Algiz 24.07.13 09:06 Сейчас в теме
8. GROOVY 2563 24.07.13 12:02 Сейчас в теме
Так это и есть управляемые формы.
9. sikuda 643 24.07.13 14:23 Сейчас в теме
- Как будем отображать картинку в форме? Нет, не декорацией с типом "картинка". А в виде реквизита формы с типом "строка"...
Суть этого реквизита - ссылка на ресурс внутри 1С. Если близко рассмотреть текст страницы это то что попадает в поле src тега <img>.

Как метод можно сделать поле ПолеHTML(Поле HTML документа) и
ПолеHTML = "<!DOCTYPE html><html><head></head><body><img src='"+СсылкаНаКартинку+"'/></body></html>";
10. GROOVY 2563 24.07.13 14:31 Сейчас в теме
(9) [Суть этого реквизита - ссылка на ресурс внутри 1С.] sikuda, так я вроде как и написал...
15. Den_D 54 29.07.13 10:54 Сейчас в теме
(10) Увидел публикацию, не посмотрел на автора и подумал, что кто-то с Вашего мастер-класса, оказался шустрее автора)))
53. 3762515 26.02.15 16:00 Сейчас в теме
У меня не получается, ошибка:
{Справочник.Лис_ТипыКонтейнеров.Форма.ФормаЭлемента.Форма(15)}: Ошибка при вызове конструктора (ОписаниеОповещения)
Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФайла", Объект);
по причине:
Не найден экспортируемый метод: ОбработатьВыборФайла
55. GROOVY 2563 06.03.15 23:36 Сейчас в теме
(53) 3762515, Надо, просто на 8.3 кодить.
11. Evil Beaver 6925 24.07.13 14:58 Сейчас в теме
Не только картинки, а вообще любые ХранилищаЗначения, которые нужно наполнять из управляемой формы требуют такого подхода. Суть проблемы - ХранилищеЗначения недоступно в данных формы. Если установить ему значение на сервере, то оно умрет при возврате на клиента. Нужно всегда использовать ВременноеХранилище, как промежуточный буфер, а в ПередЗаписьюНаСервере уже наполнять ТекущийОбъект нужными данными из временного хранилища.
neo-ti; msergeev79; NN2P; CratosX; AllexSoft; Elvisnya; teflon; +7 Ответить
21. sikuda 643 01.08.13 09:11 Сейчас в теме
(11) Я думаю они это сделали специально. Они не предоставили API для работы с большим объемом данных, поэтому сделали это асинхронно, как загрузка картинок на html страницу. Это не проблема, это фича.

И есть повод понять что 1С внутри уже другое - Это же асинхронный код!!!
Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФАйла", ЭтотОбъект);
НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
22. Evil Beaver 6925 01.08.13 09:19 Сейчас в теме
(21) sikuda, Нету там асинхронного кода. А не сделали они это да, специально. Я не говорю, что это косяк. Просто нужно понимать упр. форму и знать такую особенность с хранилищем значения.

А про асинхронку - ОбработкаОповещения - это не совсем то. Она не асинхронна в прямом смысле. Параллельно ничего не выполняется. Callback оповещения стоит в очереди и вызывается, когда это будет можно, но синхронно с остальным кодом.
Внутри 1С может быть и другое (я не видел), но нам, смертным, асинхронного исполнения не видать еще долго. Имхо.
23. sikuda 643 01.08.13 10:00 Сейчас в теме
(22) Согласен в текущем состоянии все загоняется в буфер и выпоняется последовательно. Какой то частью мы управляем, а какая-то(хранилище значений) делается без нас.

Я именно хочу обратить внимание, что выше приведенных код по сути своей асинхронный. И такой код будет все больше и больше проникать в типовые конфигурации, а дальше дело 1С как правильно включить паралельную работу. Асинхронный код это не подарок, это головная боль разработчика...

Говорить, что в 1С нет паралельной работы я бы не стал:
ЭтаФорма.СкомпоноватьРезультат(РежимКомпоновкиРезультата.Фоновый);
24. Evil Beaver 6925 01.08.13 10:53 Сейчас в теме
(23) sikuda,
РежимКомпоновкиРезультата.Фоновый

Знаете, что тут происходит? Запускается отдельный сеанс с базой данных. Самостоятельный, управляемый планировщиком фоновых заданий. Да, по отношению к вашему коду он будет выполнен параллельно, но ограничений куча же. Все равно не понимаю, какое отношение имеет реквизит управляемой формы "ХранилищеЗначения" и асинхронное исполнение?

Пока транзакция записи объекта не завершится, ваш код не может ничего сделать, где тут асинхрон? асинхрон по отношению к чему?
28. sikuda 643 07.08.13 09:29 Сейчас в теме
(24) Вернемся к асинхронному коду (11) Очень внимательно читаем справку:
"В тонком и толстом клиентах, в отличие от веб-клиента, метод блокирует исполнение кода языка. Тем не менее, по завершению помещения файла указанный обработчик оповещения также будет вызван, но до исполнения кода, размещенного после вызова метода."

И в код после НачатьПомещениеФайла вставим бесконечный цикл. В Тонком клиенте сначала выбор файла. Потом цикл.
А в web-клиенте наоборот сначала зависаем (браузер просит остановить цикл), потом выбор файла.
То есть в web-клиенте Оповещение работает как чистый callback javascript.
Именно это я пытаюсь вложить в фразу "код по сути своей асинхронный". И именно такое поведение стандартное для javascript на web страницах.
29. Evil Beaver 6925 07.08.13 10:47 Сейчас в теме
(28) sikuda, понял, мы говорим о совсем разных вещах, поэтому не понимаем друг-друга :)
12. OVladius 32 25.07.13 13:00 Сейчас в теме
Блин, я такой ложкой как на картинке в детстве борщи хлебал, ностальгия....
user5300; skel; aevdovin; hornet_X; CSiER; GATTUSO; talych; gorevg; alex.msk; AllexSoft; +10 Ответить
13. Evil Beaver 6925 25.07.13 17:05 Сейчас в теме
14. AllexSoft 26.07.13 22:00 Сейчас в теме
(12) OVladius, я думал это намек на ложку дёгтя ... )
16. Den_D 54 29.07.13 10:55 Сейчас в теме
(12) OVladius, эта ложка которой 1С предлагает нам хлебануть г...на с "управляемыми" формами)))
Nuobu; bulpi; 3762515; +3 1 Ответить
17. ZLENKO 29.07.13 14:36 Сейчас в теме
Ложка весьма символично отражает тему статьи :-)
18. vano-ekt 847 30.07.13 13:17 Сейчас в теме
а в обычной уф разве не так? причем тут такси?
19. GROOVY 2563 30.07.13 13:26 Сейчас в теме
(18) vano-ekt,
1. Такси это и есть УФ.
2. В Такси отказались от модальных окон.
20. Evg-Lylyk 3183 31.07.13 08:58 Сейчас в теме
(0) Спасибо за публикацию, актуальная тема
Желательно выложить базу пример.
Нужна функция очистить картинку
25. GROOVY 2563 04.08.13 00:13 Сейчас в теме
(20) Evg-Lylyk, Зачем базу, тут 20 строк кода? Правда нужно?
26. Evg-Lylyk 3183 04.08.13 10:30 Сейчас в теме
(25) Думаю было бы полезно я вот хотел посмотреть как работает после Перечитать.
27. NickOmskiy2 49 04.08.13 12:35 Сейчас в теме
тоже в свое время брал пример из Профессиональной разработки" http://infostart.ru/public/185351/ с применением для БГУ, но можно и для прочего...
30. sa1m0nn 22 08.08.13 11:17 Сейчас в теме
Спасибо за статью.
Замечание: про размещение на форме строки с видом Картинка и навигационной ссылкой на данные картинки следовало бы описать в статье, что это методика изначально Управляемого приложения, т.е. с 8.2 так работает. А нового здесь - только немодальные "модальные" методы с описанием оповещения.
31. sikuda 643 13.08.13 09:56 Сейчас в теме
Удалил про html5 (Не будем смущать неокрепшие умы 1С-ников)
32. sikuda 643 23.12.13 16:58 Сейчас в теме
(0) ...(Убрал по просьбе автора)
33. GROOVY 2563 23.12.13 17:12 Сейчас в теме
(32) sikuda, на мой взгляд к моей статье это вообще только словом "картинка" привязать можно :)
34. Bukaska 134 23.12.13 17:26 Сейчас в теме
(33)
Как будем отображать картинку в форме? Нет, не декорацией с типом "картинка". А в виде реквизита формы с типом "строка". Да, да! Это очевидно, и странно, что мало кто об этом догадывается сам. ;)

Спасибо! Я всегда пользовалась как раз декарацией(в всяком случае в 8.2)

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

ну это уж даже самое главное ..

Правильно я понимаю, что если бы я сделала реквизит типа не строка, а хранилище значения, и указала бы у поля путь к нему.. Пришлось бы мучаться с таким функционалом, как ДанныеФормыВЗначение и ЗначениеВДанныеФормы?
35. GROOVY 2563 23.12.13 17:40 Сейчас в теме
Правильно я понимаю, что если бы я сделала реквизит типа не строка, а хранилище значения, и указала бы у поля путь к нему.. Пришлось бы мучаться с таким функционалом, как ДанныеФормыВЗначение и ЗначениеВДанныеФормы?


Строка - это реквизит формы. Как Вы собрались реквизит формы с типом ХранилищеЗначения сделать?
36. clev 28 03.02.14 12:23 Сейчас в теме
Спасибо за прием работы с файлами!
Помогите разобраться с такой проблемой:

При активизации строки табличной части пытаюсь отобразить картинку на форме:

&НаСервере
Функция ПолучитьКартинку(ТекСтрока)
	Возврат ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Файлы.ДанныеКартинки", ТекСтрока-1);
КонецФункции

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


В момент присвоения СсылкаНаКартинку=ПолучитьКартинку(Элемент.ТекущиеДанные.НомерСтроки); платформа падает.




СсылкаНаКартинку в этот момент содержит текст:
"e1cib/data/БизнесПроцесс.СогласованиеДоговора.Файлы.ДанныеКартинки?ref=8711be1ed620b4fc11e38ca646b858c4&index=0"

В чем может быть проблема?
45. Smallrat 21 15.01.15 16:19 Сейчас в теме
(36) clev,
Вот тоже с похожим случаем столкнулся при изменении режима совместимости конфы:
Есть два случая - получаю файл из реквизита ссылки:
	Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Данные");
	ПолучитьФайл(Адрес, Объект.ИмяФайла, Истина);

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

Меняю режим совместимости с 8.2.13 на "не использовать" (для плафтормы 8.3.5), и первый код так и остаётся рабочим, зато второй начинает падать:
"Неправильный путь к файлу 'e1c://server/SRV-1С:3541/TestGD/e1cib/data/Справочник.ВариантыДоговоров.ПечатныеФормы.Данные?ref=b5df0025900ab87711e233d403d247a3&index=0'"
помогает только если переписать с получения ссылки на помещение в хранилище, причем если не использовать метод Получить() (спасибо (37)), то полученный адрес тоже будет нерабочим. Отчего такая беда, непонятно (((
46. GROOVY 2563 15.01.15 20:38 Сейчас в теме
(45) Smallrat, ТекущаяСтрока элементов формы <> Индекс или номер строки данных. Нужно ссылаться именно на данные записанные в БД.
47. Smallrat 21 16.01.15 10:20 Сейчас в теме
(46) Там в третьем параметре надо указать индекс строки. "Элементы.ПечатныеФормы.ТекущаяСтрока" у меня даёт 0 - вполне себе индекс. я и просто число указывал, всё равно не работает. Причём при включенном режиме совместимости ошибок нет.
48. GROOVY 2563 16.01.15 17:53 Сейчас в теме
(47) Smallrat, еще раз, ТекущаяСтрока это НЕ индекс. И есть ли данные на которые ссылается текущая строка в базе?
52. Smallrat 21 21.01.15 10:56 Сейчас в теме
(48) Хорошо, действительно параметр ТекущаяСтрока некорректно использовать (хоть в моем случае это 0)
переписал так:

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

&НаКлиенте
Процедура ВыгрузитьФайл(Команда)
	Адрес = ПолучитьАдресХранилища();
	ПолучитьФайл(Адрес, Элементы.ПечатныеФормы.ТекущиеДанные.ИмяФайла, Истина);
КонецПроцедуры
Показать

Всё равно валится с выключенным режимом совместимости, а с включенным 8.2 нет. Данные в базе есть - я могу их получить, поместить во временное хранилище и выгрузить на клиенте через адрес хранилища. Я покопал форумы - нигде решения нет, кроме как обходить.
37. clev 28 03.02.14 14:23 Сейчас в теме
Все, разобрался. Может, кому-то пригодится. Надо было сначала считать картинки объекта и поместить их во временное хранилище:

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	Для Каждого СтрФайлы Из Объект.Файлы Цикл
		Хранилище=ТекущийОбъект.Файлы[СтрФайлы.НомерСтроки-1].ДанныеКартинки.Получить();
		
		СтрФайлы.фСсылкаНаКартинку=ПоместитьВоВременноеХранилище(Хранилище, УникальныйИдентификатор);
	КонецЦикла	
КонецПроцедуры
Показать
Smallrat; +1 Ответить
38. GROOVY 2563 03.02.14 16:30 Сейчас в теме
(37) clev, зачем картинку во временное хранилище пихать? Это же физическая запись на диск. Достаточно навигационную ссылку получить.
39. clev 28 05.02.14 03:30 Сейчас в теме
(38) не могу разобраться, почему код из (36) не работает. Не подскажете, что не так?
40. alexkon 92 05.02.14 16:35 Сейчас в теме
(39) clev, я процедуру ПриЧтенииНаСервере() заменил на ПриСозданииНаСервере(). На форме предварительно сделал реквизит типа "ТаблицаЗначений" с колонкой "АдресВременногоХранилища". В ПриСозданииНаСервере() получал данные картинок из ТЧ файлов и клал их во временное хранилище(только надо не забыть преобразовать реквизит формы в значение и после всего обратно в реквизит формы). Адреса временных хранилищ положил в созданный реквизит построчно. А в процедуре ПриАктивизацииСтроки() присваивал СсылкеНаКартинку адреса временных хранилищ(индексы совпадают), полученные из реквизита формы. А изначально платформу тоже вышибало.
41. clev 28 05.02.14 20:20 Сейчас в теме
(40) alexkon, Так в (37) я почти так и делаю.
Только не создаю новую ТЗ, а в табличной части формы добавил реквизит c типом "строка".
И при ПриЧтенииНаСервере() в этот реквизит записываю адрес во временном хранилище.
В этом варианте все работает. Но GROOVY в (38) говорит, что так не правильно.
56. vitaliy1911 31 20.03.15 19:53 Сейчас в теме
пишу
&НаКлиенте
Процедура КомандаОткрытьФайл(Команда)
	Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "ДанныеФайла");
	ПолучитьФайл(Адрес);
КонецПроцедуры

ругается
{Справочник.sd_Файлы.Форма.ФормаЭлемента.Форма(37)}: Ошибка при вызове метода контекста (ПолучитьФайл)
ПолучитьФайл(Адрес, Объект.Наименование);
по причине:
Неправильный путь к файлу 'e1c://filev/C/bases/desktopSD/e1cib/data/Справочник.sd_Файлы.ДанныеФайла?ref=bdda4487fca76d4611e4cd932712cf62'

ДанныеФайла - хранилище значений с данными файла
что я делаю не так? (8.3.5.1460)

П.С. Разобрался. Пытался поместить данные через реквизитформывзначение, запись в реквизит, затем значениевреквизитформы. так не правильно, потому что после обратного перехода в реквизит формы данные теряются. не повторяйте моих ошибок
42. alf2006x 25 18.03.14 14:49 Сейчас в теме
С файлом вроде более-менее понятно, но я не могу найти способ немодального "таксишного" выбора каталога. Может кто подскажет как это сделать?
Мне надо чтобы пользователь выбрал каталог, а после выбора строку каталога записать в реквизит справочника.
43. alf2006x 25 19.03.14 11:50 Сейчас в теме
(42) alf2006x,
Процедура ПутьКДНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
	Если ДиалогВыбораФайла.Выбрать() Тогда      //обработка файла Диалог.Каталог;
		Объект.ПутьКД = ДиалогВыбораФайла.Каталог;
	КонецЕсли;
КонецПроцедуры

Вопрос снят.
44. 911service 121 24.10.14 10:45 Сейчас в теме
А как в данном способе применить фильтр на тип файла (Расширение)?
57. lamdth 11 02.09.15 16:26 Сейчас в теме
(44) 911service,
Фильтр по расширению:
	ДиалогОткрытияФайла							= Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	ДиалогОткрытияФайла.Фильтр					= "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|";
	ДиалогОткрытияФайла.МножественныйВыбор		= Ложь;
	ДиалогОткрытияФайла.ПредварительныйПросмотр	= Истина;
	ДиалогОткрытияФайла.Заголовок				= Нстр("ru='Выберите файл с фотографией'");
	
	ОповещениеОбработатьВыборФайла = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект);
	НачатьПомещениеФайлов(ОповещениеОбработатьВыборФайла, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);

Показать
LomayaZakat; +1 Ответить
49. aseiduldayev 18.01.15 11:26 Сейчас в теме
У меня такая же трабла. Кто может помоч ? При строке платформа проваливается

Объект.АдресКартинки=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ТЧПрикрепленныеФайлы.ПрикрепленныйФайл",0);
51. GROOVY 2563 18.01.15 14:05 Сейчас в теме
(49) aseiduldayev, Какая "такая же"?
Куда проваливается платформа?
50. aseiduldayev 18.01.15 11:27 Сейчас в теме
Тут так и не разобрались. Т
54. 3762515 26.02.15 16:04 Сейчас в теме
А ещё в процедуре "ВыбратьФайлКартинки" ругается на "ЭтотОбъект"
58. androgin 26.01.16 01:26 Сейчас в теме
И получать картинки нужно в ПриЧтенииНаСервере
59. DrSMERTb 06.07.16 10:50 Сейчас в теме
А как теперь можно ещё сделать функцию сохранения на диск картинки из базы?
60. Гость 09.08.16 14:09
Здравствуйте!
Сделала так, как у вас написано. Картинка добавляется, но при последующем открытии элемента пропадает. Подскажите, пожалуйста, в чем может быть проблема?
61. deutsch2008 144 02.10.17 12:01 Сейчас в теме
не получилось! вообще не чего. одни ошибки (((((
62. deutsch2008 144 04.10.17 13:55 Сейчас в теме
{Справочник.Товары.Форма.ФормаЭлемента.Форма(5,64)}: Переменная не определена (ЭтотОбъект)
Оповещание = Новый ОписаниеОповещения("ОбработатьВыборФайла", <<?>>ЭтотОбъект); (Проверка: Толстый клиент (обычное приложение))
63. Mars2006 17.07.18 14:17 Сейчас в теме
Всё работает без ошибок. только картинка не отображается.
Можете подсказать. всё написано как в посте, ничего своего.

&НаКлиенте
Процедура ВыбратьКартинку(Команда)
	Оповещение = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект);
	
	НачатьПомещениеФайла (Оповещение, , , Истина, УникальныйИдентификатор);
		
КонецПроцедуры

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

КонецПроцедуры

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
	СсылкаНаКартинку=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ОсновноеИзображение");
КонецПроцедуры
Показать
69. user1363584 10.03.20 12:48 Сейчас в теме
(63)

Тоже такое было. Похоже баг в 1с. Т.к. чтобы заработало надо обработчики ПередЗаписьюНаСервере и ПриСозданииНаСервере создать с пом. лупы proс из интерфейса, а не просто скопипастить код модуля. Хотя после этих манипуляций код модуля будет одинаков.
70. pudovan 23.03.20 18:51 Сейчас в теме
(63) В последней процедуре:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
СсылкаНаКартинку=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ОсновноеИзображение");
КонецПроцедуры

Нужно указать наименование реквизита "ДанныеКартинки" вместо "ОсновноеИзображение". Тогда будет выводиться при открытии!
Вот правильный вариант:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ,СтандартнаяОбработка)
    СсылкаНаКартинку=ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеКартинки");
КонецПроцедуры
64. ZloyProger 8 10.04.19 12:40 Сейчас в теме
Доброго времени суток,Коллеги.
Извиняюсь за некропостинг, но думаю новую тему не стоит ради такого пустяка заводить) Поясните ЧЯДНТ - есть самописка, с запрещенными модальными вызовами пишу а-ля:
&НаКлиенте
Процедура МояКоманда(СписокФайлов)
	МассивФайлов = Новый Массив;
	Для Каждого Файл Из СписокФайлов Цикл
		МассивФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.Значение.ПолноеИмя, Файл));
	КонецЦикла;
	НачатьПомещениеФайлов(Новый ОписаниеОповещения("ПослеПомещенияФайлов", ЭтаФорма), МассивФайлов, Ложь, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПомещенияФайлов(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
	ПрочитатьФайлыНаСервере(ПомещенныеФайлы);
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлыНаСервере(ПомещенныеФайлы)
	//некоторые действия с файлами, выполняются на сервере, потому что необходим доступ к структуре метаданных конфигурации
Конец
Показать

СписокФайлов - соответственно список значений, где значения - файлы, представление - текстовой описание файла. Код отрабатывает, всё выполняется, но... выдает предупреждение, что использование синхронных методов запрещено... Кто и где синхронный-то?
65. vitaliy1911 31 10.04.19 14:21 Сейчас в теме
(64) вы уверены, что предупреждение именно на этот фрагмент кода? попробуйте выделить весь текст модуля и через контекстное меню "рефакторинг" выполнить замену всех синхронных методов, посмотрите что получится
66. ZloyProger 8 11.04.19 17:26 Сейчас в теме
(65) Спасибо коллега, действительно использовал НайтиФайлы, вместо НачатьПоискФайлов... Вот всё-таки неплохо бы в оповещение для таких "невнимательных" добавить что за метод))
И неистовые лучи добра разработчикам за асинхронную модель вызовов из-за которой 2 строчки простого, понятного, логичного вызова метода НайтиФайлы:
		МассивНайденныхФайлов = НайтиФайлы(ВыбКаталог, "Configuration.xml", Ложь);
		Для Каждого СтрокаРоли Из Объект.ТаблицаРолей.НайтиСтроки(Новый Структура("Отметка", Истина)) Цикл
			ИмяРоли					  = СтрокаРоли.Роль;
			МассивНайденныхФайловРоли = ?(МассивНайденныхФайлов.Количество() = 0, НайтиФайлы(ВыбКаталог, "Роль." + ИмяРоли + ".Права.xml", Ложь), НайтиФайлы(ВыбКаталог + "\Roles\" + ИмяРоли, "Rights.xml", Истина));
			Если МассивНайденныхФайловРоли.Количество() > 0 Тогда
				СписокФайлов.Добавить(МассивНайденныхФайловРоли[0], ИмяРоли);
				СписокПредставлений.Добавить(ИмяРоли, МассивНайденныхФайловРоли[0].ПолноеИмя);
			Иначе
				Сообщить("Не найдено описание роли " + ИмяРоли + ?(МассивНайденныхФайлов.Количество() = 0, "", " или подкаталог " + "\Roles\" + ИмяРоли));
			КонецЕсли;
		КонецЦикла;
		МассивФайлов = Новый Массив;
		Для Каждого Файл Из СписокФайлов Цикл
			//МассивФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.Значение.ПолноеИмя, Файл));
			МассивФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(Файл.Значение.ПолноеИмя,));
		КонецЦикла;
		СтруктПараметры = Новый Структура("СписокПредставлений", СписокПредставлений);
		НачатьПомещениеФайлов(Новый ОписаниеОповещения("ПослеПомещенияФайлов", ЭтаФорма, СтруктПараметры), МассивФайлов, Ложь, УникальныйИдентификатор);

Показать

превращаются в непойми что.. Мб сталкивался кто и менее ректально решил следующую задачу: есть некое табличное поле с отметками, необходимо в цикле обойти все помеченные строки и по имени реквизита в строке поискать файлы в определённом каталоге, если файлы найдены - добавить их в список значений, для дальнейшей передачи.. Суть проблемы в том, что используя асинхронные методы я не могу прервать выполнение кода, т.е. кусок
&НаКлиенте
Перем СписокФайлов;

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

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

почти отрабатывает, т.к. файлы ищет правильные, но вот со значением параметров просто беда, т.к. начинается поиск только после выхода из процедуры и в структуре остается только последняя строка из выбранных (т.е. например в табличном поле 2 отмеченных строки с именами например "Администратор" и "ПолныеПрава" идешь в отладку и оба вызова ПослеПоискаФайлов показывают что ДополнительныеПараметры.Имя = "ПолныеПрава").. В результате приходится из имени файла выдергивать, а это примерно то же самое что дергать зубы, через задний проход... Не помогает ни рекурсия с Знач, чтобы не менялся фактический параметр, ни подключение обработчика ожидания.. Буду весьма благодарен за идею как в текущих реалиях подойти к данной задаче :-)
ЗЫ. Возможно про лучи добра и погорячился, просто эмоции ... переполняют после дня ломания мозга в попытках понять, как эту траблу обойти :-) Всем бобра))
67. mentozavr 50 30.04.19 10:47 Сейчас в теме
Спасибо за мануал. помог. Пытаюсь отобразить загруженный пдф док на форме в web-клиенте.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	АдресМ = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"ДанныеРезюме");
	//сообщить (АдресМ);
	#Если ВебКлиент Тогда
       Если Не ПодключитьРасширениеРаботыСФайлами() Тогда
        УстановитьРасширениеРаботыСФайлами();
        ПодключитьРасширениеРаботыСФайлами();
       КонецЕсли;
    #КонецЕсли
	Реквизит1 = "<html><EMBED id='PDF' width=100% height=100% type=""application/pdf"" src="""+АдресМ+"""></EMBED></html>";
	//Реквизит1 = АдресМ;
КонецПроцедуры
Показать

Поле появляется и пишет, что невозможно отобразить pdf документ. на толстом клиенте все работает изумительно
68. xander76 02.03.20 11:56 Сейчас в теме
А как тоже самое сделать что бы загружался любой файл, а при открытии вызывалось приложение которое его обслуживает?
71. pudovan 23.03.20 19:45 Сейчас в теме
Оказывается НачатьПомещениеФайла (BeginPutFile), Не рекомендуется использовать, начиная с версии 8.3.15.
Рекомендуется использовать: НачатьПомещениеФайлаНаСервер (BeginPutFileToServer)
Поэтому код меняем слеюющим образом:
 &НаКлиенте
Процедура ВыбратьФайлКартинки(Команда)
	//Создаем оповещение,   именно  процедура  "ОбработатьВыборФайла"  будет вызвана при закрытии окна выбора файла
	 Оповещение  =  Новый ОписаниеОповещения("ОбработатьВыборФайла",   ЭтотОбъект);
	//Открываем интерактивно  окно для выбора файла на платформе не ниже 8.3.15!
	НачатьПомещениеФайлаНаСервер(Оповещение,  ,  ,  ,  ,УникальныйИдентификатор);
КонецПроцедуры   

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

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

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

См. также

Недокументированное использование стандартных обработок из меню "Все функции". Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

19.06.2015    114182    ekaruk    129    

Отображение и редактирование в дереве большого количества настроек/параметров/опций программы, конфигурации, документа, справочника - без программного создания элементов формы

Практика программирования Универсальные функции Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Очень много реквизитов (настроечные опции, параметры) у справочника или документа, и их все необходимо разместить на управляемую форму - лень! Хочется - добавил в метаданные и всё! В публикации отличное, простое и олдскульное решение с открытым кодом, научимся работать с ДанныеФормыДерево, ДеревомЗначений, сделаем быстрый поиск, создадим универсальный инструмент.

11.12.2020    624    SizovE    6    

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Практика программирования Универсальные функции Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

30.11.2020    2424    SizovE    0    

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка v8 v8::Mobile 1cv8.cf Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    4997    leobrn    63    

Идея или как сохранить ЦВЕТ, ШРИФТ, ОФОРМЛЕНИЕ пользователя Промо

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Простой и оригинальный способ сохранять ЦВЕТОВУЮ СХЕМУ и ОФОРМЛЕНИЕ пользователей. Как сохранить ЦВЕТ

22.06.2015    24614    Tatitutu    12    

Цветовая схема конфигуратора в стиле OneScript

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Цветовая схема конфигуратора 1С максимально приближенная к стандартной цветовой схеме OneScript в VS Code.

01.10.2020    941    DmitrySinichnikov    3    

Рендеринг элементов управляемого интерфейса

Работа с интерфейсом v8 v8::УФ Россия Бесплатно (free)

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    3121    kalyaka    5    

Переопределение представления ссылочного значения

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Переопределение представления ссылочного значения

17.09.2020    3032    sam441    15    

Видеодемонстрация применения Теста-центра для нагрузочного тестирования конфигураций Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

16.09.2012    35860    Aleksey.Bochkov    29    

Медленно формируются отчеты в БП 3, способ исправления

Работа с интерфейсом v8 БП3.0 Бесплатно (free)

При формировании любых отчетов, но в особенности оборотно-сальдовой ведомости в бухгалтерии 3, очень долго формировался отчет, ПОЯВЛЯЛСЯ ЖЕЛТЫЙ КОТ, разумеется у бухгалтера невроз, да и у меня тоже. Что только ни делал: тестирование и исправление с пересчетом итогов, настройка SQL, отключение фоновых заданий, обновление платформы и конфигурации, а толку нет, регламентные операции по скулю тоже сделал. И что же сделал, а вот что:

21.07.2020    2162    VID1234    8    

Регистр сведений как дополнение объекта

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Подключаем регистры сведений к формам связанных с ними объектов, быстро и надежно.

19.05.2020    3067    Infector    14    

Хранение и редактирование дополнительных параметров в регламентированном отчете. Для начинающих. Промо

Работа с интерфейсом v8 БП2.0 УПП1 БУ Бесплатно (free)

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

22.01.2014    20749    KapasMordorov    4    

Перенос инструкций из word во встроенную справку 1С с сохранением картинок и форматирования

Практика программирования Работа с интерфейсом v8 Бесплатно (free)

Делюсь простым и удобным способом переноса справки/инструкций из ворда (и не только) во встроенную справку 1С с сохранением картинок и форматирования.

22.04.2020    4776    77dream77    21    

Звездный рейтинг *****

Работа с интерфейсом v8 Россия Бесплатно (free)

Ранее я представил подсистему «Управление состоянием». К подсистеме был проявлен интерес, однако в рамках одной статьи аспекты её использования были представлены недостаточно полно. Более подробное рассмотрение использования подсистемы я планирую продолжить через публикацию отдельных учебные примеров. Это первая статья из цикла таких примеров.

06.04.2020    1509    kalyaka    3    

Функциональные опции. Управление доступным функционалом для пользователей

Работа с интерфейсом v8 Бесплатно (free)

Как управлять доступным функционалом в привязке к пользователям программы.

24.03.2020    1440    Evilgrym    2    

Программное генерирование кнопочек для удобного управления уровнями группировки в отчетах (версия 2a). Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В табличных документах 1С 8 имеется отличная возможность использования группировок, но управление уровнями группировок через контекстное меню не очень удобное. В своих отчетах для управления уровнями группировок я использую маленькие кнопочки на поле табличного документа - это намного удобнее и быстрее, чем через контекстное меню.

09.04.2011    46545    mtv:)    74    

Форма выбора для реквизита с составным типом данных

Работа с интерфейсом v8 Бесплатно (free)

Возник вопрос: как открыть форму выбора для реквизита, имеющего составной тип данных, да еще и отображаемый в виде надписи?

11.03.2020    3014    rule_2    2    

Treemapping — способ визуализации данных древовидной структуры. Карта-схема дерева

Математика и алгоритмы Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

18.02.2020    5326    randomus    20    

[Шпаргалка] Свой диалог выбора типа значения (элемента)

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Для реквизита составного типа необходимо ограничить список выбора типов.

18.02.2020    4121    rpgshnik    6    

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Промо

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Хитрости компоновки данных: программное формирование заголовков отчета и колонок без использования макетов. Очень часто необходимо программно сформировать заголовок отчета, например добавить туда наименование валюты, в которой формируется отчет. Можно использовать макеты, но во многих случаях это не оправданно.

27.07.2012    32353    milkers    10    

СКД. Шаг 3. Используем макеты для оформления отчета

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

13.01.2020    19189    aximo    14    

Добавление собственного поля и состояния в настройки доступности по состоянию в 1С:Документооборот

Практика программирования Работа с интерфейсом v8 ДО Бесплатно (free)

В данной публикации я хочу описать процесс добавления собственного поля и состояния в функционал настройки доступности по состоянию в 1С:Документооборот.

30.12.2019    5106    pavelpribytkin96    2    

Визуальный индикатор состояния документа

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

24.12.2019    2215    user752307    10    

Рабочее место кассира для touch-screen и программируемой клавиатуры продавца в «1С: Розница» Промо

Работа с интерфейсом v8 Розница Бесплатно (free)

Вашему вниманию предлагается текст одного из технических проектов «1С: Розница 8», он описывает процесс разработки интерфейса РМК, с которым, нынче, работают кассиры очень многих магазинов.

29.11.2012    47238    aavolkoff    50    

[СКД] Вывод картинки в результат любого отчета на СКД

Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    9916    John_d    16    

Лайфхаки 1С. Настройка списков (Часть 3)

Работа с интерфейсом v8 Бесплатно (free)

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

03.12.2019    14847    VachKirp    14    

В новой платформе пропала кнопка "Печать". Имитируем БСП

Работа с интерфейсом v8 Россия Бесплатно (free)

"Приятным" сюрпризом для многих пользователей 1С стало то, что при обновлении платформы (начиная с 8.3.15) полностью поменялся интерфейс. Можно долго спорить о целесообразности этого новшества, но самым главным минусом стало то, что пропали стандартные кнопки на панели инструментов. Разработчики предполагают повсеместное использование БСП, но что делать тем, кто давно и успешно использует самописные конфигурации, в которых формирование печатной формы происходит по ТабДок.Показать(), и не желает их "утяжелять"? Добавим общую форму с нужными нам кнопками.

03.12.2019    9394    Vlan    44    

Бухгалтерия предприятия 3.0 интерфейс, аналогичный 1С:Бухгалтерии 7.7; Промо

Работа с интерфейсом v8 БП2.0 Россия Бесплатно (free)

Бухгалтерия предприятия, редакция 3.0, версия 3.0.14. Добавлена возможность использовать интерфейс, аналогичный 1С:Бухгалтерии 7.7;

20.09.2012    37475    dour-dead    18    

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    12241    John_d    24    

Локализация интерфейсов конфигураций. Практика и инструментарий 1Ci

Работа с интерфейсом Локализация решений v8 Бесплатно (free)

В последнее время компания 1С International все увереннее заявляет о себе на международном рынке. Но для успешного продвижения в этом направлении необходима локализация интерфейсов конфигураций 1С. О том, как выглядит процесс перевода, какие инструменты для этого есть, где брать переводчиков и как проверять их работу, на конференции Infostart Event 2018 Education рассказал руководитель группы локализации компании 1Ci Сергей Поликарпов.

05.11.2019    5424    user1069006    1    

ELK. Время изумительных историй!

Журнал регистрации Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Всем привет! Сегодня хочу рассказать вам несколько полезных историй про то как нам помог Elastic search в связке с Kibana. Про сам Elastic рассказывать не буду, уже все давным давно описали и до меня. Все обычно говорят что это полезно, это классно. В то же время, очень мало кто рассказывает про практические ситуации: когда и как помог Elastic. Итак, начнем.

31.10.2019    9103    slozhenikin_com    27    

Выбор вариантов отчета в "Управление торговлей" ред. 11 Промо

Работа с интерфейсом Учет ТМЦ Учет ТМЦ v8 УТ10 Россия БУ Бесплатно (free)

В УТ 11 в свойствах конфигурации задано хранилище вариантов отчетов. Исходя из этого, все отчеты будут использовать для своих вариантов именно это хранилище (если, конечно, в свойствах самого отчета не задано другое хранилище). По сути, все варианты для отчетов находятся в справочнике "Варианты отчетов", который заполняется при первом запуске системы. Вполне очевидно, что если Вы создаете свой отчет (внешний или внутренний) с несколькими вариантами, у Вас не будет возможности выбирать нужный вариант (переключаться между вариантами), т.к. в выше указанном справочнике нет никакой информации о вариантах созданного Вами отчета. В этой небольшой статье я покажу один из способов решения данной проблемы.

27.05.2012    47253    1cUserAndrew    25    

Лайфхаки 1С (часть 2) Настройка работы интерфейса такси. Настройка и советы по работе

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

Советы по настройке интерфейса Такси и особенности работы в этой среде.

24.10.2019    11212    VachKirp    10    

Создание асинхронных виджетов

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    13375    YPermitin    19    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

06.10.2019    12214    YPermitin    31    

Практика регулярных выражений в 1С или "парсим неудобные форматы" Промо

Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

В продолжение статьи Использование регулярных выражений (RegExp) в 1С8.х. Углубляемся в практику использования регулярных выражений в 1С. Основы работы с регулярными выражениями хорошо описаны в указанной публикации. А я попробую ответить на вопрос "почему именно регулярные выражения?" на примере конкретной рабочей задачи.

26.10.2011    30113    1cspecialist    33    

Лайфхаки 1С (часть 1). Настройки отчетов и печатных форм 1С

Работа с интерфейсом v8 1cv8.cf Россия Бесплатно (free)

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

02.10.2019    13351    VachKirp    10    

Добавляем виджет "Задачи от меня" в Документооборот 2.1

Практика программирования Работа с интерфейсом v8 v8::Бизнес-процессы ДО Россия Бесплатно (free)

Небольшая доработка Документооборота 2.1 для возможности добавления виджета "Задачи от меня" в обработку Текущие дела.

25.09.2019    8144    Sergey_Borisovi4    3    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    62520    rpgshnik    68    

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

Практика программирования Работа с интерфейсом v8 КА1 УТ10 УПП1 Россия Бесплатно (free)

В этой статье я хочу рассмотреть задачу, которая довольно часто возникает у начинающих (и не только) разработчиков, адаптирующих типовые конфигурации (УТ, КА, УПП) на предприятиях торговли. Речь пойдет про отображение остатков в форме выбора серий номенклатуры при подборе в документы. Это актуально в тех случаях, когда не ведется партионный учет по сериям, либо когда документы вводятся неоперативно и нет возможности воспользоваться волшебной кнопкой "Заполнить и провести". На первый взгляд задача банальна, но я хочу показать некоторые "грабли", на которые часто наступают новички в процессе ее реализации, а также сопоставлю алгоритмы решения на платформе 8.1 и 8.2.

20.01.2011    32525    practik1c    19    

[Механизм интерфейса] Часы

Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Добавляем цифровые часы на форму, как бонус рассмотрим вариант и с аналоговыми.

26.08.2019    10295    rpgshnik    36    

Произвольная начальная страница через расширение (программно)

Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Установка своей формы произвольному пользователю на начальную страницу.

14.08.2019    14142    nagaitseff    15    

Подходы, методы и инструменты UX/UI для разработки эффективных интерфейсов на 1С

Работа с интерфейсом Инструментарий разработчика v8 Бесплатно (free)

Интерфейсам в 1С обычно уделяют мало внимания. Это в итоге снижает востребованность платформы, делает ее неконкурентной, лишает большой доли рынка. Как не потерять старых клиентов и привлекать новых с помощью интерфейсов, а главное – как сделать «правильный» интерфейс, рассказал участникам конференции Infostart Event 2018 Education управляющий партнер и основатель консалтинговой группы WiseAdvice Иван Тягунов.

07.08.2019    11826    IvanAT1981    15    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

Практика программирования Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    11402    dsdred    9    

Пользовательские настройки системы компоновки данных

Практика программирования Работа с интерфейсом v8 v8::СКД 1cv8.cf Бесплатно (free)

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

09.07.2019    31717    ids79    2    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

Работа с интерфейсом БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    45515    YPermitin    52    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free)

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    21631    Viktor_Ermakov    8    

Свой макет оформления отчета

Работа с интерфейсом v8 v8::СКД Россия Бесплатно (free)

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    15154    olegpkc    5    

Универсальный отчет - "тонкая" настройка

Работа с интерфейсом v8 ERP2 БП3.0 УТ11 КА2 Бесплатно (free)

Как вывести реквизиты в отдельную колонку. Как получить больше настроек в 1С:ERP 2 (2.4.7.107) или 1С:КА2. (2.4.7.127) или БП 3.0 (3.0.67.74).

14.04.2019    8530    Константин С.    2