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

автор - покажи код
3 ildary
 
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
Через ссылку тоже "Интерактивные операции недоступны"
12 Dmitrii
 
11.08.21
16:08
(8) >> вносить счета-фактуры к реализации без открытия формы реализации.

И чем это действо отличается от "Создать на основании - Счет-фактура выданный"?
Форма реализации при этом не открывается.
13 Dmitrii
 
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 -- там из кучи букв можно выдернуть нужные структуры и вызовы для создания сч/ф программно.
19 ildary
 
12.08.21
08:19
(0) если Вам надо добавить новый ввод на основании, то вот пример Ввод на основании на примере Реализация -> ЗаказПоставщику (должен сработать и в расширении):

1. Ввод на основании у документа - применять не надо (применяем БСП)
2. В модуль менеджера ЗаказПоставщику добавляем процедуру ДобавитьКомандуСоздатьНаОснованииРтиУ() Экспорт
3. В модуль менеджера Реализация в ДобавитьКомандыСозданияНаОсновании() добавляем вызов ДобавитьКомандуСоздатьНаОснованииРтиУ()
20 ДенисЧ
 
12.08.21
08:20
(19) А общий модуль кто править будет? ))
21 ДенисЧ
 
12.08.21
08:20
(16) БСП изучать надо. Без неё в типовых никуда
22 ildary
 
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_разработка_и_подключение_команд_создания_на_основании
25 ildary
 
12.08.21
08:30
(23) Это если документ совсем новый и в этом модуле не встречавшийся. Мой пример - для документов, которые в этой процедуре уже есть.
26 Chai Nic
 
12.08.21
08:31
Иногда при заполнении очень хочется использовать модуль формы, например потому что какие-то функции пересчета находятся именно там и повторять их в своём модуле как-то не очень..
27 ДенисЧ
 
12.08.21
08:32
(25) Ага. "У меня такая же нога, и она не болит".
Раз уж подсказывать - то полностью, видно же, что дама в БСП разбирается, как я в творчестве Кандинского...
28 ildary
 
12.08.21
08:33
(26) А другого способа (кроме как повторять их в своём модуле) и нет. Обычно приходится, когда создаешь документ программно и хочешь заполнение полей как на форме - приходится включать копипаст на полную и молиться, чтобы рекурсивно не затащить половину конфигурации.
29 ildary
 
12.08.21
08:34
(27) сдаюсь, был неправ
30 mszsuz
 
12.08.21
08:51
(28) Другой способ есть. Нужно сделать в расширении этой формы экспортную процедуру/функцию и дергать через неё.
31 ildary
 
12.08.21
08:58
(30) спасибо за идею, интересная, но под каждую мелочь тянуть формы в расширение - не очень удобно.
32 mszsuz
 
12.08.21
09:03
(31) У меня для этого есть "Фреймворк для Расширений" ) Там это всё автоматически делается и ничего тянуть не надо.
33 ildary
 
12.08.21
09:11
(32) скажите пожалуйста, где можно посмотреть / почитать про этот фреймворк?
34 mszsuz
 
12.08.21
09:25
(33) в поисковиках есть немного. А нормальная документация всё никак не пишется.
35 Надежда_Ник
 
12.08.21
10:22
Подставила вместо ЭтоФорма ОбщегоНазначенияУТВызовСервера.ПолноеИмяФормыОбъекта(Элемент) (подсмотрела в сандартном коде) и все получилось. Спасибо всем
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.