Имя: Пароль:
1C
 
Коллеги, мне поручили сделать вложенную форму, есть опыт?
0 Гений 1С
 
гуру
06.12.21
15:22
Это читал, но это конечно баловство, не для промышленной эксплуатации: https://infostart.ru/public/1224463/
По сути, нужно форму обработки вложить в форму подбора номенклатуры на отдельную страницу.
Я так понимаю, сперва надо реквизиты перекопировать, потом элементы формы, потом добавить событийный блок.
Я уже когда-то делал вложенные формы на обычных, опыт пригодится.
Готового я так понимаю, нет?
1 Asmody
 
06.12.21
15:26
(0) там картинка в конце статьи тебе в напутствие
2 Гений 1С
 
гуру
06.12.21
16:52
(1) вызываю для формы разбор на элементы и реквизиты, все это сериализую в структуру (можно и в JSON). После этого имея эту структуру остается только создать реквизиты, создать иерархию элементов.

Нюанс в том, что я вставляю форму обработки, там есть реквизиты. Не хотелось бы перетаскивать их в форму, придется и эти реквизиты задействовать, благо в модуле обработки ничего нет.
3 Масянька
 
06.12.21
17:03
(1) Картинка - класс!
Нужно на логотип 1С.
4 mikecool
 
06.12.21
17:39
(0) маня уже лет как 7-8 спрашивал - можно ли, сказали - нет
5 Конструктор1С
 
06.12.21
17:40
(0) сделай мир чище, откажись от очередного костыля!
6 ДедМорроз
 
06.12.21
17:45
Там что-то через гланды делают.
Это не вставка формы,а вставка нового сеанса 1с в поле html-документа.

Такое и раньше млжно было сделать,когда был не web-кит, а ослмк - в нем можно было com-объекты.

А может быть спасет стыковка форм,когда нужная форма будет не внутри,а рядом
7 Гений 1С
 
гуру
06.12.21
18:21
8 Гений 1С
 
гуру
06.12.21
18:22
(5) не могу, я уже подписался. Вложенные формы в ОФ я вместе с Мортом делал. не помню, до его, после его или вместе с ним или параллельно с ним. Вышло неплохо
9 mikecool
 
06.12.21
18:25
(8) тогда читай (6) и стыкуй формы
10 Гений 1С
 
гуру
06.12.21
18:35
(9) не получится стыковать.
11 spiller26
 
06.12.21
18:39
Задумка хорошая, но реализация через веб сомнительная.
Особенно прочитал про зависшие сеансы веб-клиентов, которые будут висеть.
Лучше уже реализовать через api своё, мне кажется будет лучше.
12 Гений 1С
 
гуру
07.12.21
19:16
Делюсь "небольшим" кодом по деструкции форм, может кому пригодится:

Функция СтруктураПолейЭлементаФормыПолеФормы() Экспорт
    ТекЭлемент = Новый Структура();
    ТекЭлемент.Вставить("АвтоВысотаЯчейки",);
    ТекЭлемент.Вставить("АктивизироватьПоУмолчанию",);
    ТекЭлемент.Вставить("ВажностьПриОтображении",);
    ТекЭлемент.Вставить("ВертикальноеПоложение",);
    ТекЭлемент.Вставить("ВертикальноеПоложениеВГруппе",);
    ТекЭлемент.Вставить("Вид",);
    ТекЭлемент.Вставить("Видимость",);
    ТекЭлемент.Вставить("ВысотаЗаголовка",);
    ТекЭлемент.Вставить("ГиперссылкаЯчейки",);
    ТекЭлемент.Вставить("ГоризонтальноеПоложение",);
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВГруппе",);
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВПодвале",);
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВШапке",);
    ТекЭлемент.Вставить("Доступность",);
    ТекЭлемент.Вставить("Заголовок",);
    //ТекЭлемент.Вставить("Имя",);
    ТекЭлемент.Вставить("КартинкаПодвала",);
    ТекЭлемент.Вставить("КартинкаШапки",);
    ТекЭлемент.Вставить("КонтекстноеМеню",);
    ТекЭлемент.Вставить("ОграничениеТипа",);
    ТекЭлемент.Вставить("ОтображатьВПодвале",);
    ТекЭлемент.Вставить("ОтображатьВШапке",);
    ТекЭлемент.Вставить("ОтображениеПодсказки",);
    ТекЭлемент.Вставить("ОтображениеПредупрежденияПриРедактировании",);
    ТекЭлемент.Вставить("ПоведениеПриНедоступностиОсновногоСервера",);
    ТекЭлемент.Вставить("Подсказка",);
    ТекЭлемент.Вставить("ПоложениеЗаголовка",);
    ТекЭлемент.Вставить("ПредупреждениеПриРедактировании",);
    ТекЭлемент.Вставить("ПропускатьПриВводе",);
    ТекЭлемент.Вставить("ПутьКДанным",);
    ТекЭлемент.Вставить("ПутьКДаннымПодвала",);
    ТекЭлемент.Вставить("РасширеннаяПодсказка",);
    ТекЭлемент.Вставить("РежимРедактирования",);
    //ТекЭлемент.Вставить("Родитель",);
    ТекЭлемент.Вставить("СочетаниеКлавиш",);
    ТекЭлемент.Вставить("ТекстПодвала",);
    ТекЭлемент.Вставить("ТолькоПросмотр",);
    ТекЭлемент.Вставить("ФиксацияВТаблице",);
    ТекЭлемент.Вставить("ЦветТекстаЗаголовка",);
    ТекЭлемент.Вставить("ЦветТекстаПодвала",);
    ТекЭлемент.Вставить("ЦветФонаЗаголовка",);
    ТекЭлемент.Вставить("ЦветФонаПодвала",);
    ТекЭлемент.Вставить("ШрифтЗаголовка",);
    ТекЭлемент.Вставить("ШрифтПодвала",);
    //Расширение поля ввода - специфика
    ТекЭлемент.Вставить("АвтоВыборНезаполненного",);
    ТекЭлемент.Вставить("АвтоИзменениеРегистраПриВводеТекста",);
    ТекЭлемент.Вставить("АвтоИсправлениеПриВводеТекста",);
    ТекЭлемент.Вставить("АвтоМаксимальнаяВысота",);
    ТекЭлемент.Вставить("АвтоМаксимальнаяШирина",);
    ТекЭлемент.Вставить("АвтоОтметкаНезаполненного",);
    ТекЭлемент.Вставить("АвтоОтображениеКнопкиОткрытия",);
    ТекЭлемент.Вставить("АвтоОтображениеКнопкиОчистки",);
    ТекЭлемент.Вставить("АвтоПереносСтрок",);
    ТекЭлемент.Вставить("БыстрыйВыбор",);
    ТекЭлемент.Вставить("ВариантУправленияВысотой",);
    ТекЭлемент.Вставить("ВыбиратьТип",);
    ТекЭлемент.Вставить("ВыборГруппИЭлементов",);
    ТекЭлемент.Вставить("ВыделенныйТекст",);
    ТекЭлемент.Вставить("ВыделятьОтрицательные",);
    ТекЭлемент.Вставить("Высота",);
    ТекЭлемент.Вставить("ВысотаСпискаВыбора",);
    ТекЭлемент.Вставить("ДоступныеТипы",);
    ТекЭлемент.Вставить("ИсторияВыбораПриВводе",);
    ТекЭлемент.Вставить("КартинкаКнопкиВыбора",);
    ТекЭлемент.Вставить("КнопкаВыбора",);
    ТекЭлемент.Вставить("КнопкаВыпадающегоСписка",);
    ТекЭлемент.Вставить("КнопкаОткрытия",);
    ТекЭлемент.Вставить("КнопкаОчистки",);
    ТекЭлемент.Вставить("КнопкаРегулирования",);
    ТекЭлемент.Вставить("КнопкаСоздания",);
    ТекЭлемент.Вставить("МаксимальнаяВысота",);
    ТекЭлемент.Вставить("МаксимальнаяШирина",);
    ТекЭлемент.Вставить("МаксимальноеЗначение",);
    ТекЭлемент.Вставить("Маска",);
    ТекЭлемент.Вставить("МинимальноеЗначение",);
    ТекЭлемент.Вставить("МногострочныйРежим",);
    ТекЭлемент.Вставить("ОбновлениеТекстаРедактирования",);
    ТекЭлемент.Вставить("ОтметкаНезаполненного",);
    ТекЭлемент.Вставить("ОтображениеКнопкиВыбора",);
    ТекЭлемент.Вставить("ПараметрыВыбора",);
    ТекЭлемент.Вставить("ПодсказкаВвода",);
    ТекЭлемент.Вставить("ПроверкаПравописанияПриВводеТекста",);
    ТекЭлемент.Вставить("РазрешитьСоставнойТип",);
    ТекЭлемент.Вставить("РастягиватьПоВертикали",);
    ТекЭлемент.Вставить("РастягиватьПоГоризонтали",);
    ТекЭлемент.Вставить("РасширенноеРедактирование",);
    ТекЭлемент.Вставить("РедактированиеТекста",);
    ТекЭлемент.Вставить("РежимВыбораИзСписка",);
    ТекЭлемент.Вставить("РежимВыбораНезаполненного",);
    ТекЭлемент.Вставить("РежимПароля",);
    ТекЭлемент.Вставить("СвязиПараметровВыбора",);
    ТекЭлемент.Вставить("СвязьПоТипу",);
    ТекЭлемент.Вставить("СпециальныйРежимВводаТекста",);
    ТекЭлемент.Вставить("СписокВыбора",);
    ТекЭлемент.Вставить("ТекстКнопкиВводаЭкраннойКлавиатуры",);
    ТекЭлемент.Вставить("ТекстРедактирования",);
    ТекЭлемент.Вставить("ФормаВыбора",);
    ТекЭлемент.Вставить("Формат",);
    ТекЭлемент.Вставить("ФорматРедактирования",);
    ТекЭлемент.Вставить("ЦветРамки",);
    ТекЭлемент.Вставить("ЦветТекста",);
    ТекЭлемент.Вставить("ЦветФона",);
    ТекЭлемент.Вставить("Ширина",);
    ТекЭлемент.Вставить("ШиринаВыпадающегоСписка",);
    ТекЭлемент.Вставить("Шрифт",);
    //Расширение надписи - специфика
    ТекЭлемент.Вставить("Гиперссылка",);
    ТекЭлемент.Вставить("Рамка",);
    ТекЭлемент.Вставить("ЦветРамки",);
    //Расширение флажка - специфика
    ТекЭлемент.Вставить("ВидФлажка",);
    ТекЭлемент.Вставить("ВысотаЗаголовкаЭлемента",);
    ТекЭлемент.Вставить("ВысотаЭлемента",);
    ТекЭлемент.Вставить("ОдинаковаяШиринаЭлементов",);
    ТекЭлемент.Вставить("ТриСостояния",);
    //Другие расширения
    ТекЭлемент.Вставить("КартинкаЗначений",);
    ТекЭлемент.Вставить("Масштаб",);
    ТекЭлемент.Вставить("Масштабировать",);
    ТекЭлемент.Вставить("НомерТекущегоКадра",);
    ТекЭлемент.Вставить("РазмерКартинки",);
    ТекЭлемент.Вставить("РазрешитьНачалоПеретаскивания",);
    ТекЭлемент.Вставить("РазрешитьПеретаскивание",);
    ТекЭлемент.Вставить("СпособПеретаскиванияФайлов",);
    ТекЭлемент.Вставить("ТекстНевыбраннойКартинки",);
    ТекЭлемент.Вставить("ВидПереключателя",);
    ТекЭлемент.Вставить("КоличествоКолонок",);
    ТекЭлемент.Вставить("Вывод",);
    ТекЭлемент.Вставить("Защита",);
    ТекЭлемент.Вставить("ИспользуемоеИмяФайла",);
    ТекЭлемент.Вставить("ОтображатьГруппировки",);
    ТекЭлемент.Вставить("ОтображатьСетку",);
    ТекЭлемент.Вставить("ОтображениеСостояния",);
    ТекЭлемент.Вставить("РастягиватьПоВертикали",);
    ТекЭлемент.Вставить("РастягиватьПоГоризонтали",);
    ТекЭлемент.Вставить("Редактирование",);
    ТекЭлемент.Вставить("РежимМасштабированияПросмотра",);
    ТекЭлемент.Вставить("РежимОтображенияВыделения",);
    ТекЭлемент.Вставить("ТекущаяОбласть",);
    ТекЭлемент.Вставить("ТипКурсоров",);
    ТекЭлемент.Вставить("ЧерноБелыйПросмотр",);
    
    Возврат ТекЭлемент;
    
