Открытие форм нескольких новых документов в тонком и толстом клиенте, УФ

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

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

Открытие формы нового документа

23
Если Вам необходимо создать несколько документов, а затем открыть их формы для пользователя.

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

Итак:

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

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

Однако мне надо было несколько документов.

Вариант решения такой. Для толстого клиента все более/менее ясно:

1. На сервере создаем массив новых объектов типа документ "ПоступлениеТоваровУслуг" с разным заполнением.

2. На клиенте обходим этот массив в цикле, попутно создавая новые формы документов и заполняя их значениями тех объектов, что были созданы ранее.

 

&НаСервере
Функция ПолучитьМассивНовыхДокументовНаСервере()
	
    // Создадим массив из нескольких документов 
    // с разным наполнением (для примера - разные организации)
    // для того, чтобы при открытии форм было сразу понятно, что 
    // это два разных документа
	
    МассивНовыхДокументов = Новый Массив;
    
    НовДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    НовДок.Организация = Справочники.Организации.НайтиПоНаименованию("Компания 1");
    
    МассивНовыхДокументов.Добавить(НовДок);
    
    
    НовДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    НовДок.Организация = Справочники.Организации.НайтиПоНаименованию("Компания 2");
    
    МассивНовыхДокументов.Добавить(НовДок);
    
    Возврат МассивНовыхДокументов;

КонецФункции

&НаСервере
Функция ЗаполнитьДанныеФормыНаСервере(ДанныеФормыДокумента, НовыйДокументОбъект)
	
    // Здесь происходит непосредственное заполнение
    // Объекта из данных формы документа
    // тем документом, который был создан
    // в процедуре ПолучитьМассивДокументовНаСервере() 
	
    мОбъект = ДанныеФормыВЗначение(ДанныеФормыДокумента, ТипЗнч(НовыйДокументОбъект));
    ЗаполнитьЗначенияСвойств(мОбъект, НовыйДокументОбъект);
    ЗначениеВДанныеФормы(мОбъект, ДанныеФормыДокумента);
    
КонецФункции

&НаКлиенте
Процедура кнОткрытьФормыНовыхДокументов(Команда)
	
    // Кнопка на клиенте (на форме обработки) 
    // из которой необходимо создать 
    // и заполнить несколько новых документов.
    // Количество создаваемых объектов определяется в
    // процедуре ПолучитьМассивДокументовНаСервере()
    
    // 1. На сервере создаем массив новых объектов типа документ "ПоступлениеТоваровУслуг" с разным заполнением.
    МассивНовыхДокументов = ПолучитьМассивНовыхДокументовНаСервере();
    // 2. На клиенте обходим этот массив в цикле, попутно создавая новые формы документов и заполняя их значениями тех объектов, что были созданы ранее.
    Для Каждого НовыйДокументОбъект Из МассивНовыхДокументов Цикл
        
        ФормаДокумента = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта",,,Истина);
        ДанныеФормыДокумента = ФормаДокумента.Объект;
        
        ЗаполнитьДанныеФормыНаСервере(ДанныеФормыДокумента, НовыйДокументОбъект);
        
        КопироватьДанныеФормы(ДанныеФормыДокумента, ФормаДокумента.Объект);
        
        ФормаДокумента.Открыть();
        
    КонецЦикла;
    
КонецПроцедуры

 

Для тонкого клиента все сложнее. В тонком клиенте 1С начинает ругаться: "Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа". Это в момент передачи массива новых документов с сервера на клиент.

Как пришлось выкручиваться:

1. Точно также создаем массив новых документов.

2. Помещаем этот массив во временное хранилище. На клиент передаем только адрес этого хранилища.

3. На клиенте создаем цикл из такого количества итераций, сколько элементов есть в массиве.

4. В цикле создаем формы новых документов, при этом заполняя их данными из созданного массива документов. А к массиву обращаемся через адрес хранилища.

&НаСервере
Функция ПолучитьМассивНовыхДокументовНаСервере()
	
    // Создадим массив из нескольких документов 
    // с разным наполнением (для примера - разные организации)
    // для того, чтобы при открытии форм было сразу понятно, что 
    // это два разных документа
	
    МассивНовыхДокументов = Новый Массив;
    
    НовДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    НовДок.Организация = Справочники.Организации.НайтиПоНаименованию("Компания 1");
    
    МассивНовыхДокументов.Добавить(НовДок);
    
    
    НовДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
    НовДок.Организация = Справочники.Организации.НайтиПоНаименованию("Компания 2");
    
    МассивНовыхДокументов.Добавить(НовДок);
    
    Возврат МассивНовыхДокументов;

КонецФункции

&НаСервере
Функция ПолучитьАдресМассиваНовыхДокументовНаСервере()
	
    // Поместим массив с документами во временное хранилище
    // для того, чтобы иметь возможность обращаться к нему
    // со стороны клиента (передавая на сервер адрес хранилища)
	
    МассивНовыхДокументов = ПолучитьМассивНовыхДокументовНаСервере();
    
    // 2. Помещаем этот массив во временное хранилище. На клиент возвращаем только адрес этого хранилища.
    АдресМассиваНовыхДокументов = ПоместитьВоВременноеХранилище(МассивНовыхДокументов, Новый УникальныйИдентификатор);
    
    Возврат АдресМассиваНовыхДокументов;
        
КонецФункции

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

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

&НаКлиенте
Процедура кнОткрытьФормыНовыхДокументовТонкийКлиент(Команда)

    // 1. Точно также создаем массив новых документов.
    АдресМассиваНовыхДокументов = ПолучитьАдресМассиваНовыхДокументовНаСервере();
    
    КоличествоНовыхДокументов = ПолучитьКоличествоНовыхДокументов(АдресМассиваНовыхДокументов);
	
    // 3. На клиенте создаем цикл из такого количества итераций, сколько элементов есть в массиве.
    Для НомерОбъекта = 0 По КоличествоНовыхДокументов - 1 Цикл
        
        ФормаДокумента = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта",,,Истина);
        ДанныеФормыДокумента = ФормаДокумента.Объект;
		
        // 4. В цикле создаем формы новых документов, при этом заполняя их данными из созданного массива документов. А к массиву обращаемся через адрес хранилища.
        ЗаполнитьДанныеФормыТонкийКлиентНаСервере(ДанныеФормыДокумента, НомерОбъекта, АдресМассиваНовыхДокументов);
        
        КопироватьДанныеФормы(ДанныеФормыДокумента, ФормаДокумента.Объект);
        
        ФормаДокумента.Открыть();
        
    КонецЦикла;
    
КонецПроцедуры
23

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

Комментарии
Избранное Подписка Сортировка: Древо
1. slazzy 38 30.09.15 10:18 Сейчас в теме
Зачем делать столько костылей...
2. Wezoowy 66 30.09.15 12:03 Сейчас в теме
(1) slazzy, если Вы напишите как это сделать без костылей - я буду очень благодарен.
3. slazzy 38 30.09.15 12:07 Сейчас в теме
&НаСервереБезКонтекста
Функция СформироватьМассивДокументов()
        
    МассивНовыхДокументов = Новый Массив;
    МассивНовыхДокументов.Добавить(Новый Структура("Организация", Справочники.Организации.НайтиПоНаименованию("Управленческая организация")));
    МассивНовыхДокументов.Добавить(Новый Структура("Организация", Справочники.Организации.НайтиПоНаименованию("Стройснаб")));
   
    Возврат МассивНовыхДокументов;

КонецФункции


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


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

В любом случае программное открытие формы в 99% случаев надо делать через ОктрытьФорму(..) с параметрами...и как показывает практика почти всё и всегда можно решить через эти параметры.
ЗЫ В типовой УТ почему-то довольно криво описаны варианты заполнения конкретно для этих документов, но всё равно даже этим кодом можно воспользоваться.
Xershi; hasp_x; +2 Ответить
4. Wezoowy 66 30.09.15 12:24 Сейчас в теме
(3) slazzy, Спасибо, хороший вариант. Но суть как раз в том, что у меня нет возможности править конфу заказчика. Но при этом конфа изменена, добавлены реквизиты в документ, в ТЧ. Механизм нужен был полностью независимый.
5. Yashazz 2854 02.10.15 18:05 Сейчас в теме
(4) может, я чего не понял, но делать можно так.

а) Предположим, можно обойтись внешней обработкой по пинку пользователя. Тогда на сервере создаются документы, заполняются все нужные реквизиты, и возвращаются ссылки на свежесделанные документы, каковые в цикле на клиенте и открываются. Элементарно. Никакого вмешательства в типовую.

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

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

P.S. УТ 11 может работать в режиме толстого клиента???
6. Wezoowy 66 03.10.15 00:31 Сейчас в теме
(5) Yashazz,
а) все верно, если документы записать, то да, просто передать ссылки и открыть. НО! Должны были быть открыты формы новых (незаписанных) документов (Я не указал в описании, извиняюсь).
б) Вмешательство в конфу - крайне нежелательно...

А насчет толстого клиента - таки а почему нет? УФ, толстый клиент.
7. webester 29 04.10.15 07:45 Сейчас в теме
В похожих статьях как раз есть статья в которой есть и процесс и отсылки в гугол и мой c##ч с автором на тему да RTFM же!
8. Sema76 1 01.11.15 08:58 Сейчас в теме
Спасибо! Отличная статья! Все работает! Я сначала пытался получить таблицу значений с сервера на клиенте. Оказывается это совсем не нужно. (Время зря только тратил.) Мне надо на основании одного документа создать несколько в зависимости от данных табличной части. Все получилось.
Для полноты. Как заполнить табличную часть.
http://its.1c.ru/db/metod8dev/content/2322/hdoc
9. Гость 30.05.16 00:57
Строка "ФормаДокумента.Объект" не работает. Пишет, что поле "Объект" не найдено.
10. vaidamirjan 16.11.17 13:52 Сейчас в теме
Сдается мне что ЗаполнитьДанныеФормыНаСервере надо заменить на ЗначениеВДанныеФормы

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

И, да! Спасибо! Отличная статья! Очень помогла.
11. oks-nt 40 26.01.18 13:40 Сейчас в теме
Создать одновременно несколько новых документов клиентскими методами без записи самих объектов используя метод ОткрытьФорму достижимо. Достаточно при вызове метода ОткрытьФорму указать различные значения параметра КлючУникальности, например Новый УникальныйИдентификатор.

Примерно таким образом:

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

Первоисточник:
http://v8.1c.ru/metod/faq2/answer.jsp?id=609
Daynestro07; +1 Ответить
12. Dim.Gadget 19.08.18 17:48 Сейчас в теме
Спасибо огромное за статью!
13. rmIvanT 7 24.06.19 10:25 Сейчас в теме
Благодарю за статью! Хорошие костыли - рабочие)
Оставьте свое сообщение

См. также

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

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

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

16.10.2019    1174    YPermitin    11       

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

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

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

06.10.2019    3332    YPermitin    20       

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

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

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

02.10.2019    3941    VachKirp    8       

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

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

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

25.09.2019    1516    Sergey_Borisovi4    2       

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

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

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

26.08.2019    3075    rpgshnik    33       

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

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

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

14.08.2019    2511    nagaitseff    11       

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

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

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

07.08.2019    4497    IvanAT1981    14       

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

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

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

09.07.2019    6174    ids79    0       

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

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

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

04.06.2019    14183    YPermitin    49       

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

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

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

14.05.2019    7344    Viktor_Ermakov    6       

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

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

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

24.04.2019    4497    olegpkc    5       

Раздельный вывод частей даты на форму без программирования 71

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

Небольшой лайфхак для повышения удобства редактирования пользователем полей с типом "Дата".

12.01.2019    5683    drmaxart    20       

Динамический вывод таблицы значений на форму 35

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

Вывести на форму таблицу значений, а потом на её место другую, третью, четвёртую? Не вопрос.

11.01.2019    5642    Vlad1917    26       

Тот самый Рабочий стол. Возрождение легенды 76

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

Невероятный инструмент построения адаптивных интерфейсов.

30.11.2018    9910    1c-intelligence    23       

Подсчёт и отображение количества строк в динамическом списке 20

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

Зачастую пользователи хотят видеть, сколько же строк содержится в форме списка, например, товаров. Да ещё и с учётом отборов, полнотекстового или "обычного" поиска, чтобы это работало в многих формах списка конфигурации, да ещё и не тормозило.

28.11.2018    5644    sano    22       

Прикладной пример переработки стандартной формы РМК - Розница 74

Статья Программист Нет файла v8 Розница УУ Кассовые операции Розничная торговля Бесплатно (free) Работа с интерфейсом

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

04.10.2018    10807    asdfgcom    56       

Cправочная информация. Картинки. 16

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

Справочную информацию мало кто любит писать, но вот захотелось. И что с этим делать?

06.06.2018    6380    aspirator23    2       

Бодаемся с отображением отборов на управляемых формах 82

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

Рассмотрим в статье, как настроить отображение пользовательских отборов на форме по своему желанию.

30.05.2018    14489    lemz    14       

Итоги в динамическом списке 47

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

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

28.05.2018    8969    CXY    16       

Программное управление обычными формами документов и справочников в УПП/КА 32

Статья Программист Нет файла v8 v8::УФ КА1 УПП1 Россия Бесплатно (free) Работа с интерфейсом

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

09.05.2018    8401    dima_home    7       

Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением 26

Статья Программист Нет файла v8 v8::УФ Беларусь Windows Бесплатно (free) Работа с интерфейсом

Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

06.04.2018    9754    Drak87    18       

Красивые графики. Пошаговая инструкция (Highstock) 122

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

Данный подход опробован на библиотеках: Нighcharts и Highstock. Для работы будет необходима 1С и браузер Google Chrome. Чукча не писатель (первая публикация).

22.11.2017    14163    Degrement    20       

Меняем стандартную форму выбора для реквизита формы на свою форму с запросом 51

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

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

30.09.2017    15766    ah7777777    24       

Подбор в управляемой форме - что может быть проще? 119

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

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

19.09.2017    27849    starik-2005    51       

"Мигаем" интерфейсом, или цепочки асинхронных вызовов 71

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

Как, не блокируя интерфейс, привлечь внимание пользователя к интерфейсным элементам. Или, попросту говоря, "мигнуть" чем-то.

06.09.2017    12599    Chrizt    13       

Создание динамически подгружаемых печатных форм на 8.2, как это было реализовано в 1С:7.7 13

Статья Программист Нет файла v8::УФ Россия Windows Бесплатно (free) Работа с интерфейсом Практика программирования

При создании собственной, легкой, автономной конфигурации для филиалов на управляемых формах необходимо было решить одну задачу: «БЕЗ обновления конфигураций необходимо легко и быстро обновлять/добавлять печатные формы для любого документа в 1С». Очень понравилось ранее существовавшее решение по динамической подгрузке внешних печатных форм в 1С 7.7. Его и реализуем.

28.07.2017    12469    dima_home    8       

"Восстановить положение окна" - не помогает. Как я решил проблему. 28

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

Как получилось решить проблему глюков отображения формы документа.

28.05.2017    46529    niko11s    44       

Как добавить/убрать кота в отчет? 78

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

Кот в отчете: кому-то нравится, кого-то жутко бесит. Как избавиться, заменить, оставить (нужное подчеркнуть)?

12.05.2017    23088    starik-2005    16       

Итоги в динамическом списке 46

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

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

03.04.2017    20933    Восьмой    34       

Кнопки управления группировками табличного документа для управляемых форм (через подменю командной панели) 30

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

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

02.03.2017    13053    dj_serega    0       

Таблицы на управляемых формах: создание, расширение, управление. 92

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

Как вывести результат запроса в таблицу на управляемую форму, ведь здесь нет метода "СоздатьКолонки()"? Как добавить поле ввода в табличную часть документа, если нет желания менять документ? Разбираемся...

10.01.2017    45794    starik-2005    24       

Возвращение старого поиска в новых релизах Бухгалтерии предприятия 3.0 35

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

В последних релизах Бухгалтерии предприятия 3.0 почти во всех списках разработчики включили полнотекстовый поиск. Эта статья предназначена для тех, кто воспринимает "в штыки" такие нововведения, я расскажу, как вернуть старый поиск.

13.12.2016    17850    ardn    34       

Исправление проблем со встраиванием внешних отчетов в УНФ 1.6 12

Статья Программист Нет файла v8 УНФ Россия Бесплатно (free) Работа с интерфейсом

