arefaste/1C_Forums huggingface dataset:
Решил добавить в типовое перечисление своё значение, понадобилось по задаче. Расширил, добавил, пытаюсь сохранить, а вылетает ошибка.
"Использование собственных значений для заимствованного перечисления в расширениях недопустимо в режиме совместимости 8.3.13 и ниже"
Стоял режим совместимости 8.3.12, окей... Сменил режим на "Не использовать". Ситуация та же. Господа умельцы, ваши идеи?
---
режим совместимости есть и в конфигурации и в расширении
---
БСП у вас требует режим совместимости 8.3.12. Если в конфигурации включена возможность редактирования - добавляйте перечисление в конфигурацию, а не в расширение.
---
режим совместимости есть и в конфигурации и в расширении
---
Стоит не использовать, и там и там.
---
На ум приходит только предложение удалить и снова создать перечисление, но уже при включенном режиме совместимости
---
Щас зашел проверить. Там есть свойство "Режим совместимости расширения конфигурации" сменил на не использовать всё взлетело. А я менял свойство "режим совместимости" в самом низу у расширения.
---
может одинаково надо поставить - не использовать?
---
Да, уже выставил везде не использовать
---
недопустимо в режиме совместимости 8.3.13 и ниже
сообщение тогда почему такое? может у вас не 8.3.15 запустилась.
---
Но теперь имеем ошибку:
"Режим совместимости конфигурации с 1С:Предприятием версии 8.3.15 не поддерживается.
Для запуска установите в конфигурации режим совместимости "Не использовать" при разработке на версии 8.3.12
(или "Версия 8.3.12" при разработке на более старших версиях).
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(2621)}: ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
{ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(31)}: ПередЗапускомПрограммы();
{МодульСеанса(8)}: СтандартныеПодсистемыСервер.УстановкаПараметровСеанса(ИменаПараметровСеанса);
"
При запуске предприятия...
---
ожидаемо.... ищите где проверяется версия платформы, версия совместимости и что там можно сделать что бы проскочить
---
БСП у вас требует режим совместимости 8.3.12. Если в конфигурации включена возможность редактирования - добавляйте перечисление в конфигурацию, а не в расширение.
Доброго времени суток, дорогие товарищи

Подскажите пожалуйста, как программно заполнить реквизиты счёта покупателю "Оплата до" и "Банковский счёт"

Идёт создание нового счёта. Заполняются данные из таблицы, но

Банковский счёт, почему-то не хочет подтягиваться. Пробовал что-то типа:

```1c
    Справочники.БанковскиеСчета.НайтиПоНаименованию("Имя счёта")
```

Реквизит "Оплата до" не нашёл вообще

Заранее спасибо
---
НовыйДок = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовыйДок.СтруктурнаяЕдиница =Справочники.БанковскиеСчета.НайтиПоНаименованию("Ваше название счета");

НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
---
Оплата до - это реквизит формы и он вычисляется из глобальной константы
КоличествоРабочихДнейОтсрочки = Константы.СрокОплатыСчетовПокупателю.Получить();
---
А как прописать? Туплю

В такой пример:

```1c
    НовыйДок = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();

    ......

    ИмяСч = Справочники.БанковскиеСчета.НайтиПоНаименованию("Счёт");

    СЧ = НовыйДок.Организация.ПолучитьОбъект();

    СЧ.ОсновнойБанковскийСчет = ИмяСч;

    НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
```
---
Администрирование - Параметры учета - Сроки оплаты покупателями
---
А счет покупателя еще проще - в справочнике контрагенты основной банковский счет
---
(3) Автор вообще-то программно делает....
---
Так я так и делал:

```1c
    НовыйДок = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();

    ......

    ИмяСч = Справочники.БанковскиеСчета.НайтиПоНаименованию("Счёт");

    СЧ = НовыйДок.Организация.ПолучитьОбъект();

    СЧ.ОсновнойБанковскийСчет = ИмяСч;

    НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
```
---
Я ж писал - не хочет
---
НовыйДок = Документы.СчетНаОплатуПокупателю.СоздатьДокумент();
НовыйДок.СтруктурнаяЕдиница =Справочники.БанковскиеСчета.НайтиПоНаименованию("Ваше название счета");

НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
---
Спасибо большое!
Есть документ объект "Документ" в состав которого входит табличная часть "Товары", которая имеет реквизиты: "Номенклатура" (ссылка на элемент справочника номенклатур).

В справочнике номенклатур для каждой из номенклатур хранится ее штрихкод и дабы не добавлять в табличную часть документа избыточное поле штрихкод, то при открытии формы документа в табличную часть добавлено поле Штрихкод, которое существует только во время жизни формы и должно отображать штрихкод выбранной номенклатуры в каждой из строк таблицы товаров.

Итак, для заполнения поля Штрихкод в обработчик ПриИзмененииНоменклатура необходимо написать код, который получает изменяемую строку и устанавливаемое значение номенклатуры, после чего по ссылке на номенклатуру получить штрихкод и отобразить его в табличной части.

Обычно это делю в обработчике подобным образом:

```1c
    Строка=Элементы.Товары.ВыделенныеСтроки[0];
    Строка=Объект.Товары.НайтиПоИдентификатору(Строка);
    Штрихкод=ПолучитьШтрихкод(Строка.Номенклатура);
    Строка.Штрихкод=Штрихкод;
```

Но сейчас речь идет о "замечательном мобильном приложении", которое на строке "Элементы.Товары.ВыделенныеСтроки[0]" просто крашится, а если в отладчике рассчитать выражение "Элементы.Товары", тогда тоже крашится.
Как можно по другому реализовать необходимое мне заполнение значение штрихкода?
---
Можно добавлять колонки, которые обращаются к реквизитам через точку. Просто создайте колонку и укажите ПутьКДанным что-то типа "Объект.Товары.Номенклатура.ШтрихКод". Проще это мышкой делается через перетаскивание подчиненного реквизита на форму.
---
Написал вот так - работает, но не слишком "красиво":

```1c
    &НаКлиенте
    Процедура ТоварыНоменклатураПриИзменении(Элемент)
    Результат=ПолучитьДанныеНоменклатуры(Элемент.ТекстРедактирования);
    Строка=Объект.Товары.НайтиСтроки(Новый Структура("Номенклатура",Результат.Номенклатура))[0];
    Строка.Штрихкод=Результат.Штрихкод;
    КонецПроцедуры

    &НаСервереБезКонтекста
    Функция ПолучитьДанныеНоменклатуры(Наименование)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.ШтрихКод КАК ШтрихКод
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Наименование = &Наименование";
    Запрос.УстановитьПараметр("Наименование", Наименование);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Выборка.Следующий();
    Ответ=Новый Структура("Номенклатура,Штрихкод",Выборка.Ссылка,Выборка.ШтрихКод);
    Возврат Ответ;
    КонецФункции
```
---
Ну все верно написал, подтягивай сразу все в одном запросе и будет счастье
---
Думал может как то по другому форумчане делают :)
---
Можно добавлять колонки, которые обращаются к реквизитам через точку. Просто создайте колонку и укажите ПутьКДанным что-то типа "Объект.Товары.Номенклатура.ШтрихКод". Проще это мышкой делается через перетаскивание подчиненного реквизита на форму.
---
Действительно хотел сделать так как Вы написали, но не помнил как это реализуется. Спасибо - лучшей ответ.
Свою реализацию оставлю, но код избыточен :)
Приветствую, Форумчане!
---
```1c
    Если ВидФормы = "ФормаОбъекта" И Не Параметры.Свойство("ключ") Тогда
    ВыбраннаяФорма = "ФормаЭлемента1";
    СтандартнаяОбработка = Ложь;
    КонецЕсли;
```
---
Дык а зачем в обработке получения формы. Может при создании или при открытии?
А если подписка на событие то там нет такого события
---
```1c
    Если ВидФормы = "ФормаОбъекта" И Не Параметры.Свойство("ключ") Тогда
    ВыбраннаяФорма = "ФормаЭлемента1";
    СтандартнаяОбработка = Ложь;
    КонецЕсли;
```
---
В чем вопрос то?
Где ты какие события создаешь и для чего? и что не получается?
---
Ключ в параметрах — пустая ссылка, если это новый документ.
---
Так тоже срабатывала ошибка или я неправильно оформлял этот момент
---
Рано нажал...

