Как при открытии формы определить, что создается новый элемент.
Для начинающих разработчиков Учимся программироватьКак при открытии формы определить, что создается новый элемент?
Как правило необходимость в определении того, что создается новый элемент, возникает тогда, когда новый элемент нужно предварительно заполнить какими-то данными. Поэтому рассмотрим сначала общую методику заполнения новых объектов данными.
Основной смысл заключается в том, что все действия, которые разработчику требуется сделать при создании нового объекта, должны быть выполнены на сервере.
Причем действия с данными самого объекта и действия с внешним видом его формы должны быть разделены разделены. Действия с данными нужно выполнять в самом объекте, а внешним видом формы нужно управлять уже в форме, но в серверной процедуре.
Кроме этого могут понадобиться и другие действия при открытии формы, например открыть связанную форму, выдать предупреждение и т.д., которые нельзя сделать на сервере - их нужно выполнять в форме, но уже в клиентской процедуре.
Последовательность событий, которые происходят при открытии формы нового элемента, можно представить следующей схемой:
Прежде всего, при заполнении нового объекта данными, можно попробовать обойтись вообще без написания какого-либо кода. Для этого у реквизитов объектов конфигурации есть свойства ЗначениеЗаполнения и ЗаполнятьИзДанныхЗаполнения .
Эти свойства позволяют визуально (в конфигураторе) задать правила, по которым реквизит будет заполняться данными при создании нового объекта.
Если этих возможностей недостаточно, то тогда нужно использовать возможности встроенного языка.
Действия с данными объекта нужно выполнять в модуле объекта, в обработчике события ОбработкаЗаполнения . Этот событие возникает только при создании новых объектов, при открытии форм существующих объектов это событие не вызывается. Поэтому в нем не нужно узнавать, новый это объект, или нет. Нужно только описать алгоритм заполнения объекта данными. При этом следует учитывать, что это событие будет вызываться в нескольких случаях:
- при интерактивном создании нового объекта,
- при вводе на основании,
- при выполнении метода объекта Заполнить() .
При этом параметр Основание , передаваемый в этот обработчик, может иметь различные значения в зависимости от того, каким образом создается новый элемент.
Или он может иметь тип Структура , если новый объект создается интерактивной командой из списка, в котором установлен отбор. В этом случае структура будет содержать значения элементов отбора этого списка.
Также этот параметр может иметь тип Неопределено , если новый элемент создается интерактивной командой из панели действий. То есть в своем алгоритме начального заполнения полезно анализировать этот параметр.
Подробнее о событии ОбработкаЗаполнения можно прочитать в синтакс-помощнике (например, для справочника):
Что касается внешнего вида формы нового объекта, то им нужно управлять в обработчике события формы ПриСозданииНаСервере .
Это событие возникает и для новых, и для существующих объектов. Поэтому в нем нужно убедиться в том, что открывается форма именно нового объекта. Убедиться в этом можно проанализировав параметр формы Ключ .
Если объект новый, в этом параметре будет пустая ссылка. Если это существующий объект - в этом параметре будет ссылка на этот объект:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Если Параметры.Ключ.Пустая() Тогда Сообщить("Создается новый объект"); КонецЕсли; КонецПроцедуры
И, наконец, если требуется выполнять какие-то действия в обработчике события формы ПриОткрытии , то в нем ситуация аналогичная, нужно анализировать параметр формы Ключ .
Как разрешить интерактивное открытие внешних отчетов и обработок? (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»?
Если в открывшемся списке нет ни одного пользователя, то вам нужно его создать, задав имя, пароль и установив галочку «Полные права».
Если пользователи отобразились и среди них есть проблемный, то открыв его двойным кликом вам нужно назначить ему требуемые роли. Обязательно отмечаем «Запуск толстого клиента», «Запуск тонкого клиента» и «Запуск внешнего соединения».
Выбор требуемой роли пользователю
Обязательные роли пользователя
В случае, когда в списке доступных ролей отсутствуют «Запуск толстого клиента», «Запуск тонкого клиента» и «Запуск внешнего соединения», нужно в конфигураторе открыть назначенную пользователю роль, например «Базовые права» и в окне ее редактирования установить типы клиентов «Толстый», «Тонкий», «Веб».
Выбор назначенной пользователю роли в конфигураторе