КонецФункции

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

Функция СтруктураПолейЭлементаФормыТаблицаФормы() Экспорт
    ТекЭлемент = Новый Структура();
    
    ТекЭлемент.Вставить("АвтоВводНезаполненного", );
    ТекЭлемент.Вставить("АвтоВводНовойСтроки", );
    ТекЭлемент.Вставить("АвтоМаксимальнаяВысота", );
    ТекЭлемент.Вставить("АвтоМаксимальнаяВысотаВСтрокахТаблицы", );
    ТекЭлемент.Вставить("АвтоМаксимальнаяШирина", );
    ТекЭлемент.Вставить("АвтоОтметкаНезаполненного", );
    ТекЭлемент.Вставить("АктивизироватьПоУмолчанию", );
    ТекЭлемент.Вставить("ВажностьПриОтображении", );
    ТекЭлемент.Вставить("ВариантУправленияВысотой", );
    ТекЭлемент.Вставить("ВертикальнаяПолосаПрокрутки", );
    ТекЭлемент.Вставить("ВертикальноеПоложениеВГруппе", );
    ТекЭлемент.Вставить("ВертикальныеЛинии", );
    ТекЭлемент.Вставить("Видимость", );
    ТекЭлемент.Вставить("Вывод", );
    ТекЭлемент.Вставить("ВыделенныеСтроки", );
    ТекЭлемент.Вставить("Высота", );
    ТекЭлемент.Вставить("ВысотаВСтрокахТаблицы", );
    ТекЭлемент.Вставить("ВысотаЗаголовка", );
    ТекЭлемент.Вставить("ВысотаПодвала", );
    ТекЭлемент.Вставить("ВысотаШапки", );
    ТекЭлемент.Вставить("ГоризонтальнаяПолосаПрокрутки", );
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВГруппе", );
    ТекЭлемент.Вставить("ГоризонтальныеЛинии", );
    ТекЭлемент.Вставить("Доступность", );
    ТекЭлемент.Вставить("Заголовок", );
    ТекЭлемент.Вставить("ЗапросОбновления", );
    ТекЭлемент.Вставить("ИзменятьПорядокСтрок", );
    ТекЭлемент.Вставить("ИзменятьСоставСтрок", );
    //ТекЭлемент.Вставить("Имя", );
    ТекЭлемент.Вставить("ИспользованиеТекущейСтроки", );
    ТекЭлемент.Вставить("КартинкаСтрок", );
    ТекЭлемент.Вставить("КоманднаяПанель", );
    ТекЭлемент.Вставить("КонтекстноеМеню", );
    ТекЭлемент.Вставить("МаксимальнаяВысота", );
    ТекЭлемент.Вставить("МаксимальнаяВысотаВСтрокахТаблицы", );
    ТекЭлемент.Вставить("МаксимальнаяШирина", );
    ТекЭлемент.Вставить("МножественныйВыбор", );
    ТекЭлемент.Вставить("НачальноеОтображениеДерева", );
    ТекЭлемент.Вставить("НачальноеОтображениеСписка", );
    ТекЭлемент.Вставить("ОтметкаНезаполненного", );
    ТекЭлемент.Вставить("Отображение", );
    ТекЭлемент.Вставить("ОтображениеПодсказки", );
    ТекЭлемент.Вставить("ПоведениеПриНедоступностиОсновногоСервера", );
    ТекЭлемент.Вставить("ПоведениеПриСжатииПоГоризонтали", );
    ТекЭлемент.Вставить("Подвал", );
    ТекЭлемент.Вставить("Подсказка", );
    //ТекЭлемент.Вставить("ПодчиненныеЭлементы", );
    ТекЭлемент.Вставить("ПоискПриВводе", );
    ТекЭлемент.Вставить("ПоложениеЗаголовка", );
    ТекЭлемент.Вставить("ПоложениеКоманднойПанели", );
    ТекЭлемент.Вставить("ПоложениеСостоянияПросмотра", );
    ТекЭлемент.Вставить("ПоложениеСтрокиПоиска", );
    ТекЭлемент.Вставить("ПоложениеУправленияПоиском", );
    ТекЭлемент.Вставить("ПропускатьПриВводе", );
    ТекЭлемент.Вставить("ПутьКДанным", );
    ТекЭлемент.Вставить("ПутьКДаннымКартинкиСтроки", );
    ТекЭлемент.Вставить("РазрешитьНачалоПеретаскивания", );
    ТекЭлемент.Вставить("РазрешитьПеретаскивание", );
    ТекЭлемент.Вставить("РастягиватьПоВертикали", );
    ТекЭлемент.Вставить("РастягиватьПоГоризонтали", );
    ТекЭлемент.Вставить("РасширеннаяПодсказка", );
    ТекЭлемент.Вставить("РежимВводаСтрок", );
    ТекЭлемент.Вставить("РежимВыбора", );
    ТекЭлемент.Вставить("РежимВыделения", );
    ТекЭлемент.Вставить("РежимВыделенияСтроки", );
    //ТекЭлемент.Вставить("Родитель", );
    ТекЭлемент.Вставить("СостояниеПросмотра", );
    ТекЭлемент.Вставить("СочетаниеКлавиш", );
    ТекЭлемент.Вставить("СпособПеретаскиванияФайлов", );
    ТекЭлемент.Вставить("СтрокаПоиска", );
    ТекЭлемент.Вставить("ТекущаяСтрока", );
    ТекЭлемент.Вставить("ТекущиеДанные", );
    ТекЭлемент.Вставить("ТекущийРодитель", );
    ТекЭлемент.Вставить("ТекущийЭлемент", );
    ТекЭлемент.Вставить("ТолькоПросмотр", );
    ТекЭлемент.Вставить("УправлениеПоиском", );
    ТекЭлемент.Вставить("ЦветРамки", );
    ТекЭлемент.Вставить("ЦветТекста", );
    ТекЭлемент.Вставить("ЦветТекстаЗаголовка", );
    ТекЭлемент.Вставить("ЦветФона", );
    ТекЭлемент.Вставить("ЧередованиеЦветовСтрок", );
    ТекЭлемент.Вставить("Шапка", );
    ТекЭлемент.Вставить("Ширина", );
    ТекЭлемент.Вставить("Шрифт", );
    ТекЭлемент.Вставить("ШрифтЗаголовка", );
    Возврат ТекЭлемент;
