Как при открытии формы определить, что создается новый элемент.

Для начинающих разработчиков Учимся программировать

Как при открытии формы определить, что создается новый элемент?

Как правило необходимость в определении того, что создается новый элемент, возникает тогда, когда новый элемент нужно предварительно заполнить какими-то данными. Поэтому рассмотрим сначала общую методику заполнения новых объектов данными.

Основной смысл заключается в том, что все действия, которые разработчику требуется сделать при создании нового объекта, должны быть выполнены на сервере.

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

Кроме этого могут понадобиться и другие действия при открытии формы, например открыть связанную форму, выдать предупреждение и т.д., которые нельзя сделать на сервере - их нужно выполнять в форме, но уже в клиентской процедуре.

Последовательность событий, которые происходят при открытии формы нового элемента, можно представить следующей схемой:

Прежде всего, при заполнении нового объекта данными, можно попробовать обойтись вообще без написания какого-либо кода. Для этого у реквизитов объектов конфигурации есть свойства ЗначениеЗаполнения и ЗаполнятьИзДанныхЗаполнения .

Эти свойства позволяют визуально (в конфигураторе) задать правила, по которым реквизит будет заполняться данными при создании нового объекта.

Если этих возможностей недостаточно, то тогда нужно использовать возможности встроенного языка.

Действия с данными объекта нужно выполнять в модуле объекта, в обработчике события ОбработкаЗаполнения . Этот событие возникает только при создании новых объектов, при открытии форм существующих объектов это событие не вызывается. Поэтому в нем не нужно узнавать, новый это объект, или нет. Нужно только описать алгоритм заполнения объекта данными. При этом следует учитывать, что это событие будет вызываться в нескольких случаях:

  • при интерактивном создании нового объекта,
  • при вводе на основании,
  • при выполнении метода объекта Заполнить() .

При этом параметр Основание , передаваемый в этот обработчик, может иметь различные значения в зависимости от того, каким образом создается новый элемент.

Или он может иметь тип Структура , если новый объект создается интерактивной командой из списка, в котором установлен отбор. В этом случае структура будет содержать значения элементов отбора этого списка.

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

Подробнее о событии ОбработкаЗаполнения можно прочитать в синтакс-помощнике (например, для справочника):

Что касается внешнего вида формы нового объекта, то им нужно управлять в обработчике события формы ПриСозданииНаСервере .

Это событие возникает и для новых, и для существующих объектов. Поэтому в нем нужно убедиться в том, что открывается форма именно нового объекта. Убедиться в этом можно проанализировав параметр формы Ключ .

Если объект новый, в этом параметре будет пустая ссылка. Если это существующий объект - в этом параметре будет ссылка на этот объект:

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Ключ.Пустая() Тогда Сообщить("Создается новый объект"); КонецЕсли; КонецПроцедуры

И, наконец, если требуется выполнять какие-то действия в обработчике события формы ПриОткрытии , то в нем ситуация аналогичная, нужно анализировать параметр формы Ключ .

Как разрешить интерактивное открытие внешних отчетов и обработок? (1С:Бухгалтерия 8.3. редакция 3.0)

2016-12-08T15:52:26+00:00

Если при открытии внешней обработки или отчёта через меню Файл->Открыть

появляется ошибка "Нарушение прав доступа":

То вариантов для использования обработки всего два.

Первый вариант, это регистрация обработки в справочнике "Дополнительные отчёты и обработки" (об этом ).

Но, что если обработка не поддерживает такую регистрацию? А обработка очень полезная и открыть её очень хочется.

В этом случае можно пойти по второму варианту и вновь включить возможность открытия обработок в базе через меню Файл->Открыть.

Инструкция для этого ниже.

Зайдите в конфигуратор базы:

Выполните команду меню "Администрирование"->"Пользователи":

Двойным щелчком откройте своего пользователя:

Перейдите на закладку "Прочие", установите галку "Интерактивное открытие внешних отчетов и обработок" и нажмите "ОК":

Теперь закройте конфигуратор и базу (если она у вас была открыта).

Вновь зайдите в базу и попытайтесь открыть отчёт через меню "Файл"->"Открыть".

Теперь всё получится

Есть нюансы...

Способ, который я описал в этой инструкции на 100% рабочий, но при его использовании право на "Интерактивное открытие внешних обработок" спустя время может снова пропасть.

Чтобы этого избежать установите эту же галку в режиме 1С:Предприятия в текущем для вашего пользователя профиле групп доступа.

При использовании этого способа могут возникать различные нюансы (например, если вы используете встроенный профиль, который нельзя редактировать), поэтому подробной инструкции для этого случая я приводить не буду.

С уважением, Владимир Милькин (преподаватель и разработчик ).

Сегодня столкнулась с проблемой, которая появилась после того, как прошло автоматическое резервное копирование базы 1С Бухгалтерия 8.3. У меня настроено резервное копирование базы при выходе из программы. Я благополучно год выходила из программы, но, видимо, в этот раз как то неудачно вышла:). А зайти не смогла. Моя умная программа написала мне очень умную фразу, которая предназначена скорее программисту 1С, чем простому пользователю. Итак, давайте разберемся с проблемой не как администраторы 1С, а как просто бухгалтера:).

Что делать, если не открывается 1с 8.3 после резервного копирования и выдается сообщение «начало сеанса с информационной базой запрещено резервное копирование …»

Если при открытии базы 1С вместо открытия базы выдается сообщение:

«Начало сеанса с информационной базой запрещено. Для выполнения резервного копирования.…». Далее следует инструкция для администратора, как запустить базу, но бухгалтеру эта инструкция мало чем поможет.

Решение более легким способом:

Нужно найти папку на диске, в которой находится база 1С Бухгалтерия 8.3. Открыть папку. Внутри папки вы увидите следующее:

В папке нужно найти файл 1Cv8.cdn. Нужно удалить файл 1Cv8.cdn и вновь запустить 1С:Предприятие.

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

Сегодня на этом всё!

С вами была Инна Извекова.

До новых встреч на страницах !

Н аж мите на кнопки социальных сетей ниже под статьей , чтобы сохранить её у себя!

О став ьте в комментариях свои вопросы ниже под статьей! Я стараюсь отвечать всем.

С кача йте бесплатные полезные уроки , нажав на кнопку «Скачать бесплатно» ниже под статьей.

Изучите полезные методички для работы , нажав .

Кто хочет научиться бухгалтерии , нажмите

1C версии 8.3 получает все большее распространение. В связи с этим все больше пользователей этой платформы сталкиваются с проблемой при ее открытии. Так добавлении нового пользователя и попытка затем войти под ним очень часто оборачивается ошибкой «Нет прав на запуск требуемого вида клиента». Происходит это из-за того, что у данного пользователя нет минимального набора прав для запуска программы. Решается данная проблема назначением нужных прав проблемному пользователю через конфигуратор. Как именно это сделать вы узнаете в данной статье.

Как устранить ошибку «Нет прав на запуск требуемого вида клиента 1с 8.3»?

Если в открывшемся списке нет ни одного пользователя, то вам нужно его создать, задав имя, пароль и установив галочку «Полные права».

Если пользователи отобразились и среди них есть проблемный, то открыв его двойным кликом вам нужно назначить ему требуемые роли. Обязательно отмечаем «Запуск толстого клиента», «Запуск тонкого клиента» и «Запуск внешнего соединения».

Выбор требуемой роли пользователю

Обязательные роли пользователя

В случае, когда в списке доступных ролей отсутствуют «Запуск толстого клиента», «Запуск тонкого клиента» и «Запуск внешнего соединения», нужно в конфигураторе открыть назначенную пользователю роль, например «Базовые права» и в окне ее редактирования установить типы клиентов «Толстый», «Тонкий», «Веб».

Выбор назначенной пользователю роли в конфигураторе