Имя: Пароль:
1C
 
Программно выполнить стандартные команды при создании документа
0 K1RSAN
 
24.05.24
08:29
В общем поставили сейчас задачу из обработки программно создавать реализацию, чтобы она даже не открывалась.
Но в форме документа же куча обработок, которые при запуске выполняются, выбор счетов, автозаполнение части полей - думаю, можно ли как-то получить форму создаваемого документа и выполнить в нем эти самые процедуры, чтобы не пришлось делать заполнение руками.
1 Ненавижу 1С
 
24.05.24
08:33
(0) есть мнение что вам поставили задачу создавать реализацию на основании каких-то данных. Например, заказов клиента. Так вот выполнить
ДокОбъектРеализация.Заполнить(СсылкаНаЗаказ);

В любом случае дергать формы в бизнес-логике это плохо. Если уж нужно дозаполнять "как в форме" - посмотрите какие обработчики бизнес-логики дергаются из формы.
2 K1RSAN
 
24.05.24
09:05
(1) Да, так и есть.
Просто в типовом варианте при создании реализации форма передается в общий модуль, где заполняются стандартные реквизиты, хотел их как-нибудь подключить, чтобы вручную не писать заполнение
3 DJ Anthon
 
24.05.24
09:10
(2) в 1С часто много алгоритмов, которые работают на клиенте, а на сервере аналогов нет, приходится писать их аналоги на сервере, иногда это очень нудная и долгая работа, но так правильнее всего. а еще 1С любит переписывать свои документы и алгоритмы и потом твой код заполнения уже не будет работать с этим же документом и его придётся переписывать.
4 K1RSAN
 
24.05.24
09:44
(3) Видимо придется самому это писать (
Просто я боюсь, что какой-то реквизит забуду заполнить, отчего спустя месяц, когда надо будет месяц закрывать - это вылезет и потребуется срочно переписывать и перепроводить документы в авральном режиме.
5 PLUT
 
24.05.24
09:51
(4) ну как вариант, созданный программно документ сравнить с "ручным" документом.

сериализуешь в тексты документ-"handmade" и документ-созданный программно

и сравниваешь в каком-нибудь kdiff или банально в 1С - Сравнить файлы...

в kdiff удобнее разницу увидеть между документами
6 Skylark
 
24.05.24
09:55
Можно сгенерить структуру повторяющую документ, потом дополнить её нужными реквизитами формы. И вызвать серверную процедуру заполнения подсунув ей эту структуру, которая почти всегда успешно мимикрирует по тип "ДанныеФормыСтруктура".
После отработки процедуры заполнения, данные из структуры переносим в объект документа.
7 K1RSAN
 
24.05.24
10:35
(5) (6) Спасибо, попробую
8 Мультук
 
24.05.24
11:43
(0)

Это БП ?

1) При обмене (например с УТ) БП успешно создает реализации НЕ используя форму документа.
2) Можно просто сравнивать "эталонный" документ и созданнный вручную с помощью консоли запросов
9 K1RSAN
 
24.05.24
12:14
(8) Скорее всего там так же в конфигурации, либо в плане обмена вся логика зашита. Вот и хочу к этой логике подступиться
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс