Управляемые Формы (Чистов)
Задача Клиент-Серверного взаимодействия
- Сервер обрабатывает клиентские запросы к ИБ
- необходимость в Данных Сеансов (пользователей)
- Дефолтные формы ОК в большинстве случаев на примере :
- Создание Констант :
-
НазваниеОрганизации
- строка 60 символов
-
АдресОрганизации
- строка НЕ ограниченной длины
- Закладка Представление
- [√] Многострочный режим
- [√] Расширенное Редактирование (+ Hot Keys)
-
- Ограничения дефолтных Форм:
-
Необходимость открывать обе константы в одной форме
-
Создание Формы Констант (дефолтно в Общих Формах) Конструктором
-
Конструктор Общих Форм
- ТИП Формы → [√] Форма Констант (определит ОСНОВНОЙ Реквизит Формы)
- Имя Формы →
ФормаКонстант
- Синоним → "Сведения об Организации"
- [√] Использовать стандартные команды
-
Реквизиты Формы
НазваниеОрганизации
АдресОрганизации
-
Готово → Коструктор Управляемой Формы
- Область Реквизитов: Данные, потенциально видимые
- Область Элементы & Командный интерфейс: видимые Данные & Команды
- Вид
- Путь к данным → Реквизиты
- Видимость
- ...
- Область просомотра
-
-
Приложение
- "+" Добавился п. Меню Сервис "Сведения об Организации"
-
Конфигуратор
- Группируем в одну группу оба Элемента
- "+" Группа БЕЗ отображения
- Группировка: "Вертикальная"
- Расположение: Ширина → 40
- Группируем в одну группу оба Элемента
-
-
Имитация первого запуска Системы:
- Если "Название Организации" НЕ Заполнено → Форма открывается
Модуль_Приложения.bsl
-
Необходимость создания Функции Серверного Общего Модуля
-
[√] Сервер
-
[√] Вызов сервера
-
-
убираем из интерфейса пункты: - "Адрес Организации" - "Название Организации"
- Сойства Константы
- Закладка "Представление"
- чек-бокс [ ] Испаользовать стандартные команды
- Сойства Константы
-
Конфигуратор
- Создание Документа "Продажи" с ТЧ "Список товаров"
- Спр. "Товары"
- доп. реквизит "Цена"
- Реквизиты ТЧ Документа
- Товар;
- Цена;
- Количество;
- Сумма.
- Спр. "Товары"
- Создание Документа "Продажи" с ТЧ "Список товаров"
-
Приложение / Конфигуратор:
- Список задач :
- Получение значений цены из Спр. "Товары"
- Пересчет Сумм по ТЧ
- Запрет НЕ Заполненных Значений для поля ТЧ "Товар"
- Реквизит ТЧ Закладка "Представление" (в Окне Св-в Док. "Продажи")
- проверка заполнения → выдавать ошибку
- аналогично целиком дляч ТЧ !!!
- Реквизит ТЧ Закладка "Представление" (в Окне Св-в Док. "Продажи")
- Список задач :
- прикладной Объект :
- сериализация прикладного Объекта в Данные Формы
- Сервер: Конструктор УФ → создание Формы по описанию
- Клиент: открытие Формы с Данными
- Два Состояния формы:
- проекция Формы (Сервер)
- Форма На Клиенте
- Десериализация Формы в прикладной Объект при записи в ИБ
- Пересчет Сумм по ТЧ
-
Создание Формы Док. "Продажи"
- Реквизиты дефолтные
-
Настройки отображения Формы:
- Настройки в приложении "Еще → Изменить Форму";
- Влияние ролей на отображение Реквизитов;
- Влияние Функциональных Опций.
-
Объект:
- Тип: (Объект.Документ.Продажи)
-
Элементы Формы:
- поле ТЧ "Цена", Закладка "События"
- Обработчик события При Изменении
&НаКлиенте
- Обработчик события При Изменении
- Отладка:
- При НЕ отображении на Форме данных (
Движения
) их В Объекте НЕТ!!! - эконоимия трафика - Элементы Формы:
Элементы.СписокТоваров.ТекущиеДанные
-Элементы.СписокТоваров.ТекущаяСтрока
→ ИДЕНТИФИКАТОР Строки !!!
- При НЕ отображении на Форме данных (
- поле ТЧ "Количество", Закладка "События"
- Обработчик события При Изменении
&НаКлиенте
- создаем Отдельный Обработчик
- Обработчик события При Изменении
- выносим расчет в Отдельную процедуру
- поле ТЧ "Цена", Закладка "События"
-
-
Получение значений цены из Спр. "Товары"
- Элементы Формы:
- поле ТЧ "Товар", Закладка "События"
- Контекст (ВСЕ Данные Формы) НЕ НУЖЕН →
&НаСервереБезКонтекста
- НО при этом необходимо передать Товар
- Контекст (ВСЕ Данные Формы) НЕ НУЖЕН →
- поле ТЧ "Товар", Закладка "События"
Документ_Продажи_МодульФормы.bsl - добавлен серверный вызов БЕЗ Контекста
- Элементы Формы:
-
Необходимость Контекстного Серверного Вызова
- Печать Формы:
- нужен Макет;
- все строки ТЧ все равно нужны.
- Изменение БОЛЬШЕЙ части (или ВСЕХ) Данных Формы:
- скидка по всем строкам ТЧ;
- получение Данных из ИБ (Цена Товара п.8):
- (считаем на сервере, а НЕ построчно обходим на форме)
- Печать Формы:
-
Реализация функционала предоставления скидки по нажатию кнопки на Форме Док."Продажи"
- "+" Команда Формы "Скидка"
- Действие Команды:
- Клиент → вызов проыедуры на Сервере
- Сервер → Обхоим ТЧ переопределяем Поле "Цена"
СтрокаТЧ.Цена = СтрокаТЧ.Цена * 0.9;
- Выносим Кнопку на Форму
- Тестим в Приложении
-
Сумма не пересчитывается:
-
со стороны Сервера НЕВОЗМОЖНО вызвать Клиентскую процедуру для Пересчета в текущем виде
-
Директива
&НаКлиентеНаСервереБезКонтекста
:- при Компиляции будет создано ДВЕ процедуры с ОДИНАКОВЫМ кодом:
&НаКлиенте
&НаСервереБезКонтекста
- можно вызвать со стороны Сервера
- при Компиляции будет создано ДВЕ процедуры с ОДИНАКОВЫМ кодом:
-
Ограничения:
- КОНТЕКСТ должен быть УНИВЕРСАЛЬНЫЙ:
- добавление (передача с Клиента) необходимых параметров(аргументов)
- КОНТЕКСТ должен быть УНИВЕРСАЛЬНЫЙ:
-
Передаем в процедуру Текущцую Строку ТЧ из ВСЕХ точек вызова
-
Вызываем в цикле обхода ТЧ после расчета Скидки
Документ_Продажи_МодульФормы.bsl - расчет скидки по кнопке на форме
-
-
Команды
- Команда Формы
- в свойствах Кнопки указано Имя Команды → соотв. Действие
- Команда Формы
-
Общие Команды
-
ранее созданная Форма Констант: снимаем Признак использования стандартных Команд
- Группа Команд: → упорядочивание Интерфейса
-
создаем Общую Команду "Настройка Сведений"
- Группа Команд → "Сервис"
- Модуль команды initial commit
-
Подставляем название Формы, вызываем Команду в Приложении:
-
-
Параметризуемые Команды
- Необходимость: создадим Команду печати для:
- пакетной печати докуметов "Продажи"
- возможности вызова НЕ из Формы Документа
- будет Отображаться ВЕЗДЕ, где её ПАРАМЕТР будет отображаться
- Создание команды Печать НЕ используя Конструктор Печати
- Окно Св-в Объекта Док."Продажи", закладака "Команды"
- Имя: Печать
- Группа: Командная панель формы.Важное
- Тип Параметра Команды: ДокументСсылка.Продажи
- ВЕЗДЕ,где будет присутствовать такой ТИП → будет доступна эта команда
- Режим использования параметра: Множественный (будет доступна пакетная печать)
- чек-бокс [ ] Изменяет данные (признак модифицированности Объекта)
- Окно Св-в Объекта Док."Продажи", закладака "Команды"
- Необходимость: создадим Команду печати для:
-
Приложение
- в Формах Списка и Документа "Продажи" появилась кнопка "Печать"
-
Формирование Печатной Формы
- Получаем Макет
- Серверная процедура
ПечатьНасервере
Модуля Команды - создаем простой Макет
- Дата Документа
- № Документа
- Серверная процедура
- С Клиента Передаем в
ПечатьНасервере
- ТабДок
- ПараметрКоманды → Массив Ссылок на Документы
- Обходим в Цикле Массив:
- заполняем Параметры Область
- выводим область
- возвращаемся на Клиент
- Показываем ТабДок
- Получаем Макет
- Конструктор Печати
- Закладка "Макеты"
- Создание НОВОЙ Команды (Печати) →
Печать2
- Выбор Реквизитов Док. "Продажи
- Дата
- Номер
- Выбор Реквизитов ТЧ
- ВСЕ
- Подвал Документа → нет реквизитов
- Группа Команды: Командная панель формы.Важное
- чек боксы
- Печатать БЕЗ предв. просмотра
- [√] Таблица "только просомтр"
- [√] Защита таблицы
- чек боксы
- ОК
- Создание НОВОЙ Команды (Печати) →
- Созданы
- Макет ПФ Док. "Продажи" →
Макет2
- Команда "Печать 2"
- свойства Команды (Настройки) - аналогичны ранее созданной
- Модуль Команды:
- Настройки отображения ПФ Документа:
- сетка;
- защита;
- просмотр
- вызов Экспортной процедуры
Печать2(ТабДок, Ссылка)
из Модуля Менеджера Док. "Продажи" - возвращаемся на Клиент;
- Показываем ТабДок.
- Настройки отображения ПФ Документа:
- Макет ПФ Док. "Продажи" →
- Закладка "Макеты"
- Модуль Менеджера Документа позволяет
- увеличить кол-во Методов Класса Документа;
- структурировать Методы Класса Документа:
- Работа с Представлениями;
- Работа с Формой;
- получение Даных Выбора.
- переопределять вышеуказанные Методы (Процедуры)
- Добавляем два Спр. :
- "Контрагенты"
- "Договоры" → подчинены Спр. "Контрагенты"
- по сути это Параметр, значением которого будет являться
Контрагнет
- при этом в Системе появляется Глобальная Параметризуемая Команда
- по сути это Параметр, значением которого будет являться
- Добавляем в Док. "Продажи" новые реквизиты
- Выносим на Форму Документа
- В Глобальных Командах Формы добавилась Параметризуемая Команда
Договоры (Объект.Контрагент)
- дает возможность открыть Форму Спр. "Договоры" с Отбором по Контрагенту
- выносим Команду на форму
- В Приложении:
- Вводим НСИ;
- на форме Элемента Спр. "Контрагенты" появилась г/ссылка "Договоры"
- моделируем ситуацию:
- Контрагент введен, вызываем Команду "Договоры"
- открывается форма списка Спр."Договоры" с Отбором по Контрагенту
- таким образом везде, где будет доступпен Контрагент, будет Команда "Договоры"с параметром (Контрагент)
- аналогичная ситуация будет с Регистрами: Отбор по Регистратору (надо выносить ее явно на форму !!!)
- Вводим НСИ;
- Удаляем Кнопку с Формы
- форма списка Спр."Договоры" открывается теперь БЕЗ Параметра (Отбора)
- реализуем отбор через Параметры Выбора
- форма НЕ нужна, Св-во Реквзита "Договор"
- Закладка "Представление"
- Связи Параметров Выбора: →
- Отбор.Владелец = Контрагент
- Режим Изменения Связанного Значения → Очищать
- Связи Параметров Выбора: →
- Использование Команд в Командном Интерфейсе Формы
- В Форму в Командный Интерфейс в Группу "Перейти" добаляем Команду
Договоры (Объект.Контрагент)
из Глобальных- устанавливаем [√] Видимость
- В Форму в Командный Интерфейс в Группу "Перейти" добаляем Команду
- для учета остатков создаем Регистр Накопления
- Остатки Товаров
- Измерения:
- Товар [√] запрет НЕ заполненых
- Ресурс:
- Количество
- Регистраторы
- Док. "Продажи " → движения в "-"
- Док. "Покупка" → движения в "+" (создаем копированием Док."Продажи" )
- Измерения:
- Остатки Товаров
- Док. "Покупка" → создаем копированием Док."Продажи"
- Форму Документа УДАЛЯЕМ в Окне Св-в Объекта (для чистоты эксперимента)
- Конструктором Джвежиений Форомируем Движения в "+" по РН "Остатки Товаров"
- Создаем Отчет "Остатки"
- СКД Запрос
- Одна группировка: детальные записи
- Постановка:
- при создания Док. "Продажи " небходимо:
- дать возможность Пользователю видеть остатки в Форме выбора Спр. "Товары"
- при создания Док. "Продажи " небходимо:
- Реализация:
- Спр. "Товры" добавяляем НЕ ОСНОВНУЮ Форму Выбора Справочника
ФормаВыбораСОстатком
- Назначить Фору основной
- Элементы Формы
- [√] Наименование
- [√] Код
- [√] Цена
- Конструктор Формы
- Добавляем Поле "Остаток"
- Тип Данных Реквизита Формы "Список":
- почти СКД (кроме Сортировок & Итогов)
- Св-ва Объекта
- [√] ← чек-бокс Произвольный запрос ↓↓↓
- Настройки списка:
- Основная Таблица: определяет Вид & Команды Формы
- [√] Динамическое Считываание Данных (по мере скролла)
- [√] Автозаполнение доступных Полей (СКД)
- Конструктор Запроса
Форма_Выбора_С_Остатком_СКД_Запрос
- Основная Таблица: Спр. "Товары"
- Тип Данных Реквизита Формы "Список":
- в составе реквизитов появилось Поле
КоличествоОстаток
- выносим на Форму в последнюю колонку
- Закладка "Расположение"
- ширина 6 символов
- Закладка "Расположение"
- выносим на Форму в последнюю колонку
- Добавляем Поле "Остаток"
- Спр. "Товры" добавяляем НЕ ОСНОВНУЮ Форму Выбора Справочника
- Привязываем Форму к Док. "Продажи" к реквизиту "Товар"
- Закладка "Представление"
- Форма Выбора :
ФормаВыбораСОстатком
- Форма, которая открывается по команде "Показать все"
- Форма Выбора :
- ИЗ форм Выбора (Списка) НЕ стоит делать ОТЧЕТ ! ! !
- Форма "ловит" события измененния Объектов (только по кнопке "Обновить")
- если будет много соединений таблиц → НЕ оптимальная работа системы
- Закладка "Представление"
- Добавляем в систему Спр. "Склады"
- в РН "Остатки Товаров" добавляем Измерение
- добавляе реквизит в Документы
- "Покупка";
- "Продажи"
- необходимо добавить реквизит на Форму Документа
- Постановка
- необходимо, чтобы при выборе Товара Пользователь видел остатки ТОЛЬКО по Складу, выбранному в Шапке Документа:
- т.е. передать Значение
Склад
в открываемую Форму (Форма Выбора с Остатками Спр. "Товары") - Реквизит "Товар" ТЧ "Список Товаров" :
- Св-во "Связи Параметров Выбора" =
Склад(Склад)
:- Имя : Склад → как передадим - можно изменить
- Реквизит : Склад → как поймаепт Форма при открытии
- Режим изменения связанного значения → Очищать
- Св-во "Связи Параметров Выбора" =
- Настройки Формы Выбора с Отстатками (Динамичский список)
- необходимо в Запрос добавить Парметр
Склад = &Склад
- "слетела" основная таблица, возвращаем Значение: Спр. "Товары"
- необходимо в Запрос добавить Парметр
- т.е. передать Значение
- необходимо, чтобы при выборе Товара Пользователь видел остатки ТОЛЬКО по Складу, выбранному в Шапке Документа:
- Форма Выбора с Остатками Спр. "Товары"
ПриСозданииНаСервере
- Устанавливаем переданное Значение Параметра (СКД
Склад
) из РеквизитаСклад
Док. "Продажи"
- Устанавливаем переданное Значение Параметра (СКД
- для отладки Создаем Процедуру
ПриОткрытии
- Смотрим в Приложении поведение
- Параметры : →
ДанныеФормыСтруктура
:- → Сервер много парметров
- → Клиент : Событие
ПриОткрытии
: - остались ТОЛЬКО ключевые:
КлючНазначенияИспользования "" Строка
РежимВыбора Истина Булево
- Параметры : →
- Генерим недостающие НСИ
- Корректируем Отчет с учетом поля Склад
- программное откртытие Формы
- Док. "Продажи":
- создаем Команду "Подбор"
- выносим на форму
- Действие Команды
- Клиент:
- описываем Параметры открытия Формы :
ПараметрыОткрытияФормы.Вставить("Склад", Объект.Склад)
- открываем Форму
- описываем Параметры открытия Формы :
- создаем Команду "Подбор"
- Док. "Продажи":
- Данный механизм можно использовать вместо команды "Показать все"
- Постановка:
- реализовать Форму подбора в ТЧ Док. "Продажи" (в т.ч. с возможностью перетаскивания)
- ДВЕ Таблицы на Форме Подбора :
- Копия ТЧ Док. "Продажи" (необходиммо с Клиента на Клиент передатьТЧ)
- Таблица остатков с Отбором по Складу
- Временное Хранилице и приемы работы с ним
- Реализация:
- Добавлям на Форму
ФормаВыбораСОстатком
Реквизит с типом ТЗ: "Выбранные Товары"- т.к. Клиент , тип данных
(ТаблицаЗначений)
→ проекция ТЗ на форму - добавляем колонки Реквизитов
Товар
→ Спр. "Товары"Количество
→ Число
- т.к. Клиент , тип данных
- выносим на Форму НИЖЕ Списка Товаров
- изменяем высоту о Обеих таблиц (5 строк -?)
- События
- Добавлям на Форму
- Приложение
- тестим ТОЛЬКО перенос между таблицами Формы Подбора
- Передать при закрытии Формы Подбора все, что выбрали
- Реквизиты
- Товар;
- Количество.
- Реквизиты
- При Закрытии Формы
- на Формах "Выбора с Остатком" & Док."Продажи" данные не ВСЕ
- В форме Док."Продажи" при открытии Формы Подбора
- третьим параметром укажем ВЛАДЕЛЬЦА
ЭтаФорма
- третьим параметром укажем ВЛАДЕЛЬЦА
ОткрытьФорму("Справочник.Товары.Форма.ФормаВыбораСОстатком",ПараметрыОткрытияФормы, ЭтаФорма);
- Создаем Команду
ЗавершитьПодбор
- выносим на Форму выбора
- действие Команды
Процедура ЗавершитьПодбор(Команда)
- вызываем Экспортную процедуру
ОбработатьПодбор()
Формы Док."Продажи"
- действие Команды
- Это даст возможность из Формы Выбора "попасть" в Форму Док."Продажи"
- выносим на Форму выбора
- далее необходимо:
- таблицу с выбранными товарами нужно временно сохранить
- Временное Хранилище
- ВСЕГДА Сервер (реальная таблица ИБ)
- Время жизни :
- пока существует форма
- пока существует сеанс
- до первого К-С вызова (нужно указать параметры)
- Создаем Функцию
- пишем во Временное Хранилище выбранные товары
- вернем Адрес во Временном Хранилище
- на стороне Сервера (С Контекстом)
- необхоимо синхронизировать Данные Формы с Серверм (гарантировано)
- Закрываем Форму Подбора
- получаем из Временного Хранилища ТЗ
- Грузим ТЗ в ТЧ Владельца (Док."Продажи")
- Временное Хранилище
- при повторном открытии → данные ТЧ обновяться !!!
- таблицу с выбранными товарами нужно временно сохранить
- по сути :
- формы меняются данными на стороне Сервера
- Клиент
- выбираем Товары
- Сервер
- сохраняем во Временное Хранилище (Форма подбора)
- получаем из Временного Хранилища (Форма Документа)
- Клиент
- показываем выбранные
- Клиент
- формы меняются данными на стороне Сервера
-
Постановка:
- Загрузка картинки в Справочник
- Диалог Открытия & Сохранения Файла
- работа с Временным Хранилищем
- до момента загрузки картинки в Элемент Справочника его необходимо хранить
-
Реализация
- создание реквизита в Спр. "Товары"
ДанныеКартинки
- релизация спорная, можно хранить в:
- РС,
- подчиненном Спр.
- Тип Данных:
ХранилищеЗначения
- релизация спорная, можно хранить в:
- создаем Форму Элемента Спр."Товары"
- дефолтная
- ДанныеКартинки → НЕ доступен в данных формы
- для отображения Картинки создаем Новый Реквизит (Формы)
АдресКартинки
- Тип Данных:
Строка
- выносим на Форму
- Вид:
Поле Картинки
- Тип Данных:
- реализация Загрузки файла изображения (два варианта)
- Команды:
- ВыбратьФайл1
- ВыбратьФайл2
- выносим на Форму
- Команды:
- создание реквизита в Спр. "Товары"
-
Конфигурация
- Совместимость
- Режим использования Модальности : НЕ использовать (дефолтно)
- блокировка интерактивной работы до выбора в Модальном Окне
- в большинстве браузеров (моб. клиентов) модальные окна отключены
- необходимо:
- Открыть оконо Выбора файла, при этом НЕ открывать его МОДАЛЬНО
- Совместимость
-
Команда
ВыбратьФайл1
- Действие
- Клиент
- создаем Описание о завершении
ЭтотОбъект
- показываем на Форме
Если НЕ ОписаниеФайла.ПомещениеФайлаОтменено
АдресКартинки = ОписаниеФайла.Адрес;
- создаем Описание о завершении
- Клиент
- Действие
- Событие сохранения данных может отличаться
- как для Формы
- отдельное событие, далее включаемое в событие самого Объекта
- так и для Объекта
- событие самого Объекта (запись данных)
- как для Формы
- сейчас событие связано с Формой (
УникальныйИдентификатор
) - Выбираем событие
ПередЗаписьюНаСервере
:- еще не записали и Данные Формы нужны
- необходим признак модифицированности Формы
- привязать к Команде
- [] ← чек-бокс Изменяет сохраняемые данные
- после проверки :
Если НЕ ОписаниеФайла.ПомещениеФайлаОтменено
Модифицированность = Истина;
- привязать к Команде
- форму НЕ Закроем, НЕ выбрав, что делвать с изменениями !!!
- Второй Способ работы с НЕ Модальными окнами (появился с 8.3.18)
- реализуем Командой
ВыбратьФайл2
- выносим на Форму
- Группа
- Действие Команды
- Клиентская
- Обработчик загрузки данных на сервер, с диалогом выбора файла
- при успешном завершении выбора файла Картинки : в поле Формы передается Адрес (Картинки)
- реализуем Командой
- Предлагается дать возможность Пользователю отображать Складской Учет
- Реализация:
- создаем Костанту
УчетПоСкладам
- Тип
Булево
- добавляем в Форму
ФормаКонстант
- снимаем чек-бокс [ ] Использовать стандартные команды (Закладка "Представление")
- не отображается в Меню "Сервис"
- Тип
- создаем Функциональную Опцию:
УчетПоСкладам
- Хранилище:
Константа.УчетПоСкладам
- чек-бокс [√] Привелигированный режим пр получении
- т.е. даже если у Пользователя НЕТ Прав на чтение Значения Команды
- значение будет ПРОЧИТАНО
- Закладка "Состав":
- ТОЛЬКО Спр. "Склады"
- Хранилище:
- создаем Костанту
- Приложение:
- поскольку дефолтное знаение Константы при создании
Ложь
- → в интерфейсе отсутствуют Склады (ПОЛНОСТЬЮ)
- поскольку дефолтное знаение Константы при создании
- Обновление Интерфейса после установки значения Константы → Клиент Событие:
ПослеЗаписи
- Форма Констант Модуль Формы → ОЧЕНЬ ресурсоёмкий метод ! ! !
- Вариативность интерфейса
- доступность Команды "Скидка" в Док. "Продажи":
- по ДАТЕ продажи
- доступность Команды "Скидка" в Док. "Продажи":
- Реализация:
- создаем Периодический РС
СкидкуДавать
- Период : День
- Данные:
- Измерение:
Контрагент
→ Спр. Ссылка - Ресурс:
СкидкуДавать
→ Булево
- Измерение:
- Создаем Функциональную Опцию
СкидкуДавать
- Хранение:
РегистрСведений.СкидкуДавать.Ресурс.СкидкуДавать
- в составе недоступны Команды Формы
- Далее необходимы отборы:
- Дата → изначально стояла задача
- Контрагент → Измерение вообще НЕ охвачено
- Хранение:
- Параметры Функциональных Опций
- Имя:
Контрагент
- Использование:
РегистрСведений.СкидкуДавать.Измерение.Контрагент
- Имя:
- В Документе необходимо указать
- Связь КОМАНДЫ с Функциональной Опцией
- Интерактивно: Поле Функциональные опции
- чек-бокс [√]
СкидкуДавать
- чек-бокс [√]
- Интерактивно: Поле Функциональные опции
- Устанавливаем Параметры Опции (Модуль Формы)
- При Открытии формы
ПриСозданииНаСервере
- При Смене Контрагента
- Контрагент
ПриИзменениии
- Контрагент
- При Изменении Даты
-Дата
ПриИзменениии
- При Открытии формы
- Везде одинаковый код:
- Связь КОМАНДЫ с Функциональной Опцией
- создаем Периодический РС
ПараметрыСкидкуДавать = Новый Структура;
// предопределенный для ФО связанных с РС
ПараметрыСкидкуДавать.Вставить("Период",Объект.Дата);
ПараметрыСкидкуДавать.Вставить("Контрагент",Объект.Контрагент);
// рисуем / перерисовываем Форму
УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыСкидкуДавать);
-
Приложение
- Устанавливаем "параметры" Скдки
- Контрагент: "Мир"
- Дата : 1-е число текущего месяца
- создаем Док. "Продажи":
- В зависимости от Контрагента & Даты Документа, кнопка "Скидка" появляется / исчезает
- Устанавливаем "параметры" Скдки
-
Постановка
- НЕ по всем Контрагентам ведется Договорной Учет
- если Договорной Учет НЕ ведется: → Поле "Договор" в Форме НЕ показываем
- НЕ по всем Контрагентам ведется Договорной Учет
-
Реализация
- Спр. "Контрагенты"
- добавляем Реквизит:
УчетПоДоговорам
→ Булево
- добавляем Реквизит:
- Создаем Функциональную Опцию:
- Имя:
УчетПоДоговорам
- Хранилище:
Справочник.Контрагенты.Реквизит.УчетПоДоговорам
- Состав: Спр. "Договоры"
- Имя:
- Параметры Функциональных Опций
- Использование
- устанавливаем чек-бокс [√] Спр "Контрагенты"
- Использование
- Спр. "Контрагенты"
-
Приложение:
- Контрагент: "Свет" → Учет по Договорам ведется →
- Контрагент: "Мир" → Учет по Договорам НЕ ведется
- Создаем Док. "Продажи":
- Контрагент НЕ заполнен: Поля "Договор" НЕТ
- меняем "Контрагента" → "Свет"
- → Поле "Договор" есть / появляется
- → меняем "Контрагента" → "Мир"
- Функциональные Опциии
- Настройка ролей Пользователя
- Настройки Формы : "Еще" → "Изменить Форму"