1c 7.7 Предприятие
Програмно создаю документ из журнала документов (процедура в журнале документов)
Происходит открытие документа (на нем есть кнопка Сохранить и закрыть)
Как сделать что-бы при открытии документа програмно документ сохранялся и закрывался и происходил переход в предидущий журнал?
Пробовал прописать в процедуре журнала документов в код создания:
Элемент.Записать();
Элемент.Закрыть();
4andriy @ Вчера, 22:11
,
А зачем вообще открывать форму документа, если програмно создается документ и програмно записываются все нужные реквизиты в нем?4andriy @ Вчера, 22:11
,
volodya1122 @ Сегодня, 9:00
,
так код написан, не хочеться там ковырять, проще програмно его закрыть и сохранить
4andriy @ Сегодня, 12:27
,
Добре, По тій схемі як Ви написали не спрацює. Потрібно через так зване "Ложное открытие" .
В мене так працює груповий друк документу.
Отже
1. в журналі де йде створення документу написати:
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.Установить("ВыполнитьПечать",1); // змінну можете назвати так як забажаєте
ОткрытьФорму(Док,СЗ);
_Параметр=Форма.Параметр;
Если ТипЗначенияСтр(_Параметр)="СписокЗначений" Тогда
Если _Параметр.Получить("ВыполнитьПечать")=1 Тогда
// Печать1(1,1);
//Записать(); Провести();; // по вкусу добавити
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
volodya1122 @ Сегодня, 12:53
,
де створення прописав:
Спр=СоздатьОбъект("СписокЗначений");
Спр.Установить("ЗакрФорма",1);
ЗакрФорма=Спр.Форма;
Если ТипЗначенияСтр(ЗакрФорма)="СписокЗначений" Тогда
Если Спр.Получить("ЗакрФорма")=1 Тогда
Записать();
Форма.закрыть();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
4andriy @ Вчера, 23:15
,
1. потрібно бути трішки уважнішим. я ж написав ще
ОткрытьФорму(Док,СЗ);
Спр=СоздатьОбъект("СписокЗначений");
Форма.закрыть();
//ЗакрФорма=Спр.Форма;
ЗакрФорма=Форма.Параметр;
//Если Спр.Получить("ЗакрФорма")=1 Тогда
Если ЗакрФорма.Получить("ЗакрФорма")=1 Тогда
Приклад коду з програмним створенням документа і програмним закриттям форми. Ніяких втручань в код документа не потрібно. В методі ОткрьітьФорму() передбачено отримання контексту форми, через який можна керувати нею.
Перем Конт;
Док = СоздатьОбъект("Документ.РасходнаяНакладная");
Док.Новый();
Док.ДатаДок = РабочаяДата();
Док.Записать();
//открываем форму
ОткрытьФорму(Док.ТекущийДокумент(),Конт);
//можно что-то прочитать/записать в реквизиты документа
Конт.Примечание = "Форма открылась";
//закрываем открытую форму
Конт.Форма.Закрыть();
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua