Безудержный танец с бубном или «Как открыть форму незаписанного документа в управляемом приложении»

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

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

83
Вы уже начали работать с управляемым приложением?
А вам уже доводилось открывать форму незаписанного документа (справочника)?
Когда пользователь должен сам принять решение о необходимости его записи.
То, что было просто в обычных формах - превратилось в забавную камасутру в управляемом интерфейсе.

Как легко и по шагам решить поставленную задачу - вы узнаете в данной публикации.

Во первых: Почему так сложно?

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

На управляемых формах все несколько иначе. Объект и форма живут совместно совсем непродолжительное время. Например в обработчике "При чтении на сервере". Но данный обработчик вызывается только при открытии уже записанного объекта (далее - документа).

Более подробно «Разработка управляемого интерфейса» В.А.Ажеронок, А.В. Островерх, М.Г.Радченко, Е.Ю.Хрусталева, гл. 3.8 стр. 404

 

Может возникнуть желание воспользоваться методами Глобального контекста

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)
ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>)

Но, все же, это не наш случай. Вторым параметром необходимо передавать ссылку, а ее то у нас и нет (объект еще не записан в базу данных).

Поэтому, было найдено следующее решение.

 

План наступления: 

1. НА КЛИЕНТЕ:

1.1 Создаем форму нового документа (метод гл. контекста "ПолучитьФорму")

1. 2 Получаем объект новой формы - это пока лишь основной объект формы (представляет собой универсальную коллекцию).

2. НА СЕРВЕРЕ:

2.1 Вспомогательные действия (не обязательные). Получаем данные для заполнения нового документа.

2.2 Получим документ - объект. Это именно объект информационной базы (Тип - Документ объект)

2.3 Вызовем обработчик заполнения нового документа (ОбработкаЗаполнения)

2.4 Производим обратное преобразование: документ объект - в основной объект формы (универсальную коллекцию)

3. НА КЛИЕНТЕ:

3.1 Теперь в контексте клиента имеем две коллекции основного реквизита:

одна - созданная при создании формы (пока пустая)

вторая - та, которую заполняли на сервере (ее и требуется отобразить)

Поэтому, теперь необходимо подменить основной реквизит созданной на шаге 1.1 формы на заполненный нами (на шаге 2.3). Простое присвоение значения не пройдет. Необхоидимо перезаполнить коллекцию. Удобнее это выполнить с помощью специального метода глобального контекста КопироватьДанныеФормы(<Источник>, <Приемник>)

3.1 Открываем подготовленную форму.


Собственно решение


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

   
// 1.1
    // Получаем форму нового подчиненного документа
   
ФормаПодчиненного = ПолучитьФорму("Документ.ПеревыставлениеТоваровУслуг.ФормаОбъекта");

   
// 1.2
    // Получим объект формы - это Новый - создаваемый объект
   
ОбъектФормы = ФормаПодчиненного.Объект;

   
// 2. Передадим управление на сервер.
   
ЗаполнитьПодчиненныйДокументПеревыставленияНаСервере(ОбъектФормы, Объект.Ссылка);

   
// 3.1
    // В ранее созданной форме нового документа переопределим объект - документ (подменим его на заполненный документ)
   
КопироватьДанныеФормы(ОбъектФормы, ФормаПодчиненного.Объект);

   
// 3.2
   
ФормаПодчиненного.Модифицированность = Истина; // Чтобы выдавалось сообщение при попытке закрыть документ без сохранения
   
ФормаПодчиненного.Открыть();

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

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

   
// 2.1
    // Подготовим данные для заполнения нового документа
   
ДанныеДляЗаполнения = Документы.ПоступлениеПеревыставляемыхТоваровУслуг.ПолучитьСтруктуруДанныхЗаполнения();

   
// 2.2
    // Получим документ-объект (для дальнейшего заполнения)
   
ДокументОбъект = ДанныеФормыВЗначение(ОбъектФормы, Тип("ДокументОбъект.ПеревыставлениеТоваровУслуг"));

   
// 2.3
    // Вызовем процедуру обработки заполнения
   
ДокументОбъект.Заполнить(ПараметрыОтбораПеревыставления);

   
// 2.4
    // Преобразуем прикладной объект - в объект формы (коллекцию)
   
ЗначениеВДанныеФормы(ДокументОбъект, ОбъектФормы);

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


Резюме:

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

83

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Поручик 4328 03.06.13 09:47 Сейчас в теме
(0) Делаю первый вброс на вентилятор.

Проснулся, всё уже украдено до вас.
Примеры использования:
http://infostart.ru/public/141777/
http://infostart.ru/public/83963/
http://infostart.ru/public/83248/
lana_veta; KapasMordorov; +2 Ответить
2. director04 3580 03.06.13 10:12 Сейчас в теме
(1) Поручик, Спасибо за инфу, когда нужно было - не нашел ))))
Хотя, по вашему описанию ни как невозможно понять, что вы описываете метод открытия НЕ записанного элемента справочника или документа.
Да и кодов процедур я там не нашел. ))))
kyrasol; ShootNICK; 127.0.0.0; +3 Ответить
3. Поручик 4328 03.06.13 10:15 Сейчас в теме
(2) И ещё вброс: в параметры формы можно передать структуру ЗначенияЗаполнения.
4. Поручик 4328 03.06.13 10:18 Сейчас в теме
(2) Как же ты их искал, если ни один файл не скачан? Там как раз используется связка ПолучитьФорму - КопироватьДанныеФормы
6. director04 3580 03.06.13 11:05 Сейчас в теме
(4) Поручик, только на ИС сотни тысяч отчетов и разработок. Если каждую скачивать и анализировать код на предмет "а нет ли там открытия незаписанного документа"... сколько на это уйдет времени? )))
Добавь соответствующее описание в свои работы и тема оживет.

Видно потому и не нашел. А когда нарисовал сам, то появилось желание поделиться с сообществом. Может кому окажется полезным
Касаткин; hame1e00n; juliia1992; Brawler; kiruha; SeiOkami; makarovy; kyrasol; BolshoySmal; CratosX; +10 Ответить
10. Поручик 4328 03.06.13 11:19 Сейчас в теме
(6) Вы же написали: тема поупрожняться в собственном величии. Я и поупрАжнялся.
А ещё поищите и почитайте орфографический словарь.
Новиков; director04; +2 5 Ответить
11. w-divin 03.06.13 12:20 Сейчас в теме
(10) Поручик,
а мине низнаком арфаграфичиский славарь.
А человеку за статью спасибо.
поиск по инфостарту, к величайшему вашему сожалению, ни одну из представленных вами ссылок не показывает...
http://infostart.ru/catalog/?q=%EE%F2%EA%F0%FB%F2%FC+%F4%EE%F0%EC%F3+%ED%E5%E7%E0%EF%E8%F­1%E0%ED%ED%EE%E3%EE+%E4%EE%EA%F3%EC%E5%ED%F2%E0&sa=%CD%E0%E9­%F2%E8

посему пост (1) получается вообще не в тему...
juliia1992; eeeio; director04; +3 Ответить
12. director04 3580 03.06.13 13:12 Сейчас в теме
(10) Поручик,
Вы же написали: тема поупрожняться в собственном величии. Я и поупрАжнялся.
А ещё поищите и почитайте орфографический словарь.


Спасибо, поправлю. )))))
Флудите сколько угодно - когда с позитивом - ни грамма не жаль )))

ps: А с "великим и могучим" у меня всю жизнь нелады.... )))
hame1e00n; +1 Ответить
5. akomar 423 03.06.13 11:03 Сейчас в теме
Использование конструкции ФормаПодчиненного.Открыть(); в управляемом приложении признак плохого тона. Используйте функцию ОткрытьФорму, или ОткрытьФормуМодально.
7. director04 3580 03.06.13 11:08 Сейчас в теме
(5) akomar,
Использование конструкции ФормаПодчиненного.Открыть(); в управляемом приложении признак плохого тона. Используйте функцию ОткрытьФорму, или ОткрытьФормуМодально.


Да, конечно, именно так и сделал бы. Но, дело в том, что форму сперва необходимо подготовить. А затем уже открыть.
Поэтому, сперва делается "лишний" серверный вызов "ПолучитьФорму".... а после заполнения - уже Форма.Открыть().

Если "тон плохой" - сори за грубость )))
8. akomar 423 03.06.13 11:15 Сейчас в теме
В процедуру ОткрытьФорму можно передать уже подготовленную форму, так ведь и написано в синтаксис-помощнику :)
9. akomar 423 03.06.13 11:16 Сейчас в теме
Синтаксис:

ОткрытьФорму(<Форма>, <Окно>)
Параметры:

<Форма> (обязательный)

Тип: Форма; УправляемаяФорма.
Форма или управляемая форма. В режиме тонкого и веб-клиентов только управляемая форма.
<Окно> (необязательный)

Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна.
Окно приложения, в котором будет открыта форма.
Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы.
В случае использования ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту.
13. Новиков 291 03.06.13 19:50 Сейчас в теме
Велосипед страшный. Посмотрите ж тестовую БСП наконец!
14. director04 3580 03.06.13 22:20 Сейчас в теме
(13) Новиков,
Велосипед страшный. Посмотрите ж тестовую БСП наконец!
.

А вы выложите здесь кусок кода из БСП. Кому то да пригодится...
Главное не забудьте структурировать его потолковее и сопроводить пояснениями. Я первый скажу вам спасибо.
15. awk 692 03.06.13 23:48 Сейчас в теме
(14) А вы почитайте перед плясками методички, тогда и бубен не потребуется.

Вариант 1:

ОткрытьФорму(<ИмяФормы>, Новый Структура("... , ЗначениеЗаполнения", ... , Новый Структура(...)))

Вариант 2:

Форма = ПолучитьФорму(...);
Форма.ЗаполнитьОбъектПо(...);
Форма.Открыть();
CratosX; bulpi; +2 Ответить
16. director04 3580 04.06.13 09:17 Сейчас в теме
(15) awk,
А вы почитайте перед плясками методички, тогда и бубен не потребуется.

Вариант 1:

ОткрытьФорму(<ИмяФормы>, Новый Структура("... , ЗначениеЗаполнения", ... , Новый Структура(...)))

Вариант 2:

Форма = ПолучитьФорму(...);
Форма.ЗаполнитьОбъектПо(...);
Форма.Открыть();


Спасибо за конструктив и снисходительность к начинающему. ))) Конечно методички почитал, и не одну (см. публикацию, там есть ссылка).
Но, был бы рад, если бы помогли разобраться:
1. Варинат-1 -как вызвать обработчик заполнения?
2. Вариант-2 - ни как не могу у формы найти метод "ЗаполнитьОбъектПо(...)". Помогите плиз разобраться.

Хотя, по своему подходу Вариант-2 практически полностью повторяет мой подход к решению задачи. Разве только начинающему будет трудно разобраться как и что сделать. Допустим "для чего предназначен метод "КопироватьДанныеФормы"".
18. awk 692 04.06.13 10:06 Сейчас в теме
(16)

В варианте 1:

Если передается параметр форме "ЗначениеЗаполнения" или "ЗначенияЗаполнения" (точно не помню я или е). То обработчик заполнения будет вызван автоматически.

В варианте 2:

Ну нет, так создай - "Процедура ЗаполнитьОбъектПо(...) Экспорт". Данный вариант (как написано в методичке) используется при сложных алгоритмах заполнения реквизитов формы.
17. Новиков 291 04.06.13 09:56 Сейчас в теме
(14) прелесть БСП в том, что подобные "танцы с бубном" как у вас (без осуждения :)) от нас скрыты многокилометровыми обвязами. От вас же нужно знание, какой тип команды указать при решении подобной функциональности. Поэтому, мой совет взглянуть в типовую, в силе. Кусок кода с радостью бы выдрал, но не вижу в этом никакого смысла, хотя бы потому что оный голый, вероятно всего будет требовать какого-то вдумчивого осмысления :)
19. vandalsvq 1129 04.06.13 11:42 Сейчас в теме
А что фраза "кури ЖКК" вышла из моды? Автору я бы посоветовал внимательнее читать мануалы. Тогда и танцевать с бубном не придется.
20. director04 3580 04.06.13 12:45 Сейчас в теме
Да ладно, ребята, главное ногами не пинайте.... ))))
21. kser87 1863 04.06.13 12:58 Сейчас в теме
Радченко, Хрусталева. Разработка управляемого интерфейса. Страница 368. Отрытие формы нового объекта

ОткрытьФорму("Справочник.Товары.Форма");

Можно передать данные заполнения например:

Параметры = Новый Структура;
Параметры.Вставить("ЭтоГруппа", Истина);

ОткрытьФорму("Справочник.Товары.Форма", Параметры);

Если обработка заполнения сложная, то нужно сделать так:

Параметры = Новый Структура;
... заполняем параметры

ОткрытьФорму("Справочник.Товары.Форма", Параметры);

Далее в модуле объекта, в процедуре ОбработкаЗаполнения пишем

СтандартнаяОбработка = Ложь;

В той же процедуре есть параметр "ДанныеЗаполнения", в котором доступно все, что было указано в структуре "Параметры" метода "ОткрытьФорму".

И только так. Метод "ПолучитьФорму" в этом случае использовать нельзя. Не поленитесь сделать замер производительности и сравнить затраченное время на "ПолучитьФорму" и "ОтрытьФорму".
kiruha; mike_grig; Razrab1c; sergo5; Hexed; insurgut; Elvisnya; Den_D; webester; CratosX; bulpi; slavap; director04; +13 Ответить
22. director04 3580 04.06.13 14:14 Сейчас в теме
(21) kser87, Спасибо за конструктивное предложение, но:

Если обработка заполнения сложная, то нужно сделать так:

Параметры = Новый Структура;
... заполняем параметры

ОткрытьФорму("Справочник.Товары.Форма", Параметры);