Пытаюсь поставить условие, что если при создании нового документа - ничего не предпринимать.
---
Сегодня не мой день... опять рано нажал:

```1c
    Если НЕ Параметры.Ключ.Пустая() Тогда//Параметры.Свойство("Ключ") И ЗначениеЗаполнено(Параметры.Ключ) Тогда

    Сообщить("дааааа");

    Иначе
    Сообщить("нееее");

    КонецЕсли;
```

Пытался Параметры проверить по всем возможным условиям, но выдает ошибку, если это вновь созданный документ:

Ошибка при выполнении обработчика - 'ОбработкаПолученияФормы'
по причине:
{ОбщийМодуль.ОбработкаОткрытияФормы.Модуль(18)}: Поле объекта не обнаружено (Ключ)
   Сообщить(Параметры.Ключ);

как проверить, что документ вновь созданный, что параметры пустые, а раз так, то ничего не предпринимать?
---
Да, я несколько неверно ответил. Если свойство "Ключ" в параметрах отсутствует, то это новый документ, иначе — существующий.
---
```1c
    Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда

    Сообщить("дааааа");

    Иначе
    Сообщить("нееее");

    КонецЕсли;
```
Здравствуйте. Подскажите, пожалуйста, как определить, какое действие совершается: создание нового элемента Справочника или редактирование старого? Нужно для разграничения прав доступа - одним дать возможность только создавать, другим создавать и редактировать. Или, может быть, есть другие варианты, как это можно реализовать?
---
Подскажите, пожалуйста, как определить, какое действие совершается: создание нового элемента Справочника или редактирование старого?

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    Если не ЗначениеЗаполнено(Объект.Ссылка) тогда
    //это новый
    Иначе
    //редактирование старого
    КонецЕсли;
    КонецПроцедуры
```
---
Или, может быть, есть другие варианты, как это можно реализовать?
Логичнее было бы через роли. Права на добавление и изменение соответственно раздавать.
---
Это динамически надо делать, то есть, условно, выдать права на Справочник только тем, кто имеет права на определенный Документ. Если роли добавятся на тот Документ, то и в Справочник придется добавлять.
---
Подскажите, пожалуйста, как определить, какое действие совершается: создание нового элемента Справочника или редактирование старого?

```1c
    &НаКлиенте
    Процедура ПриОткрытии(Отказ)
    Если не ЗначениеЗаполнено(Объект.Ссылка) тогда
    //это новый
    Иначе
    //редактирование старого
    КонецЕсли;
    КонецПроцедуры
```
---
Спасибо! А ещё понял, что можно смотреть Код. В моем случае у нового элемента Код заполняется только после записи.
В конфигурации ERP, при заполнении документа "Реализация товаров и услуг", и проведении, эти продажи не отображаются в регистре накопления "Партии Товаров Организаций", хотя регистр привязан к такому документу... в чем может быть проблема,может не так провожу?
---
Закрытие месяца....
В нем есть функция, после которой распределяются партии... До этого движений не будет
---
Закрытие месяца....
В нем есть функция, после которой распределяются партии... До этого движений не будет
---
огромнейшее вам спасибо!
Как правильнее получить список всех ролей, которые имеют право редактирования Документа? Это нужно для того, чтобы натянуть право редактирования ещё на один Документ всем полученным ролям. Спасибо.
---
Если конфигурация на основе БСП, можно воспользоваться запросом:

```1c
    ВЫБРАТЬ
    Т.Роль.Имя
    ИЗ
    РегистрСведений.ПраваРолей КАК Т
    ГДЕ
    Т.ОбъектМетаданных.ПолноеИмя = "Документ.МойДокумент"
    И Т.Изменение = ИСТИНА
```

В более общем случае поможет код:

```1c
    Для каждого Роль Из Метаданные.Роли Цикл
    Если ПравоДоступа("Изменение", Метаданные.Документы.МойДокумент, Роль) Тогда
    Сообщить(Роль.Имя);
    КонецЕсли;
    КонецЦикла;
```
---
Если конфигурация на основе БСП, можно воспользоваться запросом:

```1c
    ВЫБРАТЬ
    Т.Роль.Имя
    ИЗ
    РегистрСведений.ПраваРолей КАК Т
    ГДЕ
    Т.ОбъектМетаданных.ПолноеИмя = "Документ.МойДокумент"
    И Т.Изменение = ИСТИНА
```

В более общем случае поможет код:

```1c
    Для каждого Роль Из Метаданные.Роли Цикл
    Если ПравоДоступа("Изменение", Метаданные.Документы.МойДокумент, Роль) Тогда
    Сообщить(Роль.Имя);
    КонецЕсли;
    КонецЦикла;
```
---
Благодарю. Помогли.
Добрый всем день. У меня есть exe файл, в который необходимо передавать необходимые параметры и получить то, что возвращается. Запускается из командной строки. В 1с реализовано следующим образом:

```1c
    // Получаем макет с двоичными данными
    ДвоичныеДанные_sign = РегистрыСведений.sendy_СведенияОТерминалах.ПолучитьМакет("ДвоичныеДанные_sign");

    ВременныйФайл = ПолучитьИмяВременногоФайла("exe");

    Попытка
    ДвоичныеДанные_sign.Записать(ВременныйФайл);
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;

    // Создаём новый COM объект для запуска exe
    ObjShell = Новый COMОбъект("WScript.Shell");

    // Указываем путь к sign.exe и параметры, с которыми запускаем
    // использование: sign.exe private base64(request)
    ObjScriptExec = ObjShell.Exec(ВременныйФайл + " " + ПриватныйКлюч + " " + Запрос64);

    // возвращаем то что сгенерирует sign.exe (электронная подпись) обратно в функцию
    SIGNEXE = ObjScriptExec.StdOut.ReadAll();

    // выполняем принудительную задержку в 3 секунды, чтобы можно было успешно удалить файл.
    ObjShell.Run("timeout /t " + 3, 0, Ложь);

    Попытка
    УдалитьФайлы(ВременныйФайл);
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;

    Возврат SIGNEXE;
```

ВОт этой строкой я получаю результат работы этого файла.

```1c
    SIGNEXE = ObjScriptExec.StdOut.ReadAll();
```

Все выполняется. Но...На секунду открывается окно командной строки. Мне нужно от этого избавиться. Каким образом, подскажите пожалуйста?
---
Средствами 1С - никак. Вариант: написать/найти внешнюю компоненту, которая будет запускать Ваше приложение. Там можно будет скрыть окно при запуске. Вот, например https://infostart.ru/public/88060/

Внешняя компонента на основе разработки Крипича http://infostart.ru/public/81644/ - NativeAPI на Delphi реализует запуск процесса с заданным приоритетом и видимостью окна, переключение раскладки клавиатуры, всплывающие сообщения в трее, паузу sleep без загрузки процессора и внешние события.

ЗапуститьПриложение - запускает приложение, чтобы обойти ограничения 1с. Позволяет выставить видимость окна, приоритет и процессоры.
---
Средствами 1С - никак. Вариант: написать/найти внешнюю компоненту, которая будет запускать Ваше приложение. Там можно будет скрыть окно при запуске. Вот, например https://infostart.ru/public/88060/

Внешняя компонента на основе разработки Крипича http://infostart.ru/public/81644/ - NativeAPI на Delphi реализует запуск процесса с заданным приоритетом и видимостью окна, переключение раскладки клавиатуры, всплывающие сообщения в трее, паузу sleep без загрузки процессора и внешние события.

ЗапуститьПриложение - запускает приложение, чтобы обойти ограничения 1с. Позволяет выставить видимость окна, приоритет и процессоры.
---
Внешняя компонента подошла бы идеально. Если бы я знала что в этих экзешниках)))) Спасибо большое.
```1c
    ВЫБРАТЬ
    ПродажиАвтомобилейОбороты.Автомобиль,
    ПродажиАвтомобилейОбороты.Покупатель,
    ПродажиАвтомобилейОбороты.КоличествоОборот КАК Количество,
    ПродажиАвтомобилейОбороты.СуммаОборот КАК СуммаПродажи,
    ПродажиАвтомобилейОбороты.СебестоимостьОборот КАК Себестоимость,
    ПродажиАвтомобилейОбороты.Регистратор КАК ДокументДвижения,
    ПродажиАвтомобилейОбороты.Автомобиль.Модель КАК Модель,
    ПродажиАвтомобилейОбороты.СуммаОборот - ПродажиАвтомобилейОбороты.СебестоимостьОборот КАК Наценка,
    ПродажиАвтомобилейОбороты.СуммаОборот + ПродажиАвтомобилейОбороты.СуммаСкидкиОборот КАК ЦенаПрайса,
    ПродажиАвтомобилейОбороты.СуммаСкидкиОборот КАК Скидка,
    ПродажиАвтомобилейОбороты.Автомобиль.VIN КАК VIN,
    ПродажиАвтомобилейОбороты.СуммаОборот / &Процент КАК Премия,
    ПродажиАвтомобилейОбороты.ДоговорВзаиморасчетов.ВидОплаты КАК ВидОплаты

    ИЗ
    РегистрНакопления.ПродажиАвтомобилей.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиАвтомобилейОбороты
    ГДЕ
    ПродажиАвтомобилейОбороты.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода
```

Как в СКД задать этот &Процент параметр и что при нажатие на кнопку сформировать не ругался? Хочу вывести выбор на форму.
---
добавить параметр вручную, дать ему имя Процент, определить тип значения и прочие штуки
установить галку быстрого доступа, чтобы вывелся на форму

сделать в настройках самой компоновки, если сама скд его не подцепит после написания запроса
---
ДА создал вручную и заработало спасибо.
---
добавить параметр вручную, дать ему имя Процент, определить тип значения и прочие штуки
установить галку быстрого доступа, чтобы вывелся на форму

сделать в настройках самой компоновки, если сама скд его не подцепит после написания запроса
Добрый день!

Столкнулась с интересной проблемой, почему-то раздел Отчеты не доступен для указания в Размещении для одного внешнего отчета, хотя доступен для другого. В чём может быть дело?
---
Наверное, потому, что на одном скрине - дополнительная обработка, а на другом - дополнительный отчет.
---
Наверное, потому, что на одном скрине - дополнительная обработка, а на другом - дополнительный отчет.
---
Да, спасибо. Не обратила внимание, думала это отчет.
Добрый день!
Есть справочник Сотрудники, в ТЧ(ДополнительныеРеквизиты) которого есть данные из ПВХ. Есть отчет, который по значениям из ТЧ формирует отчет. В отчете есть такое поле

```1c
    СотрудникиДополнительныеРеквизиты.Значение.Наименование
```

Нужно программно поменять значение этого поля у одного сотрудника.
Не получается, почему то в обработке ругается на Значение.Наименование

```1c
    Для Каждого Строка Из СотрудникОбъект.ДополнительныеРеквизиты Цикл
    Если Строка(Строка.Свойство) = "Нужное мне свойство" Тогда
    Строка.Значение.Наименование = НужноеМнеЗначение;
    КонецЕсли;
    КонецЦикла;
```

Причем в каких то случаях нормально проходит, но вот на этом сотруднике ругается.
В чем дело и что можно сделать?
---
Строка.Значение.Наименование
Может потому что "значение" не строкового типа? А например ссылочного и это какой нибудь справочник?
---
Строка.Значение.Наименование
Может потому что "значение" не строкового типа? А например ссылочного и это какой нибудь справочник?
---
да, вы правы. Там где проходит тип СправочникСсылка.ЗначенияСвойствОбъектов, а где не проходит - строка.
Добрый день!

Пропал документ Передачи товаров из рабочей базы (УТ 11.4.6.188, SQL)
Если запустить "Журнал регистрации" в Конфигураторе, то там частично отображаются записи об этом документе(нет записи о создании, только об изменении и проведении)
Если запустить "Журнал регистрации" в 1С Предприятии, то там такого документа нет.
Так же в списке документов "Передача товаров между организациями" такого документа нет.
Если смотреть через консоль запросов, то тоже такого документа нет.
Тестирование и исправление не помогло.

Скажите пожалуйста, кто-нибудь сталкивался с подобным?
---
Если изменить номер документа, то в журнале вы не узнаете предыдущий номер (по крайней мере в предприятии, не знаю что в конфигураторе будет). Поэтому очень похоже на то, что поменяли номер, дату и, может, еще что-то в документе.
---
RLS?
---
Ограничений никаких нет, права полные
---
Покажите журнал регистрации из режима предприятия за период 26.06.2019 11:57:00 - 26.06.2019 11:57:15 без отбора по данным
---
В одну и ту же секунду изменился документ одного и того же типа, если сравнивать журналы из предприятия и конфигуратора. Не может это быть один и тот же документ? История изменений есть для этого документа?
---
Что показывает этот скриншот?
---
Всю историю изменения документа ЛеОО-000793
По документу ЛеОО-000929 вообще нет никакой информации в журнале регистрации Предприятия, только в Конфигураторе
---
а всю историю изменения ЛеОО-000793 из предприятия можно?
---
Если установить отбор по номеру, то аналогично данным из конфигуратора
---
Очень странная ситуация, если установить отбор по периоду и установить отбор по номеру документа, то даты записи в журнал регистрации отличаются
---
Сделайте скрин журнала из предприятия за 17.06.2019 16:24:30 - 16:24:40 без отбора по данным, только по дате
---
все еще думаете, что ЛеОО-000793 и ЛеОО-000929 - это разные документы?))
---
возможно поверх этого документа кто-то забил новый? как это часто бывает - думают что копируют, при этом меняя существующее..
---
Тогда в журнале регистрации была бы запись об этом
---
Если изменить номер документа, то в журнале вы не узнаете предыдущий номер (по крайней мере в предприятии, не знаю что в конфигураторе будет). Поэтому очень похоже на то, что поменяли номер, дату и, может, еще что-то в документе.
---
проверьте это на копии - при изменении даты и номера записи показываются только по этим новым данным
 Вам нужно попытаться найти этот документ по GUID, который нужно взять из копии
Есть форма на которой расположено две страницы. У первой видимость по стандарту - Истина, а у второй Ложь.
На первой странице при нажатии на кнопку необходимо реализовать механизм, который скрывает первую страницу, то есть переводит видимость первой страницы в Ложь, а вторую открывает, то есть переводит видимость второй страницы в Истина, плюс одновременно должны примениться значения функциональный опций.

Так не работает

```1c
    Элементы.ПерваяСтраницы.Видимость=Ложь;
    Элементы.ВтораяСтраницы.Видимость=Истина;
    ОбновитьИнтерфейс();
```

А вот так работает (то есть без обновления интерфейса)

```1c
    Элементы.ПерваяСтраницы.Видимость=Ложь;
    Элементы.ВтораяСтраницы.Видимость=Истина;
```

Решил написать сначала обновление интерфейса, а потом установку видимостей, но все равно не помогло:

```1c
    ОбновитьИнтерфейс();
    Элементы.ПерваяСтраницы.Видимость=Ложь;
    Элементы.ВтораяСтраницы.Видимость=Истина;
```
---
Разобрался. При вызове "ОбновитьИнтерфейс();" форма переоткрывается (данная форма встроена в область начальной страницы) и в обработчике открытия я могу проверить необходимые мне параметры и уже в переоткрытой форме установить необходимые видимости.
---
Разобрался. При вызове "ОбновитьИнтерфейс();" форма переоткрывается (данная форма встроена в область начальной страницы) и в обработчике открытия я могу проверить необходимые мне параметры и уже в переоткрытой форме установить необходимые видимости.