В УНФ 1.6 (тестил на версии 1.6.7.43) существуют следующие проблемы: 1. при встраивании доп. отчета в базу, он не отображается, пока не собьешь фильтр подсистемы 2. при встраивании доп. отчета в базу, отсутствует команда «Дополнительные отчеты» (по аналогии с командной «Дополнительные обработки») . В статье описывается решение перечисленных проблем.

16.11.2016    11462    TheRealStanly    3       

Как "перемотать" динамический список в начало при открытии? (или некоторые нюансы получения данных динамического списка) 57

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

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

03.11.2016    19062    Fragster    25       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

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

Пример динамического создания графических схем, добавления элементов любых видов. Любые схемы без бизнес-процессов. Программная работа со схемой. Отличие от существующей статьи в том, что здесь используется объектная модель. Исправил и упростил некоторые моменты - результат соответствует схеме, созданной руками. Добавил возможность рисования произвольных форм для существующих фигур.

27.09.2016    16882    serg_infostart    15       

Автоматическое добавление новых реквизитов на форму (УФ) 38

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

Идея такая: Программист добавил реквизит в объект. В комментарии этого реквизита прописал некое спец. слово (можно не матерное). На форму объекта новый реквизит далее попадает автоматом в спец. группу "Дополнительно".

03.08.2016    16218    Патриот    23       

Управляемые формы: Поле HTML Документа и веб-клиент 57

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

Взаимодействие javascript и интерфейса 1С дает огромные возможности для реализации нестандартных функций. Раньше можно было напрямую вызывать функции JavaScript через DOM объект document Поля HTML документа. В современных браузерах эта возможность ушла. Более того, в веб-клиенте появляется тип ВнешнийОбъект, который вообще нигде не описан. На Инфостарте были предложения вызывать JavaScript через fireEvent, но это очень неудобно. Предлагаю свой вариант решения.

18.07.2016    24155    compguru    10       

Как вывести динамическое представление для пустого значения (в таблице)? 23

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

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

29.03.2016    9713    weissfeuer    9       

Выделение документов в динамическом списке 20

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

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

01.02.2016    15779    Sardukar    7       

Три приёма, позволяющие сделать интерфейс конфигураций 1С на управляемых формах удобнее при большом шрифте 52

Статья Программист Нет файла v8 УНФ ERP2 БП3.0 Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

С появлением управляемых форм вообще и БП 3.0 в частности пользователи, которые не хотят портить своё зрение рассматриванием мелкого шрифта, оказались в невыгодном положении. Многих элементов на экране в "тяжёлых" документах вообще оказалось не видно. Все попытки решить вопрос штатными средствами настройки предприятия оказались неэффективны. Вот несколько приёмов, которые буквально в два щелчка мышкой и парой строк кода помогут решить проблему.

05.11.2015    15012    H-Labs    11       

Как скрыть "пустые группы" в списке выбора справочника при отборе 46

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

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

29.10.2015    25592    shevelyov    25       

Параметры сеанса. 47

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

Параметры сеанса - это объекты метаданных конфигурации. Поговорим об их назначении и принципах работы с ними.

06.09.2015    55407    niko11s    8       

Шкала в строке состояния 51

Статья Программист Нет файла v8 Windows Бесплатно (free) Работа с интерфейсом

Простая шкала, не требующая дополнительных форм и элементов управления

31.08.2015    13448    Ivon    26       

Назначение сочетания клавиш для кнопок командной панели (Обычные формы) 13

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

Назначение сочетания клавиш кнопкам командной панели Формы списка/выбора для любой конфигурации (Обычные формы)

07.08.2015    15107    bld    7       

Развитие управляемого интерфейса в 1С 8.2 - 1С 8.3 55

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

К управляемым формам, которые появились в 8.2, я до сих пор относился презрительно. Считал это неудачной попыткой 1С следовать модным тенденциям в разработке интерфейсов и прогибом для возможности работать через браузер. Я считал, что 1С пожертвовала простотой разработки в угоду веб-доступу. Но после курсов Арутюнова Сергея по управляемому интерфейсу в июле 2015 года в УЦ1 я поменял ненависть на любовь. Звучит парадоксально, но это так. А теперь подробнее…

27.07.2015    35035    fixin    103