Решение задачи 5.6 из Сборника задач для подготовки к экзамену 1С:Специалист по платформе

10.12.21

Разработка - Подготовка к аттестации

Вариант решения задачи с функциональными опциями на 8.3.17.1496.

Бесплатные

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Узнавайте о новых бесплатных решениях в нашей телеграм-группе Инфостарт БЕСПЛАТНО

Наименование Скачано Бесплатно
Задача5_6
.dt 179,59Kb
21 Скачать бесплатно

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Готового полного решения найти не удалось. Ниже - попытка восполнить это.

Одно из условий задачи
"Управление видимостью должно быть реализовано с помощью механизма функциональных опций"
несколько удивляет тем, что противоречит следующему
"Не следует использовать функциональные опции не по назначению, например: создавать функциональные опции ради управления видимостью элементов управления конкретной формы" (https://its.1c.ru/db/v8std/content/470/hdoc/_top/функциональные%20опции).
Наверное, с точки зрения задачи для экзамена, это не важно.

Решение выполнено на "каркасной конфигурации" https://1c.ru/spec/questions.htm.

Описание решения:

1. Добавлена подсистема УправляемыеФормы; добавлен ПараметрСеанса.ТекущийПользователь типа СправочникСсылка.ФизическиеЛица; добавлена Роль.ПолныеПрава; добавлено два пользователя ИБ.

 

 

2. В модуль сеанса добавлен обработчик.

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)

	ИмяПользователя = ИмяПользователя();
	ТекПользователь = Справочники.ФизическиеЛица.НайтиПоКоду(ИмяПользователя);
	
	Если Не ЗначениеЗаполнено(ТекПользователь) Тогда
		обСпр = Справочники.ФизическиеЛица.СоздатьЭлемент();
		обСпр.Код = ИмяПользователя;
		обСпр.Наименование = ИмяПользователя;
		обСпр.Записать();
		ТекПользователь = обСпр.Ссылка;
	КонецЕсли;
	
	ПараметрыСеанса.ТекущийПользователь = ТекПользователь;

КонецПроцедуры

3. Добавлен Документ.ПриходДенег; в Документы ПриходДенег, РасходнаяНакладная добавлен реквизит ОтветственныйСтаршийМенеджер типа СправочникСсылка.ФизическиеЛица; добавлены основные формы обоих документов.

 

 

4. Добавлен РегистрСведений.ПраваПользователей периодичность День, Измерение Пользователь типа СправочникСсылка.ФизическиеЛица, Ресурс ДоступКОтветственныйСтаршийМенеджер типа Булево.


5. Добавлена ФункциональнаяОпция.ДоступКОтветственныйСтаршийМенеджер, хранение РегистрСведений.ПраваПользователей.Ресурс.ДоступКОтветственныйСтаршийМенеджер, состав ПриходДенег, РасходнаяНакладная реквизиты ОтветственныйСтаршийМенеджер.

 



6. Добавлен ПараметрыФО.Пользователь, использование РегистрСведений.ПраваПользователей.Измерение.Пользователь

 

 

7. Добавлен ОбщийМодуль.УправляемыеФормыСервер:

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

8. В основные формы документов ПриходДенег, РасходнаяНакладная добавлены обработчики:

&НаСервере
Процедура ПриОткрытииНаСервере()
	УправляемыеФормыСервер.УстановитьПараметрыФункциональныхОпций(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПриОткрытииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ДатаПриИзмененииНаСервере()
	УправляемыеФормыСервер.УстановитьПараметрыФункциональныхОпций(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	ДатаПриИзмененииНаСервере();
КонецПроцедуры

В новом документе ПриОткрытии дата уже будет установлена, а ПриСозданииНаСервере ещё нет.

В качестве дополнения можно ещё добавить основную форму записи РегистраСведений.ПраваПользователей и ПослеЗаписи() вызвать ОбновитьИнтерфейс(), но, кажется, это будет уже лишнее.

Если есть мнение относительно корректности, правильности описанного решения, добавьте, пожалуйста, в комментарии.

Ограничение ответственности.

Материалы этой публикации предоставляются "как есть". Вы можете пользоваться ими, вносить изменения.

Автор не гарантирует, что результаты использования будут соответствовать Вашим ожиданиям.

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

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

Вступайте в нашу телеграмм-группу Инфостарт

Решение задачи 1С:Специалист платформа 8.3

См. также

Подготовка к аттестации Разработчик Стажер 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Обучающая программа 1С Online представляет собой интерактивное изучение языка запросов с самого начала:
- 50 практических заданий с различным уровнем сложности;
- Методические материалы по практике написания запросов;
- Описание назначения таблиц и индексов 1С Предприятие 8;
- Методика решения реальных задач запросом 1С;
- Автоматическая система проверки решений с указанием ошибок;
- Инструкции по решению задач с разъяснениями;
- Техническая поддержка пользователей.
Тренажер запросов подходит для начинающих и действующих разработчиков 1С

5094 руб.

11.02.2014    88919    121    15    

215

Подготовка к аттестации Разработчик Стажер 1С 8.3 Россия Абонемент ($m)

Экзамен 1С:Специалист по платформе 8.3. Решения билетов экзамена (Июнь 2026). В публикации собраны базы с решениями билетов, задачи которых аналогичны экзаменационным. Решения выполнены в соответствии с требованиями и рекомендациями учебного центра (курсы подготовки к экзамену). Решено на актуальной на 2026 каркасной конфигурации "new_carcass_8_3_25_1445".

1 стартмани

10.06.2026    4708    94    RosinMaksim    47    

10

Математика и алгоритмы Механизмы платформы 1С Подготовка к аттестации Разработчик Стажер 1С 8.5 Бесплатно (free)

Платформа 1Craft[Code] — это, по сути, профессиональный тренажёр для тех, кто хочет наконец-то перестать бояться кода 1С и начать писать его уверенно. Здесь нет скучной теории — сразу практика, сразу дело.

05.06.2026    7587    burni4    17    

16

Подготовка к аттестации Разработчик Стажер 1С 8.3 Россия Бесплатно (free)

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

13.01.2026    7031    742    cheshirshik    6    

20

Подготовка к аттестации Разработчик Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Установим основные параметры, сделаем тексты удобочитаемыми, создадим копипастом подсистемы и группы команд, настроим консоль запросов.

07.07.2025    17000    cargobird    15    

15

Подготовка к аттестации Разработчик Россия Бесплатно (free)

Источники информации для подготовки к Эксперту.

18.12.2024    20491    GraVVitY    62    

78
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RocKeR_13 1486 10.12.21 09:19 Сейчас в теме
Одно из условий задачи
"Управление видимостью должно быть реализовано с помощью механизма функциональных опций"
несколько удивляет тем, что противоречит следующему
"Не следует использовать функциональные опции не по назначению, например: создавать функциональные опции ради управления видимостью элементов управления конкретной формы"


Ключевая фраза-то у вас пропущена:
С помощью функциональных опций следует управлять доступностью той или иной функциональности для всей конфигурации (и, как следствие, доступностью элементов форм и команд во всей конфигурации, а не в одной отдельно взятой форме)


То есть, если необходимо управлять видимостью некого элемента одной конкретной формы - ФО нет смысла использовать. Если же у вас есть некий реквизит (например, "Серия", если брать типовые конфигурации), который повторяется в нескольких объектах и их формах, то тут уже целесообразно использовать ФО.
2. MaGn 40 10.12.21 21:02 Сейчас в теме
(1) соглашусь, спасибо.
Для отправки сообщения требуется регистрация/авторизация