[РЕШЕНО] Форма Записи регистр сведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем web.num, 5 дек 2016.

  1. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    941
    Симпатии:
    6
    Баллы:
    29
    Всем привет, подскажите пожалуйста, по каким параметрам и где определить что пользователь нажал кнопку "закрыть", а не "ок"!? (ОбычныеФормы)
  2. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    164
    Баллы:
    104
    Отловить событие можно только так:
    Код:
    ПриЗакрытии();
    ПередЗакрытием();
    
    предварительно инициализировав переменную/реквизит формы, а далее обрабатывать её значение.
    Можно ещё посмотреть методы менеджера записи РС. К примеру:
    Код:
    Синтаксис:
    
    Модифицированность()
    Возвращаемое значение:
    
    Тип: Булево.
    Истина - объект изменен; Ложь - в противном случае.
    Описание:
    
    Определяет, изменен ли объект по отношению к считанным значениям.
    web.num, раз ты задаёшь такие вопросы, то тем более нужно описание конкретной задачи.
    Пример есть в БП 2.0, форма записи РС "Корректные корреспонденции счетов бухгалтерского учета":
    Код:
    Перем ДобавлениеОднойЗаписи;
    
    Процедура ПередЗаписью(Отказ)
       
        Запрос = Новый Запрос();
    
        ТекстЗапроса =
    
        "ВЫБРАТЬ
        |    СчетаДт.Ссылка  КАК СчетДт,
        |    СчетаДт.Код     КАК КодДт,
        |    СчетаКт.Ссылка  КАК СчетКт,
        |    СчетаКт.Код     КАК КодКт,
        |    СчетаДт.Порядок КАК ПорядокДт,
        |    СчетаКт.Порядок КАК ПорядокКт
        |ИЗ
        |    ПланСчетов.Хозрасчетный КАК СчетаДт,
        |    ПланСчетов.Хозрасчетный КАК СчетаКт
        |
        |ГДЕ
        |    СчетаДт.Ссылка В ИЕРАРХИИ(&СчетДт) И
        |    СчетаКт.Ссылка В ИЕРАРХИИ(&СчетКт) И
        |    НЕ (СчетаДт.Ссылка = &СчетДт И
        |        СчетаКт.Ссылка = &СчетКт) И
        |    (&СчетКт <> &ПустаяСсылка) И
        |    (&СчетДт <> &ПустаяСсылка) И
        |    (НЕ(СчетаДт.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПланСчетов.Хозрасчетный.Родитель ИЗ ПланСчетов.Хозрасчетный ))) И
        |    (НЕ(СчетаКт.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПланСчетов.Хозрасчетный.Родитель ИЗ ПланСчетов.Хозрасчетный )))
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    СчетаДт.Ссылка,
        |    СчетаДт.Код,
        |    &ПустаяСсылка,
        |    """",
        |    СчетаДт.Порядок,
        |    NULL
        |ИЗ
        |    ПланСчетов.Хозрасчетный КАК СчетаДт
        |
        |ГДЕ
        |    СчетаДт.Ссылка В ИЕРАРХИИ(&СчетДт) И
        |    СчетаДт.Ссылка <> &СчетДт И
        |    (&СчетКт = &ПустаяСсылка) И
        |    (&СчетДт <> &ПустаяСсылка) И
        |    (НЕ(СчетаДт.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПланСчетов.Хозрасчетный.Родитель ИЗ ПланСчетов.Хозрасчетный )))
        |
        |ОБЪЕДИНИТЬ ВСЕ
        |
        |ВЫБРАТЬ
        |    &ПустаяСсылка,
        |    """",
        |    СчетаКт.Ссылка,
        |    СчетаКт.Код,
        |    NULL,
        |    СчетаКт.Порядок
        |ИЗ
        |    ПланСчетов.Хозрасчетный КАК СчетаКт
        |
        |ГДЕ
        |    СчетаКт.Ссылка В ИЕРАРХИИ(&СчетКт) И
        |    СчетаКт.Ссылка <> &СчетКт И
        |    (&СчетКт <> &ПустаяСсылка) И
        |    (&СчетДт = &ПустаяСсылка) И
        |    (НЕ(СчетаКт.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПланСчетов.Хозрасчетный.Родитель ИЗ ПланСчетов.Хозрасчетный )))
        |
        |УПОРЯДОЧИТЬ ПО
        |    ПорядокДт,
        |    ПорядокКт";
    
        Запрос.Текст = ТекстЗапроса;
        Запрос.УстановитьПараметр("СчетДт", СчетДт);
        Запрос.УстановитьПараметр("СчетКт", СчетКт);
        Запрос.УстановитьПараметр("ПустаяСсылка", ПланыСчетов.Хозрасчетный.ПустаяСсылка());
        Результат = Запрос.Выполнить();
    
        ДобавлениеОднойЗаписи = Истина;
        Если НЕ Результат.Пустой() Тогда
            ТекстВопроса = "В указанной корреспонденции обнаружены счета, имеющие
                            |подчиненные счета (субсчета).
                            |
                            |Добавить вместо нее набор корреспонденций со счетами,
                            |не имеющими подчиненных?";
    
            Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена);
            Если Ответ = КодВозвратаДиалога.Да Тогда
                Отказ = Истина;
                ДобавлениеОднойЗаписи = Ложь;
    
                ТаблицаКорреспонденций = Результат.Выгрузить();
                ТаблицаКорреспонденций.Колонки.Добавить("Комментарий");
                Для Каждого Стр Из ТаблицаКорреспонденций Цикл
                    Стр.Комментарий = Комментарий;
                КонецЦикла;
               
                ФормаСпискаКорреспонденций = РегистрыСведений.КорректныеКорреспонденцииСчетов.ПолучитьФорму("ФормаСпискаКорреспонденций");
                ФормаСпискаКорреспонденций.ТаблицаКорреспонденций = ТаблицаКорреспонденций;
                ФормаСпискаКорреспонденций.Открыть();
    
                Закрыть();
               
            ИначеЕсли Ответ = КодВозвратаДиалога.Отмена Тогда
                Отказ = Истина;
            КонецЕсли;
        КонецЕсли;
       
    КонецПроцедуры
    
    Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    
        СтандартнаяОбработка = ДобавлениеОднойЗаписи;
    
    КонецПроцедуры
    
    
  3. TopicStarter Overlay
    web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    941
    Симпатии:
    6
    Баллы:
    29
    Да, действительно, можно вопрос задействовать, благодарю за подсказочку :)
    --- Объединение сообщений, 5 дек 2016 ---
    Но все же странно что это не предусмотрено ООО1С