Вход | Регистрация
 

Чем заменить ЭтаФорма при обращении к форме через Объект?

Чем заменить ЭтаФорма при обращении к форме через Объект?
Я
   Надежда_Ник
 
11.08.21 - 15:18
Добрый день! Есть код, например, УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыВыданные(ЭтаФорма, НавигационнаяСсылка,  СтандартнаяОбработка, ПараметрыРегистрации), мне надо обратиться к форме через Объект, подскажите, пожалуйста, чем в этом случае заменить ЭтаФорма?
   mikecool
 
1 - 11.08.21 - 15:19
т.е. формы нет, но есть объект?
   vde69
 
2 - 11.08.21 - 15:21
на клиенте объект не доступен в принцепе, там или ссылка или что-то другое.

автор - покажи код
   ildary
 
3 - 11.08.21 - 15:28
(0) Если я правильно понял, то можно попробовать взять форму для ссылки через Получить форму() (знаю, что в УФ это не рекомендуется, но ведь работает и по другому никак), после чего эту форму и передать в параметры.
   АнализДанных
 
4 - 11.08.21 - 15:39
(0) Вопрос непонятный, возможно тебе поможет передать в процедуру тип "Структура" вместо формы. Добавь в нее ключ "Объект" со значением типа структура.

ДанныеФормы = Новый структура;
ДанныеФормы.Вставить("Объект", Новый Структура("Номенклатура, Контрагент", ЭтаФорма.Номенклатура, ЭтаФорма.Контрагент));

УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыВыданные(ДанныеФормы, НавигационнаяСсылка,  СтандартнаяОбработка, ПараметрыРегистрации)
   Надежда_Ник
 
5 - 11.08.21 - 15:43
ЭтаФорма - если обращение непосредственно в коде формы. А у меня обращение из кода формы списка к элементу списка, там нужно что-то другое. Попробую через ПолучитьФорму()
   Жан Пердежон
 
6 - 11.08.21 - 15:46
(0)
> мне надо обратиться к форме через Объект
тебе это не надо
   АнализДанных
 
7 - 11.08.21 - 15:49
(5)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
Номенклатура = ТекущиеДанные.Номенклатура;
Ссылка = ТекущиеДанные.Ссылка
   Надежда_Ник
 
8 - 11.08.21 - 15:55
Мне поставлена задача: вносить счета-фактуры к реализации без открытия формы реализации, через форму списка. В 1с в коде создания счета-фактуры из формы документа фигурирует ЭтаФорма. Ссылка.ПолучитьФорму()? Объект.ПолучитьФорму() выдает ошибку "Интерактивные операции недоступны"
   Жан Пердежон
 
9 - 11.08.21 - 16:01
(8) не нужна тебе форма
   Надежда_Ник
 
10 - 11.08.21 - 16:04
А что нужно?
   Надежда_Ник
 
11 - 11.08.21 - 16:05
Через ссылку тоже "Интерактивные операции недоступны"
   Dmitrii
 
12 - 11.08.21 - 16:08
(8) >> вносить счета-фактуры к реализации без открытия формы реализации.

И чем это действо отличается от "Создать на основании - Счет-фактура выданный"?
Форма реализации при этом не открывается.
   Dmitrii
 
13 - 11.08.21 - 16:15
О какой конфе вообще идёт речь?
В современных типовых конфигурациях есть БСП с подсистемой подкючаемых обработок. Рисуй свою обработку и подключай её к объекту - документ Реализация. Встраивай через БСП к командам объекта и будет тебе хоть групповое формирование счетов-фактур на основании реализаций, хоть поштучное, хоть с открытием форм, хоть без открытия.
   Надежда_Ник
 
14 - 11.08.21 - 20:19
Конфигурация Комплексная автоматизация 2.0. Нет у нас ввести на основании - счет-фактура выданный в меню
   Надежда_Ник
 
15 - 11.08.21 - 20:22
И в конфигурации не является реализация основанием для счета-фактуры выданной
   Надежда_Ник
 
16 - 11.08.21 - 20:22
БСП надо изучать мне еще, хотела попроще
   Надежда_Ник
 
17 - 11.08.21 - 20:28
В расширении в меню еще добавляю пункт "создать счет-фактуру"
   Мультук
 
18 - 12.08.21 - 08:04
(0)
Вполне возможно, в процедуре УчетНДСУПКлиент.ОбработкаНавигационнойСсылкиСчетаФактурыВыданные(..) происходит неведомое волшебство.
Но скорее всего там куча текста, который можно проанализировать.

КА 2.0 у меня нет, есть Бухгалтерия 3.0 -- там из кучи букв можно выдернуть нужные структуры и вызовы для создания сч/ф программно.
   ildary
 
19 - 12.08.21 - 08:19
(0) если Вам надо добавить новый ввод на основании, то вот пример Ввод на основании на примере Реализация -> ЗаказПоставщику (должен сработать и в расширении):

1. Ввод на основании у документа - применять не надо (применяем БСП)
2. В модуль менеджера ЗаказПоставщику добавляем процедуру ДобавитьКомандуСоздатьНаОснованииРтиУ() Экспорт
3. В модуль менеджера Реализация в ДобавитьКомандыСозданияНаОсновании() добавляем вызов ДобавитьКомандуСоздатьНаОснованииРтиУ()
   ДенисЧ
 
20 - 12.08.21 - 08:20
(19) А общий модуль кто править будет? ))
   ДенисЧ
 
21 - 12.08.21 - 08:20
(16) БСП изучать надо. Без неё в типовых никуда
   ildary
 
22 - 12.08.21 - 08:24
(20) Прошу прощения, о каком общем модуле речь?
   ДенисЧ
 
23 - 12.08.21 - 08:26
(22) ВводНаОснованииПереопределяемый или как-то так.
   ДенисЧ
 
24 - 12.08.21 - 08:28
Порядок подключения:

1. Определить состав объектов, у которых есть команды создания на основании, а также объекты, которые могут являться основанием для создания других объектов. Перечислить все эти объекты в процедуре ПриОпределенииОбъектовСКомандамиСозданияНаОсновании общего модуля СозданиеНаОснованииПереопределяемый, пример:

Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт

    Объекты.Добавить(Метаданные.Документы._ДемоСчетНаОплатуПокупателю);

    Объекты.Добавить(Метаданные.Документы._ ДемоРеализацияТоваров);

    Объекты.Добавить(Метаданные.Документы._ ДемоПеремещениеТоваров);

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

https://its.1c.ru/db/bsp313doc#content:54:1:issogl2_разработка_и_подключение_команд_создания_на_основании
   ildary
 
25 - 12.08.21 - 08:30
(23) Это если документ совсем новый и в этом модуле не встречавшийся. Мой пример - для документов, которые в этой процедуре уже есть.
   Chai Nic
 
26 - 12.08.21 - 08:31
Иногда при заполнении очень хочется использовать модуль формы, например потому что какие-то функции пересчета находятся именно там и повторять их в своём модуле как-то не очень..
   ДенисЧ
 
27 - 12.08.21 - 08:32
(25) Ага. "У меня такая же нога, и она не болит".
Раз уж подсказывать - то полностью, видно же, что дама в БСП разбирается, как я в творчестве Кандинского...
   ildary
 
28 - 12.08.21 - 08:33
(26) А другого способа (кроме как повторять их в своём модуле) и нет. Обычно приходится, когда создаешь документ программно и хочешь заполнение полей как на форме - приходится включать копипаст на полную и молиться, чтобы рекурсивно не затащить половину конфигурации.
   ildary
 
29 - 12.08.21 - 08:34
(27) сдаюсь, был неправ
   mszsuz
 
30 - 12.08.21 - 08:51
(28) Другой способ есть. Нужно сделать в расширении этой формы экспортную процедуру/функцию и дергать через неё.
 
 
   ildary
 
31 - 12.08.21 - 08:58
(30) спасибо за идею, интересная, но под каждую мелочь тянуть формы в расширение - не очень удобно.
   mszsuz
 
32 - 12.08.21 - 09:03
(31) У меня для этого есть "Фреймворк для Расширений" ) Там это всё автоматически делается и ничего тянуть не надо.
   ildary
 
33 - 12.08.21 - 09:11
(32) скажите пожалуйста, где можно посмотреть / почитать про этот фреймворк?
   mszsuz
 
34 - 12.08.21 - 09:25
(33) в поисковиках есть немного. А нормальная документация всё никак не пишется.
   Надежда_Ник
 
35 - 12.08.21 - 10:22
Подставила вместо ЭтоФорма ОбщегоНазначенияУТВызовСервера.ПолноеИмяФормыОбъекта(Элемент) (подсмотрела в сандартном коде) и все получилось. Спасибо всем


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.