Далее в модуле объекта, в процедуре ОбработкаЗаполнения пишем

СтандартнаяОбработка = Ложь;

В той же процедуре есть параметр "ДанныеЗаполнения", в котором доступно все, что было указано в структуре "Параметры" метода "ОткрытьФорму".


Так и пытался сделать,но: в обработчике "Обработка заполнения" данные параметры не доступны через "ДанныеЗаполнения"
Данная структура будет доступна только лишь в модуле формы в обработчике "ПриСозданииНаСервере". Можно конечно использовать это как вариант. Спасибо за позитив и за подсказку.
23. kser87 1863 04.06.13 14:39 Сейчас в теме
(22) при открытии именно нового объекта должны быть доступны. Смотрите внимательнее.

В принципе в обработчике "ПриСозданииНаСервере" желтая книжка допускает их использование для описанных целей. Но мне кажется, что лучше впихнуть все-таки в обработку заполнения. Эта же обработка используется при вызове метода "Заполнить" объекта и при создании на основании. Т.е. это повторное использование кода: меньше работы, ошибок и все такое)
24. director04 3580 04.06.13 15:03 Сейчас в теме
(23) kser87,
В принципе в обработчике "ПриСозданииНаСервере" желтая книжка допускает их использование для описанных целей. Но мне кажется, что лучше впихнуть все-таки в обработку заполнения.


Да, именно потому и пошел тем путем, который изложил в своей публикации (чтоб заполнение проводилось в подписке "ОбработкаЗаполнения"). Тупо передать через параметры не удалось.
Так что напрасно вы "первый бросили в меня камень" ))))
25. kser87 1863 04.06.13 15:07 Сейчас в теме
(24) при чем тут подписка?)) не понимаю, зачем делать заполнение в подписке?

я имею в виду процедуру модуля объекта
41. slazzy 38 05.11.14 16:28 Сейчас в теме
(21) kser87, Товарищи, я понимаю, что я некропостер :) но может быть это будет кому-то интересно. На самом деле вы всё верно описали за единственным исключением, данные нужно передать в вот таком виде

ЗначенияЗаполнения = Новый Структура;
/////// заполнение структуры
............................
	
ПараметрыОткрытия = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);
ОткрытьФорму(ИмяФормы, ПараметрыОткрытия)


В таком случае данные из этой структуры попадают в ДанныеЗаполнения события ОбработкаЗаполнения в виде структуры и соответственно их можно обрабатывать как угодно. Плюс если не отключать стандартную обработку, то данные из этой структуры автоматически заполнят реквизиты у которых установлено Заполнять из данных заполнения.
SShipilov; hame1e00n; COMPER; Gasilin; 013; Volchock; cj512; +7 Ответить
42. director04 3580 07.11.14 17:22 Сейчас в теме
(41) slazzy, да, спасибо. По теме....
52. hame1e00n 507 30.06.19 21:51 Сейчас в теме
(41)
ЗначенияЗаполнения = Новый Структура;
/////// заполнение структуры
............................

ПараметрыОткрытия = Новый Структура("ЗначенияЗаполнения", ЗначенияЗаполнения);
ОткрытьФорму(ИмяФормы, ПараметрыОткрытия)


Я вот только не смог таким образом заполнить ТЧ нового документа.
Для ТЧ не работает способ с использованием ЗначенияЗаполнения?

У меня в исходном и конечном документе две табличных части "Товары":

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


Так не работает... Вернее шапка заполняется, а табличная часть нет...
26. director04 3580 04.06.13 15:42 Сейчас в теме
Под словом "Подписка" я имел ввиду Событие "ОбработкаЗаполнения" (стр. 429 желтой книжки) :)
То есть Подписка на событие "ОбработкаЗаполнения"...
Если при программном открытии формы ОткрытьФорму("...", ПроизвольнаяСтруктура"); в нее передать произвольную структуру, то в Событии "ОбработкаЗаполнения", данные заполнения приобретают значение "Неопределено".

А вот в подписке "ПриСозданииНаСервере", данная структура попадает в параметры корректно. Но, все же хотелось бы заполнять ТЧ документов в процедуре "ОбработкаЗаполнения".
27. Rustig 1191 05.06.13 06:22 Сейчас в теме
(0) плюс за открытие: "простые технологии разработки обычного приложения стали сложными в управляемом приложении" :)
...сколько вас "всесторонне" знающих управляемое приложение? откликнетесь! :)
...теперь без дебатов не решить простые задачки :( ...
nixel; director04; +2 1 Ответить
28. kser87 1863 05.06.13 10:14 Сейчас в теме
(27) Rustig, достаточно просто почитать справку и никаких дебатов не надо
30. director04 3580 05.06.13 11:33 Сейчас в теме
(29) evg300183,
Спасибо за обработку, очень полезная вещь, контора довольна!


))) Немного не в ту ветку, но все равно, приятно.
31. Ibrogim 1107 05.06.13 11:35 Сейчас в теме
(30) Это спамер. Ему всё очень полезно.
32. KapasMordorov 428 05.06.13 11:56 Сейчас в теме
Спамер к спамеру зашел и запОстил кроха: "копипаст - хорошо, синтакспомощь - плохо".
33. kote 499 05.06.13 20:31 Сейчас в теме
Вы написали, что невозможно передать ссылку на объект, если объект незаписан.
Но есть еще возможносность получения пустой ссылки любого объекта - почему её не использовали?
34. director04 3580 05.06.13 20:47 Сейчас в теме
(33) kote,
Но есть еще возможносность получения пустой ссылки любого объекта - почему её не использовали?


Пробовал )))) При этом откроется пустой (незаполненный) документ.
35. webester 29 07.06.13 05:58 Сейчас в теме
Так и хочется стукнуть человека автора головой об... Гугл что бы не плодил велосипедов.
36. director04 3580 07.06.13 07:43 Сейчас в теме
(35),
Так и хочется стукнуть человека автора головой об... Гугл что бы не плодил велосипедов.

Не заносись, Ромушка. Лучше посмотри со стороны на свои бездарные публикации с рейтингом в 0 и 2 балла....
37. webester 29 07.06.13 15:34 Сейчас в теме
Не заносись, Ромушка.

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

В чем бездарность, можно подробностей?
с рейтингом в 0 и 2 балла....

Есть такое дело, согласен. Не сказать, что бы это меня сильно беспокоило. Нужен рейтинг, набросал статейку рейтинг 117 про то как импортировать 2 ключа в реестр. Но нравится сообществу такие статьи. О чем то простом, я не люблю такое писать, совести не хватает а на сложное... мозгов. Но сообществу интересны розовые сопли Про списки значений рейтинг(173) или про переключатели рейтинг 76 Не особо интересно про это писать. Когда хочется, что то написать, иногда что то пишу себе в бложек. Но что то последнее время и без него хватает писанины.
38. director04 3580 07.06.13 15:57 Сейчас в теме
(37) webester,
1. Почему "Ромушка" - хотя бы потому, что вести себя (хотя бы на форуме) стоит корректно. Тем более с человеком, у которого сын твой ровесник.
2. Почему "бездарные" - так это не я оценил. А сообщество. Раз рейтинг в пределах 0-2. Видно ни кому они не нужны....
3. Есть у вас одна публикация, которая оценена по достоинству интернет-сообществом. И, ни кто вас не обещал ударить головой об паркет, за то, что вы изобрели не только велосипед, но еще и велосипед с бородой.
Сами знаете, что стартеров 1С на Инфостарте огромное множество.
Людям понравилось, что вы в данной публикации имели свой взгляд на эту тему - и в этом вы молодец. Интернет от этого не опухнет и Гугля не перетрудится.

Скажите, что же вас так раздосадовало, что я решил изложить свой взгляд на эту проблему? Или кому то от этого станет плохо? Поверьте, найдется еще много людей, которым поможет моя статья. (их уже, как минимум 35 человек).
Не уподобляйтесь тем, кому главное повысить свою самооценку, раскритиковав работу другого человека.
Пишите свои вещи. Берите хорошее у других. И учитесь на ошибках других.
А "бить головой об...." - для этого ума много не надо ))))
39. webester 29 07.06.13 18:14 Сейчас в теме
1. Почему "Ромушка" - хотя бы потому, что вести себя (хотя бы на форуме) стоит корректно. Тем более с человеком, у которого сын твой ровесник.

Я не спрашивал, почему Ромушка, я вполне понимаю почему :) батхерт вас мучает уважемый вот и кривляетесь. И да абсолютно наплевать, с кем у вас сын ровесник. Мне вообще наплевать есть ли он у вас. Потому, что это не меняет ничего. Это интернет детка :)
Почему "бездарные" - так это не я оценил

Так я и спрашиваю в чем причина, просто плюнуть надо в ответ? Или есть что сказать по существу?
А сообщество. Раз рейтинг в пределах 0-2. Видно ни кому они не нужны....

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

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

Не было никакого взгляда, это обсосаная с ног до головы диллема. Надо просто спросить. Все. Мне непонятно от чего вы так возбудились? От того, что ровесник вашего сына отправил вас в гугл в немного грубой форме? Приношу свои глубочайшие извинения вашей нежной и ранимой натуре(действительно, без сарказма, не ожидал обиды). Надо иметь ввиду, что это же инте... ну вы поняли, не буду повторяться.
40. director04 3580 07.06.13 21:44 Сейчас в теме
(39) webester, :) Трудный ребенок ))
43. aet 37 01.04.15 13:02 Сейчас в теме
Бубен еще пригодится, как решить аналогичную задачу для группы элемента?
44. Davlad_A 59 16.11.15 02:03 Сейчас в теме
director04, спасибо за ясный алгоритм действий и главное, за желание облегчить жизнь другим и поделиться опытом ! !
45. sokir 29.01.16 15:25 Сейчас в теме
Автор молодец. Да через ОтрытьФорму оно то правильнее, но как передать через параметры шапку и ТЧ? Клиент с таблицейзначений не дружит.
Получается выхода другого нет. Если я ошибаюсь, то отпишите как передать ТЧ.
Теоретически можно через ПоместитьВоВременноеХранилище, но думаю это будет дольше работать. А меня интересует более оптимальный вариант.
Еще можно массив со структурой, но много лишнего кода надо писать. Наверно он будет быстрее, но не факт - там куча нетипизированных структур в массиве прийдется передать.
Третьего вроде не дано платформой в упр формах.
Пока вариант предложенный автором наверно более оптимален.
И в кратце может ктото объяснить чем плохо ПолучитьФорму? Почему она дольше открывается?
47. Гость 30.05.16 01:29
ОбъектФормы = ФормаПодчиненного.Объект;
Это не работает. Пишет, что поле "Объект" не найдено.
sergoqwe; +1 Ответить
48. sergoqwe 06.09.16 10:58 Сейчас в теме
(47) Гость,
&НаКлиенте
Процедура Команда1(Команда)

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

&НаСервере
Функция ЗаполнитьДокументНаСервере(ДанныеФормы);
	Док = ДанныеФормыВЗначение(ДанныеФормы, Тип("ДокументОбъект.РеализацияТоваровУслуг"));
	Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
	Док.Дата = НачалоМесяца(ТекущаяДата());
	СтрДок = Док.Товары.Добавить();
	СтрДок.Количество = 1000;
	ЗначениеВДанныеФормы(Док,ДанныеФормы);
КонецФункции   

&НаСервере
Функция ВидОперацииДокумента ()
	Возврат Перечисления.ВидыОперацийРеализацияТоваров.Товары;
КонецФункции
Показать

Поправьте если что не правильно, только разбираюсь с этим выносом мозга 8.3
49. logarifm 1047 03.03.17 13:42 Сейчас в теме
{ВнешняяОбработка.ЗагрузкаПоступленийИзЭксель.Форма.Форма.Форма(173)}: Поле объекта не обнаружено (Объект)
ОбъектФормы = ФормаПоступления.Объект;
Такси тонкий клиент код не рабочий!

ФормаПоступления = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта");
ОбъектФормы = ФормаПоступления.Объект;

Ребята как оказалось в Бух 3.0 ФормаОбъекта не имеет значения Объект
COMPER; Alex_mar; +2 Ответить
50. AndySuvernev 5 18.04.17 23:09 Сейчас в теме
//Оптимизация до 3-х процедур / функций


&НаСервере
Функция ПолучитьАдресМассиваНовыхДокументовНаСервере()
    // Создадим массив из нескольких документов 
    // с разным наполнением (для примера - разные организации)
    // для того, чтобы при открытии форм было сразу понятно, что 
    // это два разных документа
	
	ПарамертыВозрата = Новый Структура;
	
	
    МассивНовыхДокументов = Новый Массив;
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 3
	|	Организации.Ссылка
	|ИЗ
	|	Справочник.Организации КАК Организации"
	);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл 
		НовДок = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
		НовДок.Организация = Выборка.Ссылка;
		МассивНовыхДокументов.Добавить(НовДок);
	КонецЦикла;
	
    
    // Поместим массив с документами во временное хранилище
    // для того, чтобы иметь возможность обращаться к нему
    // со стороны клиента (передавая на сервер адрес хранилища)
    
    //МассивНовыхДокументов = ПолучитьМассивНовыхДокументовНаСервере();
    
    // 2. Помещаем этот массив во временное хранилище. На клиент возвращаем только адрес этого хранилища.
    АдресМассиваНовыхДокументов = ПоместитьВоВременноеХранилище(МассивНовыхДокументов, Новый УникальныйИдентификатор);
    
	ПарамертыВозрата.Вставить("АдресМассиваНовыхДокументов", АдресМассиваНовыхДокументов);
	ПарамертыВозрата.Вставить("КоличествоНовыхДокументов", МассивНовыхДокументов.Количество());
	
    Возврат ПарамертыВозрата;
КонецФункции

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

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

    // 1. Точно также создаем массив новых документов.
	//АдресМассиваНовыхДокументов = ПолучитьАдресМассиваНовыхДокументовНаСервере();
	//
	//КоличествоНовыхДокументов = ПолучитьКоличествоНовыхДокументов(АдресМассиваНовыхДокументов);
	
	ПараметрыМассиваНовыхДокументов = ПолучитьАдресМассиваНовыхДокументовНаСервере();
	АдресМассиваНовыхДокументов 	= ПараметрыМассиваНовыхДокументов.АдресМассиваНовыхДокументов;
	КоличествоНовыхДокументов 		= ПараметрыМассиваНовыхДокументов.КоличествоНовыхДокументов;
	
    // 3. На клиенте создаем цикл из такого количества итераций, сколько элементов есть в массиве.
    Для НомерОбъекта = 0 По КоличествоНовыхДокументов - 1 Цикл
        
        ФормаДокумента = ПолучитьФорму("Документ.ПоступлениеТоваровУслуг.ФормаОбъекта",,,Истина);
        ДанныеФормыДокумента = ФормаДокумента.Объект;
        
        // 4. В цикле создаем формы новых документов, при этом заполняя их данными из созданного массива документов. А к массиву обращаемся через адрес хранилища.
        ЗаполнитьДанныеФормыТонкийКлиентНаСервере(ДанныеФормыДокумента, НомерОбъекта, АдресМассиваНовыхДокументов);
        
        КопироватьДанныеФормы(ДанныеФормыДокумента, ФормаДокумента.Объект);
        
        ФормаДокумента.Открыть();
        
    КонецЦикла;
    
КонецПроцедуры
Показать
51. Gasilin 17 24.08.18 13:49 Сейчас в теме
Работает в обоих случаях обычной и управляемой формы:
	Для Каждого СтрокаСотрудник Из РаботникиОрганизации Цикл
			
			Док = Документы.ИТ_ОбходнойЛист.СоздатьДокумент();
			
			ПараметрыЗаполнения = Новый Структура;
//Заполняем параметры и в том числе Табличные части
	
ПараметрыЗаполнения.Вставить("Сотрудник", 				СтрокаСотрудник.Сотрудник);
			ПараметрыЗаполнения.Вставить("ДатаУвольнения", 			СтрокаСотрудник.ДатаУвольнения);
			ПараметрыЗаполнения.Вставить("ПодразделениеСотрудника", СтрокаСотрудник.Сотрудник.ПодразделениеОрганизации);
			ПараметрыЗаполнения.Вставить("СтатьяУвольнения", 		СтрокаСотрудник.СтатьяЗаконаОТрудеРК);
			ПараметрыЗаполнения.Вставить("Организация", 			Организация);
			ПараметрыЗаполнения.Вставить("Дата", 					Дата);
			ПараметрыЗаполнения.Вставить("Комиссия", 				Маршрут.Значение.Комиссия.Выгрузить());
			
			//Заполняем ТЧ.Обходной лист. Если заполнено ЗамещающееЛицо, то его подставляем в Подписант
			ТЗОбходной=Док.ОбходнойЛист.Выгрузить().Скопировать();
			Для Каждого ТекущаяСтрока Из Маршрут.Значение.СписокФизическихЛицДляСогласования Цикл 
				НоваяСтрока = ТЗОбходной.Добавить();
				ЗаполнитьЗначенияСвойств(НоваяСтрока, ТекущаяСтрока);
				Если ЗначениеЗаполнено(ТекущаяСтрока.ЗамещающееЛицо) Тогда
					НоваяСтрока.Подписант = ТекущаяСтрока.ЗамещающееЛицо; 
				КонецЕсли;
			КонецЦикла;
			ПараметрыЗаполнения.Вставить("ОбходнойЛист", 			ТЗОбходной);
			
			ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", ПараметрыЗаполнения);
 
 			фНовыйДокумент = ОткрытьФорму("Документ.ИТ_ОбходнойЛист.Форма.ФормаДокументаУправляемая",ПараметрыФормы,ЭтаФорма,Истина);
Показать


В модуле создаваемого документа:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
	
	Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
	   
		Для Каждого ПараметрЗаполнения Из ДанныеЗаполнения Цикл
			Если ЭтотОбъект.Метаданные().Реквизиты.Найти(ПараметрЗаполнения.Ключ) = Неопределено Тогда
				Продолжить;
			КонецЕсли;
			Если НЕ ЗначениеЗаполнено(ЭтотОбъект[ПараметрЗаполнения.Ключ]) Тогда
				ЭтотОбъект[ПараметрЗаполнения.Ключ] = ПараметрЗаполнения.Значение;
			КонецЕсли;
		КонецЦикла;
		Если ДанныеЗаполнения.Свойство("ОбходнойЛист") Тогда
			Для Каждого СтрокаЗначенийЗаполнения Из ДанныеЗаполнения.ОбходнойЛист Цикл
				ЗаполнитьЗначенияСвойств(ОбходнойЛист.Добавить(), СтрокаЗначенийЗаполнения);
			КонецЦикла;
		КонецЕсли;
		Если ДанныеЗаполнения.Свойство("Комиссия") Тогда
			Для Каждого СтрокаЗначенийЗаполнения Из ДанныеЗаполнения.Комиссия Цикл
				ЗаполнитьЗначенияСвойств(Комиссия.Добавить(), СтрокаЗначенийЗаполнения);
			КонецЦикла;
		КонецЕсли;
   
	КонецЕсли;
	
КонецПроцедуры

Показать
ol_2004@mail.ru; +1 Ответить
53. ol_2004@mail.ru 14.10.19 06:58 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

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

06.10.2019    2852    YPermitin    19       

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

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

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

02.10.2019    3594    VachKirp    8       

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

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

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

25.09.2019    1403    Sergey_Borisovi4    2       

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

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

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

26.08.2019    2988    rpgshnik    33       

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

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

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

14.08.2019    2398    nagaitseff    11       

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

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

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

07.08.2019    4388    IvanAT1981    14       

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

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

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

09.07.2019    5759    ids79    0       

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

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

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

04.06.2019    13564    YPermitin    49       

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

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

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

14.05.2019    7030    Viktor_Ermakov    6       

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

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

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

24.04.2019    4367    olegpkc    5       

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

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

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

11.01.2019    5503    Vlad1917    26       

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

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

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

04.10.2018    10651    asdfgcom    56       

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

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

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

06.06.2018    6318    aspirator23    2       

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

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

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

28.05.2018    8869    CXY    16       

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

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

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

09.05.2018    8321    dima_home    7       

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

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

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

06.04.2018    9675    Drak87    18       

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

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

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

22.11.2017    14070    Degrement    20       

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

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

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

30.09.2017    15652    ah7777777    24       

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

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

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

06.09.2017    12503    Chrizt    13       

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

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

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

28.05.2017    46005    niko11s    44       

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

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

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

12.05.2017    22979    starik-2005    16       

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

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

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

03.04.2017    20794    Восьмой    34       

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

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

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

16.11.2016    11380    TheRealStanly    3       

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

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

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

03.11.2016    18985    Fragster    25       

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

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

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

27.09.2016    16814    serg_infostart    15       

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

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

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

03.08.2016    16119    Патриот    23       

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

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

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

18.07.2016    23955    compguru    10       

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

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

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

29.03.2016    9647    weissfeuer    9       

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

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

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

01.02.2016    15707    Sardukar    7       

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

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

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

05.11.2015    14913    H-Labs    11       

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

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

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

29.10.2015    25449    shevelyov    25       

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

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

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

1 стартмани

29.09.2015    17938    Wezoowy    13       

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

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

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

06.09.2015    55112    niko11s    8       

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

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

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

31.08.2015    13366    Ivon    26       

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

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

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

07.08.2015    14948    bld    7       

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

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

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

27.07.2015    34962    fixin    103       

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

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

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

22.06.2015    21370    Tatitutu    12       

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

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

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

19.06.2015    100309    ekaruk    121       

Быстрый ввод строковых значений в поля составного типа 63

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

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

04.06.2015    17135    Cyberhawk    14       

Личный опыт эскплуатации интерфейса "Такси" 11

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

Уважаемые коллеги, предлагаю вам мой личный опыт использования интерфейса "Такси"

07.02.2015    15234    Marik    30       

Как перенести форму документа (справочника, ...) из одного документа (справочника, ...) в другой похожий документ (справочник, ...) 54

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

При попытке изменить Тип Реквизита «Объект» все элементы формы теряли путь к данным, ладно бы «поля ввода» (можно было выбрать заново «путь к данным»), но с табличными частями вообще труба, при выборе в «Таблице» все колонки в этом элементе банально удалялись. Можно, конечно, потратить кучу времени и вручную продублировать все то, что есть в форме оригинала, но я нашел другой путь!

26.11.2014    14218    RomanBor    18       

Создание интерфейса со всеми блокировками прав пользователя 20

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

Создание интерфейса (напр. Продавец) со всеми блокировками прав пользователя (доступ к конфигуратору, меню Операции, Все функции, правам пользователей в меню сервис и др.)

10.10.2014    12264    ~ADm!t_@vd~    8       

Свернуть с учетом уровня дерево значений на управляемой форме 11

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

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

03.10.2014    12936    ivashka    2       

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

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

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

30.09.2014    62713    John_d    14