КонецФункции


Функция СтруктураПолейЭлементаФормыГруппаФормы() Экспорт
    ТекЭлемент = Новый Структура();
    
    ТекЭлемент.Вставить("ВертикальноеПоложениеВГруппе", );
    ТекЭлемент.Вставить("Вид", );
    ТекЭлемент.Вставить("Видимость", );
    ТекЭлемент.Вставить("Высота", );
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВГруппе", );
    ТекЭлемент.Вставить("Доступность", );
    ТекЭлемент.Вставить("Заголовок", );
    //ТекЭлемент.Вставить("Имя", );
    ТекЭлемент.Вставить("ОтображениеПодсказки", );
    ТекЭлемент.Вставить("Подсказка", );
    //ТекЭлемент.Вставить("ПодчиненныеЭлементы", );
    ТекЭлемент.Вставить("РазрешитьИзменениеСостава", );
    ТекЭлемент.Вставить("РастягиватьПоВертикали", );
    ТекЭлемент.Вставить("РастягиватьПоГоризонтали", );
    ТекЭлемент.Вставить("РасширеннаяПодсказка", );
    //ТекЭлемент.Вставить("Родитель", );
    ТекЭлемент.Вставить("СочетаниеКлавиш", );
    ТекЭлемент.Вставить("ТолькоПросмотр", );
    ТекЭлемент.Вставить("ЦветТекстаЗаголовка", );
    ТекЭлемент.Вставить("Ширина", );
    ТекЭлемент.Вставить("ШрифтЗаголовка", );
    
    //Расширение командной панели
    ТекЭлемент.Вставить("ВажностьПриОтображении", );
    ТекЭлемент.Вставить("ГоризонтальноеПоложение", );
    //Расширение подменю
    ТекЭлемент.Вставить("Картинка", );
    ТекЭлемент.Вставить("Отображение", );
    ТекЭлемент.Вставить("ОтображениеФигуры", );
    ТекЭлемент.Вставить("Фигура", );
    ТекЭлемент.Вставить("ЦветРамки", );
    ТекЭлемент.Вставить("ЦветФона", );
    //Расширение группы колонок
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеВШапке", );
    ТекЭлемент.Вставить("Группировка", );
    ТекЭлемент.Вставить("КартинкаШапки", );
    ТекЭлемент.Вставить("ОтображатьВШапке", );
    ТекЭлемент.Вставить("ОтображатьЗаголовок", );
    ТекЭлемент.Вставить("ПутьКДаннымШапки", );
    ТекЭлемент.Вставить("ФиксацияВТаблице", );
    ТекЭлемент.Вставить("ФорматШапки", );
    ТекЭлемент.Вставить("ЦветФонаЗаголовка", );
    //Расширение страниц
    ТекЭлемент.Вставить("ИспользованиеТекущейСтроки", );
    ТекЭлемент.Вставить("ИспользуемаяТаблица", );
    ТекЭлемент.Вставить("ОтображениеСтраниц", );
    ТекЭлемент.Вставить("ТекущаяСтраница", );
    ТекЭлемент.Вставить("ТекущееСостояниеСтраниц", );
    //Расширение страницы
    ТекЭлемент.Вставить("ВажностьПриОтображении", );
    ТекЭлемент.Вставить("ВертикальнаяПрокруткаПриСжатии", );
    ТекЭлемент.Вставить("ВертикальноеПоложение", );
    ТекЭлемент.Вставить("ВертикальноеПоложениеПодчиненных", );
    ТекЭлемент.Вставить("ВертикальныйИнтервал", );
    ТекЭлемент.Вставить("ВыравниваниеЭлементовИЗаголовков", );
    ТекЭлемент.Вставить("ГоризонтальноеПоложениеПодчиненных", );
    ТекЭлемент.Вставить("ГоризонтальныйИнтервал", );
    ТекЭлемент.Вставить("Группировка", );
    ТекЭлемент.Вставить("Картинка", );
    ТекЭлемент.Вставить("ОтображатьЗаголовок", );
    ТекЭлемент.Вставить("ПутьКДаннымЗаголовка", );
    ТекЭлемент.Вставить("Формат", );
    ТекЭлемент.Вставить("ЦветФона", );
    ТекЭлемент.Вставить("ШиринаПодчиненныхЭлементов", );
    //Расширение обычной группы - только специфичные
    ТекЭлемент.Вставить("ЗаголовокСвернутогоОтображения", );
    ТекЭлемент.Вставить("ИспользованиеТекущейСтроки", );
    ТекЭлемент.Вставить("ИспользуемаяТаблица", );
    ТекЭлемент.Вставить("Объединенная", );
    ТекЭлемент.Вставить("ОтображатьОтступСлева", );
    ТекЭлемент.Вставить("Отображение", );
    ТекЭлемент.Вставить("ОтображениеУправления", );
    ТекЭлемент.Вставить("Поведение", );
    ТекЭлемент.Вставить("СквозноеВыравнивание", );
    ТекЭлемент.Вставить("ЦветФонаЗаголовкаСкрытогоОтображения", );
    //Расширение группы кнопок
    ТекЭлемент.Вставить("Отображение", );
    Возврат ТекЭлемент;
КонецФункции

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

13 Конструктор1С
 
07.12.21
19:44
(12) и что дальше ты собрался делать с этим мазафакингом? Куда его пихать?
14 acht
 
07.12.21
19:49
(13) >  Куда его пихать?
Откуда достал, туда и пихает же. Что непонятного?

Я, вообще, надеюсь что когда-нибудь, произойдет чудо.
Кто-то что-то как-то убедительно пояснит ггггене за его работу с 1С. Ну, также, как произошло с короновирусом - вторая неделя тишина и покой.
15 Конструктор1С
 
07.12.21
19:50
+(13) дай угадаю, ты ещё даже сам не придумал, как использовать это месиво, но уже охотно поделился с комьюнити?
16 Конструктор1С
 
07.12.21
19:51
(14) а я уже не надеюсь на чудо...
17 Гений 1С
 
гуру
07.12.21
20:55
(13)(15) не угадал. Я уже использую и вставляю.
единственно, я не буду переназначать код формы, буду просто его дублировать. А элементы и реквизиты я уже расставляю на вложенную форму (в отдельную закладку)
18 polosov
 
07.12.21
21:34
(17) Хорошо, что ты не хирургом стал.
19 Ненавижу 1С
 
гуру
07.12.21
22:47
(12) а накуа здесь столько лишнего кода?

Нельзя было это всё в конструкторе структуры сделать?
20 polosov
 
07.12.21
23:08
(19) Тащемта тут все правильно, это бест практикс от 1С.
21 Сергиус
 
07.12.21
23:38
(0)Самый главный вопрос - а без вложенной формы нельзя обойтись?
22 Ненавижу 1С
 
гуру
07.12.21
23:40
(20) а в чем Бест собственно?
23 acanta
 
07.12.21
23:42
(22) в 8 ке формы все программно компануются уже, достаточно одной общей пустой формы на весь конфигуратор?
24 acanta
 
07.12.21
23:45
+(23) а еще мне понравилось, когда по энтеру в форме списка открывается печатная форма в mxl, а не редактирования...
Но это было на семинаре по презентации 8.0. а сейчас конечно же все по другому
25 ДедМорроз
 
07.12.21
23:48
А что мешает открывать?
Ну,можно на рабочий стол поле html вытащить и вообще без форм обойтись.
26 Ненавижу 1С
 
гуру
07.12.21
23:51
(23) это точно вопрос мне?
27 acanta
 
07.12.21
23:57
(26) или вы считаете что бэст практис в том, чтобы под каждую отраслевую от первыйбит создавать транснациональную компанию типа Pepsi, а под каждую нетленку всесоюзную сеть супермаркетов/автомоек/рабочих столовых?
28 polosov
 
08.12.21
00:04
29 Ненавижу 1С
 
гуру
08.12.21
00:19
(28) спорно конечно
Тем более там про значения. Тут значения как таковые не передаются, только ключи. Ключи для читабельности можно оформить "столбиком".
30 SleepyHead
 
гуру
08.12.21
06:56
(0) Озвучь клиенту цену его хотелки. Уверен, что подбор в отдельном окне окажется не менее удобным, чем подбор с другой страницы той же формы.
31 Гений 1С
 
гуру
08.12.21
07:49
(21) ты знаешь, вложенные формы были еще в голимом Аксессе, почему их нет в 1С, вопрос, хотя в принципе риторический.
(30) По деньгам все норм, не боись, я бесплатно не работаю, а то бы уже давно РУМ и Базуху написал. ;-)
32 Гений 1С
 
гуру
08.12.21
07:55
Скажу более, в ОФ можно было разместить рядом несколько форм, были еще и соединяемые формы, в УФ такого нет, так что интерфейс несколько деградировал.
33 Гений 1С
 
гуру
08.12.21
07:58
(29) предполагается, что разбор формы происходит один раз, потом используется схема этого разбора. Можно или вообще при настройке системы разобрать или один раз при первом обращении к форме. тем более, вот именно эти функции закэшированы в серверном модуле повторного использования. Так что на спичках пытаетесь экономить, Сэр? Мелкло.
34 SleepyHead
 
гуру
08.12.21
08:02
(31) И все-таки мне непонятно, почему подбор с другой страницы удобнее, чем из отдельного окна. Наверное, идею я все-же не уловил.

Подбор с другой страницы означает, что основную страницу с данными все равно не видно. И в чем тогда разница?
35 Ненавижу 1С
 
гуру
08.12.21
08:05
(31) в акцесе были и модальные окна
36 Гений 1С
 
гуру
08.12.21
08:06
(34) подбор номенклатуры в этой конфе модальный. Можно его конечно сделать не модальным.
но тут есть еще один момент - можно потеряться в окнах. т.е. нужно как минимум или панель окон открытой держать или тыкать следующее-предыдущее окно.
а тут просто переключаешься по закладкам и можешь их подбора сходить в доп.форму и назад.
доп.форма по сути делает запрос в веб-сервисы, уточняя информацию по списку товаров.
Так что да, удобнее, чем отдельное окно.
хотя вложенную форму можно конечно же, размещать не только в отдельной закладке но и в отдельном поле на текущей форме, так что сама технология удобная.
Мы когда-то с Мортом реализовали ее для ОФ, для УФ просто не было заказчика на нее, сейчас появился, так что обкатаем.
37 Ненавижу 1С
 
гуру
08.12.21
08:07
(34) +1 а вот из другого окна можно разместить разделив область пополам
38 Ненавижу 1С
 
гуру
08.12.21
08:09
1. Имена элементов могут пересекаться. Если переименовать, то могут не работать события.
2. Методы обработчики работают в контексте "родной" формы
39 Гений 1С
 
гуру
08.12.21
14:53
(37) гениальное решение. в модальном подборе пополам? А потом восстанавливать начальное разделение области. И меня еще называют извращенцем, гггг....
(38) Вложенные формы нужно писать с префиксами, как и расширения, ну и тестировать, соответственно.
Я уже писал выше, что код я пока что дублирую, это несложно - копи-паст.
40 Ненавижу 1С
 
гуру
08.12.21
15:09
(39) зачем в модальном?

"код я пока что дублирую" - какие такие паттерны проектирования? копи-паста наше все!
41 pechkin
 
08.12.21
15:50
в пром эксплуатацию я бы такие автоформы не стал бы пускать
42 Скользящий
 
08.12.21
19:24
Жалко потом тех, кто это сопровождать будет. Взрыв мозга обеспечен.
43 Гений 1С
 
гуру
08.12.21
19:38
(42) не переживай, там хорошие спецы.
(41) кто не рискует, тот не пьёт Асти
44 Гений 1С
 
гуру
08.12.21
19:38
(40) в силу ограниченности бюджета и наличия уже готовой формы. Так то можно форму писать под прицел последующей вложенности.
45 ДедМорроз
 
08.12.21
20:36
Собрать одну форму из нескольких - задача простая,т.к.можнл выгрузить код формы в файлы и пройтись парсером. При этом,гас даже не пугает,что могут поменяться имена переменных,но все экспортные вызовы общих модулей также нужно будет "переименовывать",если в них передается форма или сдожный реквизит формы или объекта,в ней размещенного.
В принципе,имена реквизитов можно "склеивать" то есть два разных поля разных форм отображать в один реквизит - на управляемых формах так можно,но результат будет очень странным.

И опять же,вы же их не просто соединяете,а пишете код взаимодействия - тогда нужно заранее писать так,чтобы можно было процедуры "звать" из нескольких форм без проблем,но тут гас поджидают "грабли" контекстного вызова,который из общего клиентского модуля невозможен.
46 Сергиус
 
09.12.21
04:05
(31)Ну в 1с много чего не найдется, если поискать, и что? задачу ведь можно решить другими способами, из имеющегося арсенала..или это не наш путь?
47 Сергиус
 
09.12.21
04:07
(44)[в силу ограниченности бюджета и наличия уже готовой формы] А типа щас ты не тратишь бюджет на своих экспериментах?
48 Гений 1С
 
гуру
09.12.21
08:01
(47) бюджет есть, но ограниченный, т.е. не настолько мощный, чтобы уже готовую форму переписывать так, чтобы не нужно было копи-пастить код. Лучшее враг хорошего.
49 Гений 1С
 
гуру
09.12.21
18:29
Вынужден констатировать - сделать вложенные формы удалось.
Что касается кода вкладываемой формы, то я его через расширение целиком копирую в форму-получатель.
Не думаю, что есть препятствия что-то с кодом сделать, но т.к. бюджет ограничен, пока оставляю в таком виде.
50 Ненавижу 1С
 
гуру
09.12.21
18:31
(49) переиспользование кода от гения, ага
51 Гений 1С
 
гуру
09.12.21
18:34
(50) если не копировать код, нужно выносить код формы в серверный модуль, со всеми этими фишками касающимися вынесения формы кода в серверный модуль. Это усложнение на пустом месте, но в принципе, реализуемо. Оставлю это перфекционистам.
52 Злопчинский
 
09.12.21
18:40
Главное - доделывать детей...
53 Mort
 
09.12.21
21:09
"И меня еще называют извращенцем, гггг...."

Это надо в мемориз в анналах мисты навсегда железными буквами напечатать.
54 Гений 1С
 
гуру
09.12.21
21:13
(53) О здорово. На этот раз я тебя опередил с вложенными формами. Надо статейку, что ли тиснуть на эту тему.
55 Mort
 
09.12.21
21:14
Было дело, тоже вложенными формами страдал в обычном режиме, там было реально. В УФ без переноса кода тем или иным способом не взлетело. Баловство это всё, но если ты молод, это хороший досуг.
56 Гений 1С
 
гуру
09.12.21
21:16
(55) не досуг бро, мне не до сук. Мне заплатили - я сделал. ;-) Так повезло, что клиенту нужны были именно вложенные формы. У меня "каменный цветок" вышел
57 Mort
 
09.12.21
21:24
(56) Ну главный цимес по-настоящему вложенных форм, это если изменить исходную форму, функционал изменится везде куда бы она не была вложена, эдакий custom-ontrol. Если это условие не выполняется - то и нафиг надо. Тупо в нужную форму добавляется функционал и элементы копи-пастом. То что элементы и реквизиты копируются через задницу это к разработчикам платформы вопрос.
58 Mort
 
09.12.21
21:24
*custom-control
59 Mort
 
09.12.21
21:27
Вот почему я не могу скопировать таблицу вместе с колонками чтобы они не сдриснули никуда и мне не пришлось их пересоздавать?
60 Злопчинский
 
09.12.21
21:30
61 Ненавижу 1С
 
гуру
09.12.21
21:43
(57) гений не понимает что такое переиспользование кода
62 Гений 1С
 
гуру
09.12.21
22:22
(57) это не проблема реализовать, но нужно выносить код вложенной формы в общий модуль
63 acht
 
09.12.21
22:55
(62) > но нужно выносить код

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

Я ничего не упустил?
64 Ненавижу 1С
 
гуру
10.12.21
00:17
(63) А как ещё хайп ловить гению?
65 Сергиус
 
10.12.21
01:30
(49)Показал бы хоть картинкой, что получилось..
66 Гений 1С
 
гуру
10.12.21
08:06
(65) не могу, там много ретушировать надо. Но по сути в подбор номенклатуры добавил новую закладку и там целиком форма скопирована. Работает хорошо, реализация простая. Наверное, чуть позже напишу статью и выложу код по вложенным формам.