Загрузил chesnov3

Спец платформа шпаргалка

реклама
Валюта в документе или в регистре?
Документ операция Перед записью
Заполнение графика.
Количественный суммовой учет
Списание комплектующих БУ
Сторно. Расчета.
Перерасчет. Запись в таблицу перерасчета надбавки данных документа Оплата от пассажиров.
Перерасчет в отчете. Получаем объекты перерасчетов и рассчитываем только дополнительные начисления, которые
вынесены в общий модуль отдельной процедурой.
Смена ставки в течение месяца. Запрос.
"ВЫБРАТЬ
|
НачислениеЗарплатыОсновныеНачисления.НомерСтроки КАК НомерСтроки,
|
НачислениеЗарплатыОсновныеНачисления.Сотрудник КАК Сотрудник,
|
НачислениеЗарплатыОсновныеНачисления.ВидРасчета КАК ВидРасчета,
|
НачислениеЗарплатыОсновныеНачисления.ДатаНачала КАК ДатаНачала,
|
КонецПериода(НачислениеЗарплатыОсновныеНачисления.ДатаОкончания, День) КАК ДатаОкончания,
|
НачислениеЗарплатыОсновныеНачисления.Подразделение КАК Подразделение,
|
НАЧАЛОПЕРИОДА(НачислениеЗарплатыОсновныеНачисления.Ссылка.Дата, МЕСЯЦ) КАК ПериодРегистрации
|ПОМЕСТИТЬ вт_Начисления
|ИЗ
|
Документ.НачислениеЗарплаты.ОсновныеНачисления КАК НачислениеЗарплатыОсновныеНачисления
|ГДЕ
|
НачислениеЗарплатыОсновныеНачисления.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|
вт_Начисления.НомерСтроки КАК НомерСтроки,
|
вт_Начисления.Сотрудник КАК Сотрудник,
|
вт_Начисления.ВидРасчета КАК ВидРасчета,
|
вт_Начисления.ДатаНачала КАК ДатаНачала,
|
вт_Начисления.ДатаОкончания КАК ДатаОкончания,
|
вт_Начисления.Подразделение КАК Подразделение,
|
вт_Начисления.ПериодРегистрации КАК ПериодРегистрации,
|
СведенияОСотрудниках.Период КАК Период,
|
СведенияОСотрудниках.Оклад КАК Оклад
|ПОМЕСТИТЬ вт_БезНаибольшихДат
|ИЗ
|
вт_Начисления КАК вт_Начисления
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОСотрудниках КАК СведенияОСотрудниках
|
ПО вт_Начисления.Сотрудник = СведенияОСотрудниках.Сотрудник
|ГДЕ
|
СведенияОСотрудниках.Период <= вт_Начисления.ДатаОкончания
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|
вт_БезНаибольшихДат.НомерСтроки КАК НомерСтроки,
|
МАКСИМУМ(вт_БезНаибольшихДат.Период) КАК Период
|ПОМЕСТИТЬ вт_СрезПоследних
|ИЗ
|
вт_БезНаибольшихДат КАК вт_БезНаибольшихДат
|ГДЕ
|
вт_БезНаибольшихДат.Период < вт_БезНаибольшихДат.ДатаНачала
|
|СГРУППИРОВАТЬ ПО
|
вт_БезНаибольшихДат.НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|
вт_БезНаибольшихДат.НомерСтроки КАК НомерСтроки,
|
вт_БезНаибольшихДат.Сотрудник КАК Сотрудник,
|
вт_БезНаибольшихДат.ВидРасчета КАК ВидРасчета,
|
вт_БезНаибольшихДат.ДатаНачала КАК ПериодДействияНачалао,
|
вт_БезНаибольшихДат.ДатаОкончания КАК ПериодДействияКонец,
|
вт_БезНаибольшихДат.Подразделение КАК Подразделение,
|
вт_БезНаибольшихДат.ПериодРегистрации КАК ПериодРегистрации,
|
вт_БезНаибольшихДат.Оклад КАК Оклад
|ИЗ
|
вт_БезНаибольшихДат КАК вт_БезНаибольшихДат
|
ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт_СрезПоследних КАК вт_СрезПоследних
|
ПО вт_БезНаибольшихДат.НомерСтроки = вт_СрезПоследних.НомерСтроки
|
И вт_БезНаибольшихДат.Период = вт_СрезПоследних.Период
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|
вт_БезНаибольшихДат.НомерСтроки,
|
вт_БезНаибольшихДат.Сотрудник,
|
вт_БезНаибольшихДат.ВидРасчета,
|
вт_БезНаибольшихДат.Период,
|
вт_БезНаибольшихДат.ДатаОкончания,
|
вт_БезНаибольшихДат.Подразделение,
|
вт_БезНаибольшихДат.ПериодРегистрации,
|
вт_БезНаибольшихДат.Оклад
|ИЗ
|
вт_БезНаибольшихДат КАК вт_БезНаибольшихДат
|ГДЕ
|
вт_БезНаибольшихДат.Период > вт_БезНаибольшихДат.ДатаНачала
|
|УПОРЯДОЧИТЬ ПО
|
ПериодДействияНачалао
|ИТОГИ ПО
|
НомерСтроки";
1. Получаем табличную часть документа. Без ссылки. По ссылке. Дата приводим к началу месяца =
ПериодРегистрации.
2. Присоединение РСвед. с окладами. Отсечение записей больших даты окончания.
3. Получаем запись с окладом, действующим на начало периода. Нужны номер строки и период. Период меньше
даты начала. Группировка по номеру строки, период – максимум.
4. Внутреннее соединение предыдущей записи со всеми записями без последних лишних дат и объединение её с
записями без последних лишних дат с условием, что период больше даты начала.
Разные периоды действия одной строкой. 15.09.2023 – 10.10.2023
Диаграмма Ганта
Больничный
Продолжение болничного. Сразу запрос.
Скрин не влез. Связь по сотруднику.
Продолжение болничного.
Ошибка на скрине. Надо расчет доп начислений вынести из цикла вниз.
Табель
Параметр сеанса. Пользователь.
Установка текущего пользователя
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)
Имя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(Имя);
Если ФизЛицо.Пустая() Тогда
Сообщить("нет такого физ лица.");
Иначе
ПараметрыСеанса.ТекущийПользователь = ФизЛицо;
КонецЕсли;
КонецПроцедуры
После надо создать регистр сведений. Измерение – должность. Ресурсы – булево ОУ, БУ, Расчеты.
Потом создать Параметры функциональных опций.
В модуле приложения создать обработчик Перед началом работы системы.
Процедура ПередНачаломРаботыСистемы(Отказ)
Параметры = Новый Структура("Должность", РаботаСФормамиВызовСервера.ПолучитьДолжность());
УстановитьПараметрыФункциональныхОпцийИнтерфейса(Параметры);
КонецПроцедуры
Должность – это имя параметра функциональных опций.
Функция ПолучитьДолжность() Экспорт
Возврат ПараметрыСеанса.ТекущийПользователь.Должность;
КонецФункции
Если надо показывать или не показывать какое-то поле в зависимости от даты документа, тогда регистр сведений
сделать периодическим и использовать не модуль приложения, а модуль формы этого документа, обработчик При
создании на сервере. И добавить в структуру параметр Период.
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Параметры = Новый Структура("Должность, Период",
РаботаСФормамиВызовСервера.ПолучитьДолжность(), Объект.Дата);
УстановитьПараметрыФункциональныхОпцийИнтерфейса(Параметры);
КонецПроцедуры
Формы. Движения контрагента в регистре из формы контрагента.
1. Создаётся произвольная форма в контрагенте с реквизитом формы «динамический
список». В запросе динам списка отбор по контрагенту.
2. Создаётся команда в контрагенте, раздел – форма, важное.
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = Новый Структура("Контрагент", ПараметрКоманды);
ОткрытьФорму("Справочник.Контрагенты.Форма.ФормаДвижений", ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
КонецПроцедуры
3. В обработчик формы При создании на сервере назначаем параметр.
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Контрагент = Неопределено;
Параметры.Свойство("Контрагент", Контрагент);
Движения.Параметры.УстановитьЗначениеПараметра("Контрагент",Контрагент);
КонецПроцедуры
Форма. Навигационная ссылка в комментарии. Открыть
1. Создать реквизит комментарий. В свойствах Кнопка открыть – вкл.
2. Обработчик Открытие
Процедура КомментарийОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Слова = СтрРазделить(Объект.Комментарий, " ");
Для Каждого Слово Из Слова Цикл
Если СтрНачинаетсяС(Слово,"e1cib/data/Справочник.Контрагенты?ref=") Тогда
ПерейтиПоНавигационнойСсылке(Слово);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Форма. Привязка ошибки в форме к конкретному полю.
1. Если есть выборка, получить номер строки в запросе.
2. Привязать сообщение к конкретному полю формы.
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон("Не хватает товара %1 по договору %2", Выборка.Номенклатура,
Выборка.ДоговорПредставление);
Сообщение.Поле = СтрШаблон("Объект.СписокНоменклатуры[%1].Количество", Выборка.НомерСтроки - 1);
//Сообщение.УстановитьДанные(); Надо не надо. Тут устанавливается Объект.
Сообщение.Сообщить();
Форма. В форме выбора номенклатуры показывать тип цен и остаток. После выбора
подставить актуальную цену.
1.
2.
3.
4.
Создать регистр сведений. Измерения – Номенклатура, Тип цены, Ресус – цена.
В номенклатуре создать форму выбора.
В форме изменить запрос у реквизита динамического списка. Вытащить цену и остатки.
В форме, откуда вызывается форма выбора номенклатуры назначаем обработчик Начало выбора у колонки
номенклатура.
Процедура СписокНоменклатурыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.СписокНоменклатуры.ТекущиеДанные;
ПараметрыФормы = Новый Структура("ТипЦены, ТекущаяСтрока", Объект.ТипЦены, ТекущиеДанные.Номенклатура);
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",ПараметрыФормы,
Элементы.СписокНоменклатуры);
КонецПроцедуры
5. В обработчике При создании на сервере новой формы назначить значения параметров
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ТипЦены = Неопределено;
Параметры.Свойство("ТипЦены", ТипЦены);
Список.Параметры.УстановитьЗначениеПараметра("ТипЦены", ТипЦены);
КонецПроцедуры
6. В новой форме у элемента списка создать обработчик Выбор значения.
Процедура СписокВыборЗначения(Элемент, Значение, СтандартнаяОбработка)
ТекущиеДанные = Элементы.Список.ТекущиеДанные;
СтруктураДанных = Новый Структура;
СтруктураДанных.Вставить("Номенклатура",Значение);
СтруктураДанных.Вставить("Цена", ТекущиеДанные.Цена);
ОповеститьОВыборе(СтруктураДанных);
КонецПроцедуры
7. В форме, откуда вызывалась новая форма у элемента табличной части описываем обработчик Обработка выбора
Процедура СписокНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ТекущиеДанные = Элементы.СписокНоменклатуры.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(ТекущиеДанные,ВыбранноеЗначение);
КонецПроцедуры
Форма. Окно подбора. Перетаскивание.
1. Создать команду на форме.
Процедура Подбор(Команда)
ОткрытьФорму("ОбщаяФорма.ФормаПодбора",,Элементы.СписокНоменклатуры);
КонецПроцедуры
2. Создать общую произвольную форму. Добавить реквизиты Динамический список (откуда берём
номенклатуру), Таблица значений (отобранный товар, куда помещаем отобранную номенклатуру).
2.1.
Режим открытия окна – блокировать окно владельца.
2.2.
Высота табличных частей – 8.
3. На форме подбора создать кнопку – Перенести в документ.
4. Назначить на форме выбора для элемента табличная часть динамический список обработчик – Выбор.
5. Назначить на форме у реквизита куда перетаскиваем обработчик – Перетаскивание.
6. В модуле формы, откуда вызывается окно подбора:
&НаКлиенте
Процедура СписокНоменклатурыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ТипЗнч(ВыбранноеЗначение) = Тип("Строка") Тогда
ОбработатьНоменклатуруОтбора(ВыбранноеЗначение);
Иначе
ТекущиеДанные = Элементы.СписокНоменклатуры.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(ТекущиеДанные,ВыбранноеЗначение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьНоменклатуруОтбора(Адрес)
НоваяТаблица = ПолучитьИзВременногоХранилища(Адрес);
Для Каждого Товар ИЗ НоваяТаблица Цикл
ПараметрПоиска = Новый Структура("Номенклатура",Товар.Номенклатура);
НайденнаяСтрока = Объект.СписокНоменклатуры.НайтиСтроки(ПараметрПоиска);
Если НайденнаяСтрока.Количество() = 0 Тогда
НовыйТовар = Объект.СписокНоменклатуры.Добавить();
ЗаполнитьЗначенияСвойств(НовыйТовар,Товар);
Иначе
НайденнаяСтрока[0].Количество = НайденнаяСтрока[0].Количество + Товар.Количество;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Подбор(Команда)
ОткрытьФорму("ОбщаяФорма.ФормаПодбора",,Элементы.СписокНоменклатуры);
КонецПроцедуры
7. В модуле формы подбора:
&НаКлиенте
Процедура ПеренестиВДокумент(Команда)
Адрес = ПоместитьВоВременноеХранилищеОтобранныеТовары();
ОповеститьОВыборе(Адрес);
КонецПроцедуры
&НаСервере
Функция ПоместитьВоВременноеХранилищеОтобранныеТовары()
Возврат ПоместитьВоВременноеХранилище(ОтобранныеТовары.Выгрузить());
КонецФункции
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ЭтоГруппаНоменклатура(ВыбраннаяСтрока) Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
ПеренестиНоменклатуруВОтобранные(ВыбраннаяСтрока);
КонецПроцедуры
&НаСервере
Функция ЭтоГруппаНоменклатура(Номенклатура)
Возврат Номенклатура.ЭтоГруппа;
КонецФункции
&НаКлиенте
Процедура ОтобранныеТоварыПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка,
Строка, Поле)
ОбработатьПеретаскиваемыеПозиции(ПараметрыПеретаскивания.Значение);
КонецПроцедуры
&НаСервере
Процедура ОбработатьПеретаскиваемыеПозиции(МассивНоменклатуры)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
Номенклатура.Ссылка КАК Ссылка
|ИЗ
|
Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|
|
НЕ Номенклатура.ЭтоГруппа
И Номенклатура.Ссылка В(&МассивНоменклатуры)";
Запрос.УстановитьПараметр("МассивНоменклатуры", МассивНоменклатуры);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ПеренестиНоменклатуруВОтобранные(Выборка.Ссылка);
КонецЦикла;
КонецПроцедуры
Процедура ПеренестиНоменклатуруВОтобранные(Номенклатура)
СтруктураПоиска = Новый Структура("Номенклатура",Номенклатура);
НайденнаяСтрока = ОтобранныеТовары.НайтиСтроки(СтруктураПоиска);
Если НайденнаяСтрока.Количество() = 0 Тогда
НоваяСтрока = ОтобранныеТовары.Добавить();
НоваяСтрока.Номенклатура = Номенклатура;
НоваяСтрока.Количество = 1;
Иначе
НайденнаяСтрока[0].Количество = НайденнаяСтрока[0].Количество + 1;
КонецЕсли;
КонецПроцедуры
Картинка в справочники физ лица.
1. Создать реквизит Картинка, тип – хранилище значения.
2. Создать реквизит формы Адрес картинки, тип – Строка. Перенести на форму и указать вид – Поле
картинки. В свойствах поставить, что это гиперссылка. Установить обработчик – Нажатие.
3. Создать обработчик формы Перед записью на сервере.
4. Создать обработчик формы При чтении на сервере.
&НаКлиенте
Процедура АдресКартинкиНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеО = Новый ОписаниеОповещения("ПослеВыбораФайла", ЭтотОбъект);
НачатьПомещениеФайлаНаСервер(ОписаниеО,,,,,УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ПослеВыбораФайла(ОписаниеФайла,ДопПараметры) Экспорт
Если ОписаниеФайла <> Неопределено Тогда
АдресКартинки = ОписаниеФайла.Адрес;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ТекущийОбъект.Картинка = Новый
ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресКартинки));
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
АдресКартинки = ПоместитьВоВременноеХранилище(ТекущийОбъект.Картинка.Получить());
КонецПроцедуры
Если задача сделать выбор или сохранять файл в базе или сохранять путь к файлу, тогда
последовательность та же, код немного другой:
Изменён обработчик После выбора файла и добавлена процедура. Всё остальное выше.
&НаКлиенте
Процедура ПослеВыбораФайла(ОписаниеФайла,ДопПараметры) Экспорт
Если ОписаниеФайла <> Неопределено Тогда
//АдресКартинки = ОписаниеФайла.Адрес;
ПараметрыДоп = Новый Структура("ОписаниеФайла", ОписаниеФайла);
ОпиисаниеВопроса = Новый
ОписаниеОповещения("ПослеОтветаНаВопрос",ЭтотОбъект,ПараметрыДоп);
ПоказатьВопрос(ОпиисаниеВопроса,"Записать картинку в базу данных? При ответе ""нет"" будет
записан путь картинки.",РежимДиалогаВопрос.ДаНетОтмена);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеОтветаНаВопрос(РезультатВопроса, ДопПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
АдресКартинки = ДопПараметры.ОписаниеФайла.Адрес;
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Нет Тогда
Объект.ПутьККартинке = ДопПараметры.ОписаниеФайла.СсылкаНаФайл.Файл.ПолноеИмя;
КонецЕсли;
КонецПроцедуры
Создание задач для сотрудников по регламентному заданию.
1. Создаётся задача Задачи исполнителям. Реквизит адресации – Исполнитель. Реквизит – Список
заданий, строка.
2. Создаётся обработка с кнопкой. Которая запросом берёт всех сотрудников из регистра сведений
Сведения о сотрудниках. И в выборке код по созданию задач:
НоваяЗадача = Задачи.ЗадачиИсполнителям.СоздатьЗадачу();
НоваяЗадача.Исполнитель = Выборка.Сотрудник;
НоваяЗадача.Дата = НачалоДня;
НоваяЗадача.Наименование = "Отчет о проделанной работе.");
НоваяЗадача.Записать();
3. В общем серверном модуле создать функцию, которая возвращает список невыполненных задач
текущего пользователя.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
ЗадачиИсполнителям.Ссылка КАК Ссылка
|ИЗ
|
Задача.ЗадачиИсполнителям КАК ЗадачиИсполнителям
|ГДЕ
|
НЕ ЗадачиИсполнителям.Выполнена
|
И НЕ ЗадачиИсполнителям.ПометкаУдаления
|
И ЗадачиИсполнителям.Исполнитель = &Исполнитель";
Запрос.УстановитьПараметр("Исполнитель", ПараметрыСеанса.ТекущийПользователь);
РезультатЗапроса = Запрос.Выполнить();
МассивЗадач = Новый Массив;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивЗадач.Добавить(Выборка.Ссылка);
КонецЦикла;
Возврат МассивЗадач;
4. В модуле приложения обработчик При начале работы системы.
Процедура ПриНачалеРаботыСистемы()
ПодключитьОбработчикОжидания("ПоказатьЗадачу",3,Истина);
КонецПроцедуры
Процедура ПоказатьЗадачу() Экспорт
Задачи = ОбщегоНазначенияВызовСервера.ЗадачиТекущегоПользователя();
Для Каждого Задача Из Задачи Цикл
ПараметрыЗадачи = Новый Структура("Ключ",Задача);
ОткрытьФорму("Задача.ЗадачиИсполнителям.ФормаОбъекта",ПараметрыЗадачи);
КонецЦикла;
КонецПроцедуры
Установить Текущего пользователя.
1. Создать параметр сеанса Текущий пользователь с тип физ. лицо.
2. Создать пользователей в конфигураторе. Создать роли и назначить пользователям роли.
3. В модуле сеанса обработчик Установка параметров сеанса
Имя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
ФизЛицо = Справочники.ФизическиеЛица.НайтиПоКоду(Имя);
Если НЕ ФизЛицо.Пустая() Тогда
ПараметрыСеанса.ТекущийПользователь = ФизЛицо;
КонецЕсли;
Бизнес процессы
1. Всегда создавать в регистре сведений Регистр адресации 3 измерения: Сотрудник, Должность, Подразделение.
2. В справочниках Сотрудник, должность, подразделение сделать предопределенные элементы.
3. Создать задачу и связать её с бизнес процессом. И связать его с регистром на вкладке Адресация.
3.1 Создать реквизиты адресации Сотрудник, Должность, Подразделение и связать в свойствах внизу с
измерениями регистра.
3.2 На вкладке адресация заполнить все 3 поля. Адресация – рег св., Основной реквизит – Исполнитель, Текущий
исполнитель – Параметр сеанса Текущий пользователь.
4. Нарисовать карту маршрута.
5. В задаче создать форму списка невыполненных задач. Сделать её не основной.
5.1. У реквизита Список поменять в свойствах основную таблицу на По исполнителю.
5.2. Сделать отбор по Выполнена = ложь.
6. Вынести созданную форму в Рабочую область начальной страницы.
7. В пользовательском режиме заполнить регистр адресации фамилиями, должностями, подразделениями.
Если есть условный оператор.
1. В бизнес процессе создаётся реквизит типом булево.
2. В обработчике условного оператора Результат = Реквизит такой-то.
Отразить текущее состояние маршрута.
1. В бизнес процессе создать форму.
1.1. Добавить реквизит формы Карта маршрута с типом Графическая схема.
1.2. Разместить его на форме.
2. Обработчик формы При создании на сервере.
3. Обработчик формы После записи на сервере.
БПОбъект = РеквизитФормыВЗначение("Объект");
КартаМаршрута = БПОбъект.ПолучитьКартуМаршрута();
Скачать