Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Управление формой из другой формы          
4andriy Подменю пользователя
сообщение 28.05.20, 21:11
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

1c 7.7 Предприятие

Програмно создаю документ из журнала документов (процедура в журнале документов)
Происходит открытие документа (на нем есть кнопка Сохранить и закрыть)
Как сделать что-бы при открытии документа програмно документ сохранялся и закрывался и происходил переход в предидущий журнал?
Пробовал прописать в процедуре журнала документов в код создания:
Элемент.Записать();
Элемент.Закрыть();

но не помогло.

volodya1122 Подменю пользователя
сообщение 29.05.20, 8:00
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

4andriy @ Вчера, 22:11 * ,

А зачем вообще открывать форму документа, если програмно создается документ и програмно записываются все нужные реквизиты в нем?4andriy @ Вчера, 22:11 * ,

Спасибо сказали: anatol1c,

4andriy Подменю пользователя
сообщение 29.05.20, 11:27
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Сегодня, 9:00 * ,
так код написан, не хочеться там ковырять, проще програмно его закрыть и сохранить

volodya1122 Подменю пользователя
сообщение 29.05.20, 11:53
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

4andriy @ Сегодня, 12:27 * ,

Добре, По тій схемі як Ви написали не спрацює. Потрібно через так зване "Ложное открытие" .
В мене так працює груповий друк документу.
Отже
1. в журналі де йде створення документу написати:
    СЗ=СоздатьОбъект("СписокЗначений");
    СЗ.Установить("ВыполнитьПечать",1); // змінну можете назвати так як забажаєте
ОткрытьФорму(Док,СЗ);


2. В самому документі в ПриОткрітии() в самому цінці процедури;
        _Параметр=Форма.Параметр;
    Если ТипЗначенияСтр(_Параметр)="СписокЗначений" Тогда
        Если _Параметр.Получить("ВыполнитьПечать")=1 Тогда
    //        Печать1(1,1);        
//Записать(); Провести();;  // по вкусу добавити      
            СтатусВозврата(0);
            Возврат;
        КонецЕсли;
    КонецЕсли;


Сообщение отредактировал volodya1122 - 29.05.20, 11:59

Спасибо сказали: 4andriy,

4andriy Подменю пользователя
сообщение 29.05.20, 22:15
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 174
Спасибо сказали: 1 раз
Рейтинг: 1

volodya1122 @ Сегодня, 12:53 * ,

де створення прописав:
Спр=СоздатьОбъект("СписокЗначений");
Спр.Установить("ЗакрФорма",1);


в формі, яка відкривається:
ЗакрФорма=Спр.Форма;
Если ТипЗначенияСтр(ЗакрФорма)="СписокЗначений" Тогда
Если Спр.Получить("ЗакрФорма")=1 Тогда
Записать();
Форма.закрыть();
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;


помилок при перевірці немає, але не працює

volodya1122 Подменю пользователя
сообщение 30.05.20, 8:00
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

4andriy @ Вчера, 23:15 * ,
1. потрібно бути трішки уважнішим. я ж написав ще
ОткрытьФорму(Док,СЗ);

У вас повинно бути подібний рядок в створенні де відкривається цей документ (ОткрытьФорму або ОткрытьФормуМодально)). Потрібно туди добавити так як я написав передачу списку значень.
2. Ви написали
Спр=СоздатьОбъект("СписокЗначений");

Змінна "Спр" можливо ще десь у вас використовується, Переіменуйте так щоб вона була унікальна. І зазвичай "Спр" називають Справочники, а не списак значень.
3. Ця лінійка лишня
Форма.закрыть();

4. Тут повинно бути не так
//ЗакрФорма=Спр.Форма;
ЗакрФорма=Форма.Параметр;


5. Ще помилка
//Если Спр.Получить("ЗакрФорма")=1 Тогда
Если ЗакрФорма.Получить("ЗакрФорма")=1 Тогда


Сообщение отредактировал volodya1122 - 30.05.20, 8:12

mut Подменю пользователя
сообщение 31.05.20, 18:06
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 199
Из: Новая Каховка
Спасибо сказали: 203 раз
Рейтинг: 237.5

Приклад коду з програмним створенням документа і програмним закриттям форми. Ніяких втручань в код документа не потрібно. В методі ОткрьітьФорму() передбачено отримання контексту форми, через який можна керувати нею.

Перем Конт;
    
    Док = СоздатьОбъект("Документ.РасходнаяНакладная");
    Док.Новый();
    Док.ДатаДок = РабочаяДата();
    Док.Записать();
    
    //открываем форму
    ОткрытьФорму(Док.ТекущийДокумент(),Конт);
    
    //можно что-то прочитать/записать в реквизиты документа
    Конт.Примечание = "Форма открылась";

    //закрываем открытую форму
    Конт.Форма.Закрыть();

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 15:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!