К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Как программно сымитировать открытие формы нового элемента справочника, заполнение реквизитов и сохранение?

0 - 13.10.2016 - 12:23
Что-то убился уже, не могу создать элемент справочника так, чтобы при этом отработали все процедуры модуля формы и объекта так, как они отрабатывают при нажатии кнопки в форме "Записать и закрыть".

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



1 - 13.10.2016 - 12:48
создать элемент справочника так, чтобы при этом отработали все процедуры модуля формы - не надо этим заниматься.
2 - 13.10.2016 - 12:54
(1) Наверное не очень точно выразился. Нужно чтобы отработали из модуля формы: "ПередЗаписьюНаСервере","ПослеЗаписиНаСервере" , из модуля объекта: "ПередЗаписью","ПриЗаписи".
Uho
3 - 13.10.2016 - 13:00
2-US1C > из модуля объекта отработают, из модуля формы - см (1).
4 - 13.10.2016 - 13:33
(3) Нет. Ничего из перечисленного не отрабатывает. Мне надо чтобы и из модуля формы сработало. Для этого и создаю элементы через форму. Причем, на предпоследней строчке (из 0) форма открыта и заполнены некоторые реквизиты. Если с такими реквизитами я нажимаю интерактивно "Записать и закрыть" на форме - все ОК. Если кодом СпрПользовательФорма.Записать() - не создается (выдает ошибки заполнения, которых не было бы, если отработали процедуры ПередЗаписью).
Uho
5 - 13.10.2016 - 14:17
4-US1C > Чё "нет"? События объекта вызывается при любом способе записи объекта - из формы или программно. События формы - только при записи из формы.

Если сам объект и его форма спроектированы корректно, то извращений из (0) делать не стоит.
6 - 13.10.2016 - 14:20
все что должно отрабатывать интерактивно - должно быть привязано к форме.
все что должно отрабатывать всегда - должно быть привязано к объекту.
имхо.
7 - 13.10.2016 - 14:20
6-Чучундер > в этом есть цимус снеговика. потому как на клюшках это без извращений не сделать
Uho
8 - 13.10.2016 - 14:25
7-Чучундер > подозреваю, что на форме объекта есть какое-нибудь поле типа контактной информации, которое при сохранении в БД предварительно обрабатывается.

Автор не понимает/не хочет понимать, как оно обрабатывается, поэтому и хочет сымитировать заполнение формы.
9 - 13.10.2016 - 14:30
(5) Нет, значит не отрабатывают. Прогнал обработку в отладчике, эти процедуры не вызывались. При записи формы выдавал ошибки на незаполненные реквизиты. Интерактивно я их и не заполнял, все заполнялось в модуле формы ПередЗаписью и ПриЗаписи. Чего и добиваюсь от программной записи формы.
10 - 13.10.2016 - 14:35
(8) Ну примерно так. Не очень хочется лазить по всем вызываемым процедурам и формировать дополнительные записи реквизитов, регистров, справочников в обработке.
Цель такая - воткнуть в форму нового элемента минимум данных из обрабатываемого файла, а там пусть все заполняется так, как заложено в алгоритме конфигурации.
Не могу догнать, неужели нет метода, полностью идентичного команде "Записать" в форме?
11 - 13.10.2016 - 14:41
По моему это полный изврат, имхо )) Причем тут форма, если программно надо создать элемент? Я бы никогда не стал так делать.
12 - 13.10.2016 - 14:50
(11) Согласен. Изврат. Но надо быстро загрузить справочник из эксельки. И не очень хочется разбираться с кучей вызовов процедур и функций, которые формируют львиную долю данных в базе. Поэтому пошел таким путем. Загрузка разовая и не критичен способ занесения данных. Зато критична правильность их во всех местах, куда прога записывает их при интерактивной работе. Как-то так.
13 - 13.10.2016 - 14:59
Забыл уточнить - форма управляемая.
Хотя наверное быстрее сделаю обычную загрузку данных.
Гость
14 - 13.10.2016 - 15:05
Ересь есть ересь. Интерфейс нужен только для команды пользователя. Сама прога интерфейс не видит.
15 - 13.10.2016 - 15:11
(14) В смысле не видит? Я программно получил форму нового элемента, заполнил реквизиты этой формы. В отладчике стопанул перед записью - формаобъект со всеми потрохами (объект, реквизиты, параметры, оформление).
16 - 13.10.2016 - 15:54
(0) давно бы уже реализовал дополнительные записи реквизитов, регистров, справочников в обработке
Вы хочите извращений? Их есть у меня. Тест-клиент тебе в руки и веточка Автоматизированное тестирование синтакс-помощника.
17 - 13.10.2016 - 16:26
На мой взгляд ваще смешная постановка задачи. Девочка вводит документ, что-то забыла, курсор вернули к забытому реквизиту, все логично. Добрый дядя помогает. Но ты создаешь объект программно, так позаботься чтобы все заполнилось, протестируй. Ну иначе получит юзер сообщение и что дальше. Короче, есть реквизиты объекта. если их правильно заполнить, то никто и ничто больше не гужны
18 - 13.10.2016 - 23:04
12-US1C > "Согласен. Изврат. Но надо быстро загрузить справочник из эксельки. И не очень хочется разбираться с кучей вызовов процедур и функций, которые формируют львиную долю данных в базе."
- нахэра разбираться с вызовами процедурами и функциями? заполни реквизиты чем надо и все. Если не знаешь какие реквизиты для чего заполняются и как их связь друг с другом и смысл - так и скажи, туплю и не знаю типовой конфиги...


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены