Как программно сымитировать открытие формы нового элемента справочника, заполнение реквизитов и сохранение? Что-то убился уже, не могу создать элемент справочника так, чтобы при этом отработали все процедуры модуля формы и объекта так, как они отрабатывают при нажатии кнопки в форме "Записать и закрыть". Вот так не канает: СпрПользовательФорма = ПолучитьФорму("Справочник.Пользователи.ФормаОбъекта"); СпрПользовательФорма.Открыть(); ДанныеФормы = СпрПользовательФорма.Объект; ЗаполнитьНаСервере(ДанныеФормы,Наименование,ТелефонВ,ТелефонМ,ЭП); КопироватьДанныеФормы(ДанныеФормы, СпрПользовательФорма.Объект); СпрПользовательФорма.Должность = НайтиДолжность(Должность); СпрПользовательФорма.Записать(); СпрПользовательФорма.Закрыть(); |
[em]создать элемент справочника так, чтобы при этом отработали все процедуры модуля формы[/em] - не надо этим заниматься. |
(1) Наверное не очень точно выразился. Нужно чтобы отработали из модуля формы: "ПередЗаписьюНаСервере","ПослеЗаписиНаСервере", из модуля объекта: "ПередЗаписью","ПриЗаписи". |
2-US1C > из модуля объекта отработают, из модуля формы - см (1). |
(3) Нет. Ничего из перечисленного не отрабатывает. Мне надо чтобы и из модуля формы сработало. Для этого и создаю элементы через форму. Причем, на предпоследней строчке (из 0) форма открыта и заполнены некоторые реквизиты. Если с такими реквизитами я нажимаю интерактивно "Записать и закрыть" на форме - все ОК. Если кодом СпрПользовательФорма.Записать() - не создается (выдает ошибки заполнения, которых не было бы, если отработали процедуры ПередЗаписью). |
4-US1C > Чё "нет"? События объекта вызывается при любом способе записи объекта - из формы или программно. События формы - только при записи из формы. Если сам объект и его форма спроектированы корректно, то извращений из (0) делать не стоит. |
все что должно отрабатывать интерактивно - должно быть привязано к форме. все что должно отрабатывать всегда - должно быть привязано к объекту. имхо. |
6-Чучундер > в этом есть цимус снеговика. потому как на клюшках это без извращений не сделать |
7-Чучундер > подозреваю, что на форме объекта есть какое-нибудь поле типа контактной информации, которое при сохранении в БД предварительно обрабатывается. Автор не понимает/не хочет понимать, как оно обрабатывается, поэтому и хочет сымитировать заполнение формы. |
(5) Нет, значит не отрабатывают. Прогнал обработку в отладчике, эти процедуры не вызывались. При записи формы выдавал ошибки на незаполненные реквизиты. Интерактивно я их и не заполнял, все заполнялось в модуле формы ПередЗаписью и ПриЗаписи. Чего и добиваюсь от программной записи формы. |
(8) Ну примерно так. Не очень хочется лазить по всем вызываемым процедурам и формировать дополнительные записи реквизитов, регистров, справочников в обработке. Цель такая - воткнуть в форму нового элемента минимум данных из обрабатываемого файла, а там пусть все заполняется так, как заложено в алгоритме конфигурации. Не могу догнать, неужели нет метода, полностью идентичного команде "Записать" в форме? |
По моему это полный изврат, имхо )) Причем тут форма, если программно надо создать элемент? Я бы никогда не стал так делать. |
(11) Согласен. Изврат. Но надо быстро загрузить справочник из эксельки. И не очень хочется разбираться с кучей вызовов процедур и функций, которые формируют львиную долю данных в базе. Поэтому пошел таким путем. Загрузка разовая и не критичен способ занесения данных. Зато критична правильность их во всех местах, куда прога записывает их при интерактивной работе. Как-то так. |
Забыл уточнить - форма управляемая. Хотя наверное быстрее сделаю обычную загрузку данных. |
Ересь есть ересь. Интерфейс нужен только для команды пользователя. Сама прога интерфейс не видит. |
(14) В смысле не видит? Я программно получил форму нового элемента, заполнил реквизиты этой формы. В отладчике стопанул перед записью - формаобъект со всеми потрохами (объект, реквизиты, параметры, оформление). |
(0) давно бы уже реализовал [em]дополнительные записи реквизитов, регистров, справочников в обработке[/em] Вы хочите извращений? Их есть у меня. Тест-клиент тебе в руки и веточка Автоматизированное тестирование синтакс-помощника. |
На мой взгляд ваще смешная постановка задачи. Девочка вводит документ, что-то забыла, курсор вернули к забытому реквизиту, все логично. Добрый дядя помогает. Но ты создаешь объект программно, так позаботься чтобы все заполнилось, протестируй. Ну иначе получит юзер сообщение и что дальше. Короче, есть реквизиты объекта. если их правильно заполнить, то никто и ничто больше не гужны |
12-US1C > "Согласен. Изврат. Но надо быстро загрузить справочник из эксельки. И не очень хочется разбираться с кучей вызовов процедур и функций, которые формируют львиную долю данных в базе." - нахэра разбираться с вызовами процедурами и функциями? заполни реквизиты чем надо и все. Если не знаешь какие реквизиты для чего заполняются и как их связь друг с другом и смысл - так и скажи, туплю и не знаю типовой конфиги... |
Текущее время: 06:52. Часовой пояс GMT +3. |