Имя: Пароль:
1C
1С v8
есть ли программный код , дублирующий интеранктивное создание нового документа ?
0 alpha78
 
28.03.22
11:55
Здравствуйте, скажите пожалуйста, кто знает, есть ли программный код , дублирующий интеранктивное создание нового документа ? Спасибо
1 lEvGl
 
гуру
28.03.22
11:56
что это означает
2 arsik
 
гуру
28.03.22
11:57
Похоже на эльфийский. Не могу прочитать. (с)
3 PLUT
 
28.03.22
11:57
(0) в VBA это называется "запись макроса"?
4 Chai Nic
 
28.03.22
11:58
Неа. К сожалению, обратиться к процедурам модуля формы без явного создания формы невозможно.
5 PLUT
 
28.03.22
11:59
(0) как вариант: если у нового документа есть основание, то в обормотке заполнения подсмотри - как интеранкитвно создается новый документ
6 vde69
 
28.03.22
12:00
открыть форму обьекта
7 Лирик
 
28.03.22
12:04
8 lodger
 
28.03.22
12:07
(0) качаете дистрибутив 1с:Тестировщик.

жмёте записать действия.
выполняете интерактивное создание нового документа
жмёте завершить запись сценария.

дорабатываете сценарий напильником.

жмёте повторить сценарий N раз.
9 mikecool
 
28.03.22
12:08
Конфигуратор, Сервис - "Запустить для записи журнала действий пользователя"
10 lEvGl
 
гуру
28.03.22
12:09
(8) в 1с сделали запись макроса?
11 Лирик
 
28.03.22
12:20
(8) (9) (10) Коллеги, вы не в теме. Это уже 3я ветка ТС. У человека "не заполняется СтавкаНДС" в коде:

Объект = Документ.ххх.Создать();
.....
Объект.Записать(РежимЗаписиДокумента);

А вот при открытии заполняется. Вот беда. И понять, что надо заполнить нужные реквизиты именно объекта - не хотим. Хотим иметь метод Объект.ВыполнитьВсеОбработчикиФормыПриСозданииНовогоДокумента().
12 vde69
 
28.03.22
12:40
(11) тогда ему просто надо вызвать


Объект = Документ.ххх.Создать();
Объект.Заполнить(КакиеТоДанныеДляЗаполнения);
Объект.Записать(РежимЗаписиДокумента);
13 Serg_1960
 
28.03.22
13:01
(28) Нет. Программное и интерактивное заполнение документов - антагонисты :) Не за что.
14 Serg_1960
 
28.03.22
13:03
Тьфу :) Вместо (28) --> (0)
15 Chai Nic
 
28.03.22
13:07
(12) Это если "Объект.Заполнить()" существует и что-то делает. Но чаще всего заполнение производится в модуле формы, а иногда даже &НаКлиенте. Приходится закатывать солнце вручную. Это прискорбно. Не реализовали в 1с возможности обращения к процедурам модуля формы без наличия открытой формы на клиенте, к сожалению.
16 vde69
 
28.03.22
13:11
(15) во всех типовых работать будет
17 unbred
 
28.03.22
13:40
(11) возможно, у него НДС на форме считается. (вдруг он сам там написал)
    Док = Документ.СоздатьДокумент();
    Док.Записать();
    Форма = Док.Ссылка.ПолучитьФорму("ФормаСКрутымАлгоритмомВычисленияНДС"); //тут есть офигенная Экспортная процедура  или функция
    НДС = Форма.КрутойАлгоритмВычисленияНДСНаФормеИбоНех();
18 Лирик
 
28.03.22
13:57
Ну поупражняйтесь, поупражняйтесь. :)
99% парню задали задачу "автоматически создать документы Платежные поручения входящие" (уж откуда они там прилетели не важно). Во входящих данных Контрагент и сумма. Человек написал обработку с кодом:

Объект = Документы.ПлатежноеПоручениеВходящее.СоздатьОбъект();
Объект.Контрагент = ДанныеИзВне.Контрагент;
Объект.Сумма      = ДанныеИзВне.Сумма;
Объект.Записать(РежимЗаписи);

Документ открывает ставка НДС не заполнена. Руками создает - заполнена, ЧЗНХ?!!!!
История вопроса тут.

подскажите пожалуйста, как программно создать действие по интерактивному созданию документ
как автоматически заполнить реквизит формы при программном создании документа (УТП, обыч ф
19 DGorgoN
 
28.03.22
13:59
(18) Мде...
20 Chai Nic
 
28.03.22
14:26
(18) Да, это целый квест - заполнить типовой документ программно. Причем ещё делают так, что реквизиты, которые пользователь не должен заполнять - и не отображаются в форме. А ещё и в подписках при записи может что-то делаться. Я как-то сталкивался, заполняю реквизит в объекте, потом делаю .Записать() - а он становится пустым. Заполнение документа в типовой из кода - задача крайне нетривиальная.
21 lEvGl
 
гуру
28.03.22
14:39
дааа заполнить документ это целое дело..
но если посмотреть глубжее, то возможно человек хочет код платформы, он на ++ кажется
22 Лирик
 
28.03.22
14:52
(20) Позвольте не согласится. Делаете образец (документ, элемент справочника) интерактивно, записываете, смотрите как и чем заполнены все реквизиты. Пожалуйста готово. Да, есть сложные объекты, заполнение одних реквизитов которых зависит от данных в других, но если разбираешься в предметной области ничего сложного. Плюс отловить алгоритмы заполнения в отладчике - достаточно просто. А уж у регламентируемых "сверху" документов, таких как ППВ, ПКО и прочее - абсолютно просто все. Задача ТС - из этих.
23 Конструктор1С
 
28.03.22
15:25
(20) да, в типовых тот ещё мазафакинг можно встретить
24 rudnitskij
 
28.03.22
15:30
(18) а просто к своей процедуре дописать заполнение ставки НДС - этот вариант был отброшен как слишком примитивный?
25 Chai Nic
 
28.03.22
15:34
(22) Так хочется не заполнять все 100 реквизитов, найти необходимый минимум, так сказать. Получается, что в программном коде приходится дублировать типовые механизмы. С риском, что при очередном обновлении что-то пойдет не так..
26 Лирик
 
28.03.22
15:44
(24) В прошлых ветках сказано что у объекта нет реквизита СтавкаНДС, а алгоритм типа:
НС = Объект.РасшифровкаПлатежа.Добавить();
НС.СтавкаНДС = Ставка;
видимо выше понимания. (Да не хотел никого обидеть).
Больше всего умиляет настойчивость, с которой ТС просит "код, дублирующий интерактивное создание документов".
(25) В типовых большинство процедур заполняющих документ серверные и прогнать объект через них не составит труда. Я же в (22) описал чисто академическую задачу "как заполнить документ, что бы он гарантировано был валидным, здесь и сейчас".
27 Chai Nic
 
28.03.22
15:47
(26) Больше всего умиляет настойчивость, с которой ТС просит "код, дублирующий интерактивное создание документов".

Просьба вполне законная, только не по адресу. Это 1с просить надо. Чтобы в типовых все процедуры заполнения и пересчета были не привязанными к форме и хорошо документированными. В общем, за всё хорошее и против всего плохого.
28 Конструктор1С
 
28.03.22
15:48
(26) >>В типовых большинство процедур заполняющих документ серверные

И половина из них заботливо спрятаны в модуле формы...
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс