Имя: Пароль:
1C
1С v8
БП3 Списание с расчетного счета. Программное заполнение
0 masenshi
 
28.12.22
11:56
Бухня 3
Создаю программно (перегружаю регламентным заданием) документы Списание с расчетного счета из нетиповой.
Соответсвенно работаю с типом ДокументОбъект.

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

Как мне вызвать эту функцию и заполнить эти же реквизиты правильно, имея на руках ДокументОбъект. И как правильно лучше сделать
Колхозить не вариант (типа копировать типовую функцию)
1 mikecool
 
28.12.22
12:11
каждая из функций вызывает что-то из общих модулей, туда и смотри
2 masenshi
 
28.12.22
12:17
(1) так все они с формой же и работают ((
3 Гипервизор
 
28.12.22
12:47
(0) Вопрос интересный.. Но в вашем случае, разве нельзя заполнить интерактивно несколько документов с разными видами операций и посмотреть какие реквизиты заполняются? А потом согласовать это с переносом данных из нетиповой. А может в БСП есть какие-то возможности для этого?
4 SSSSS_AAAAA
 
28.12.22
16:34
(0) "Как мне вызвать эту функцию"
Никак! Ибо и не надо её вызывать. Надо научиться работать с объектом без формы.
Вот в качестве образца программное заполнение самого часто используемого документа - РТУ
Надеюсь, тут достаточно хорошо видно полное отсутствие хоть каких-то намеков на форму и ее методы.

парОбъект.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Товары;
парОбъект.Организация = мОрганизация;
парОбъект.БанковскийСчетОрганизации = мОрганизация.ОсновнойБанковскийСчет;
парОбъект.Контрагент = Контрагент;
парОбъект.Склад = Справочники.Склады.НайтиПоНаименованию("Основной");
парОбъект.ДоговорКонтрагента = РаботасДоговорамиКонтрагентовБП.ДоговорКонтрагентаИзОбъекта(парОбъект);
парОбъект.СчетУчетаРасчетовСКонтрагентом = СчетРасчетыСПокупателями;
парОбъект.СчетУчетаРасчетовПоАвансам = СчетРасчетыПоАвансамПолученным;
парОбъект.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически; //НеЗачитывать;
парОбъект.ВалютаДокумента = ОбщегоНазначенияБПВызовСервераПовтИсп.ПолучитьВалютуРегламентированногоУчета();
парОбъект.КурсВзаиморасчетов = рсш.Fields("cambio").Value;
парОбъект.СуммаВключаетНДС = Истина;
парОбъект.СуммаДокумента = рсш.Fields("totale").Value;
парОбъект.СпособДоставки = Справочники.СпособыДоставки.Самовывоз;
Это шапка документа. В табличной части все аналогично.
5 masenshi
 
28.12.22
16:54
(4) в двойке как раз можно было вызвать функцию, но многие все заполняли сами. Как я наблюдал.
А вот в тройке, а вдруг я могу заполнить что-то неправильно? Ну откуда мне простому программисту лучше знать какие значения в документе дозаполнить? Если есть уже готовый механизм дозаполнения.
Зачем такие полумерные функции...
Только и остается по старинке работать без формы. Точнее без готовых функций.
эх. Скрипя зубами в путь
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn