Решения выполнены на "каркасной конфигурации" https://1c.ru/spec/questions.htm.
Тексты задач в архиве отсутствуют.
Краткое описание решений.
Описания очень краткие, скорее - пояснения к базам.
Во всех задачах добавлена Подсистема УправляемыеФормы. В задачах, для которых нужны тестовые данные добавлен Документ.Операция.
Задача 5.1
Документ.РасходнаяНакладная добавлены
- движения по РегистрНакопления.ОстаткиНоменклатуры,
- основная форма объекта и списка.
Документ.РасходнаяНакладная.ФормаДокумента в командном интерфейсе включена видимость движений по регистру "Остатки номенклатуры".
Документ.РасходнаяНакладная.ФормаСписка в командную панель добавлена команда "Остатки номенклатуры" (Глобальные команды - Элементы - Список - перетащить).
Задача 5.2
Достаточно объёмная.
Добавлена Константа.ПутьКТомуНаСервере - Строка(0)
Справочник.ФизическиеЛица переименован в Сотрудники; добавлены реквизиты ИмяФайлаИсходное, ИмяФайлаВТоме - Строка(0), Фотография - ХранилищеЗначения; добавлена Основная форма объекта.
Справочник.Сотрудники.ФормаЭлемента добавлены реквизиты АдресФотографии - Строка(0), ТипХраненияФайла - Строка(5); добавлена команда ЗагрузитьФотографию.
Чтобы в элементе АдресФотографии было изображение в свойствах установлено Вид = Поле картинки, для срабатывания нажатия Гиперссылка = Истина, чтобы не растягивалось на всю форму РастягиватьПоГоризонтали, РастягиватьПоВертикали = Ложь.
Добавлен обработчик нажатия на кнопку ЗагрузитьФотографию(), и обработчик нажатия на поле картинки АдресФотографииНажатие(). Используется метод НачатьПомещениеФайлаНаСервер(), доступный начиная с версии 8.3.15, рекомендуемый вместо НачатьПомещениеФайла().
Добавлен обработчик ПередЗаписьюНаСервере(). Запись загруженного файла фотографии в реквизит справочника или в файл в зависимости от ТипХраненияФайла. Работать будет как в файловом, так и в клиент-серверном варианте.
Добавлен обработчик ПриСозданииНаСервере().
Задача 5.3
Чтобы ввести тестовые данные настроены виды субконто, план счетов, добавлен регистр бухгалтерии. Если задача в рамках билета, то все эти действия уже будут сделаны при решении задачи по бухгалтерскому учету.
Справочник.Контрагенты добавлена Основная форма объекта (только потому, что это требуется по условию задачи), добавлена Команда ДвиженияБУ (для отображения движений этого достаточно).
Задача 5.4
Добавлены Справочники Склады, ТипыЦен; РегистрСведений.ЦеныНоменклатуры, Измерения ТипЦен, Номенклатура, Непериодический т.к. в условиях задачи нет упоминания о том, что цены должны быть периодическими.
РегистрНакопления.ОстаткиНоменклатуры добавлено Измерение Склад (перед Номенклатурой, так запрос ДинамическогоСписка будет эффективнее).
Документ.РасходнаяНакладная добавлены реквизиты Склад, ТипЦен, добавлена Основная форма объекта.
В ФормеДокумента для поля Номенклатура определены СвязиПараметровВыбора (Склад, ТипЦен) и добавлен обработчик ОбработкаВыбора().
Справочник.Номенклатура добавлена неосновная форма выбора. В форме добавлен ДинамическийСписок с произвольным запросом (Номенклатура, Цены, Остатки) основная таблица - Справочник.Номенклатура. В запросе остатки без указания Периода т.к. по условиям нужен "текущий остаток". Добавлен обработчик ПриСозданииНаСервере() - заполнение параметров ДинамическогоСписка. Для таблицы ДинамическогоСписка добавлен обработчик ВыборЗначения() - оповещение элемента-владельца о выборе.
Задача 5.5
Добавлены Справочник.Склады, добавлен предопределенный элемент ОтделЗакупок.
РегистрНакопления.ОстаткиНоменклатуры добавлено измерение Склад (перед Номенклатурой).
Документ.РасходнаяНакладная добавлен реквизит Склад, добавлена Основная форма объекта.
В ФормеДокумента добавлена команда Подбор, добавлен обработчик ОбработкаВыбора() - перенос данных, полученных из формы подбора, в табличную часть.
Справочник.Номенклатура добавлена неосновная форма выбора - ФормаПодбора.
В ФормеПодбора ДинамическийСписок переменован в СписокТоваров, для него сделан произвольный запрос (Номенклатура - Остатки в Отделе закупок - Остатки в текущем отделе) основная таблица - Справочник.Номенклатура. В запросе остатки без указания Периода т.к. в условии не конкретизировано, на какой момент должен отображаться остаток, по умолчанию предполагается текущий остаток. Параметр Склад устанавливается ПриСозданииНаСервере(). У элемента СписокТоваров отключен РежимВыбора. Добавлен реквизит ОтобранныеТовары - ТаблицаЗначений. Добавлены обработчики Выбора и Перетаскивания. Добавлена команда ПеренестиВДокумент - помещение отобранных товаров во временное хранилище.
Может быть вариант задачи без остатков в форме подбора, тогда Склады не нужны и в СпискеТоваров - просто Номенклатура.
Задача 5.6
Добавлены Роль ПолныеПрава, пара пользователей с именами из справочника ФизическиеЛица, ПараметрСеанса ТекущийПользователь, МодульСеанса.УстановкаПараметровСеанса(), Документ ПриходДенег.
Документы ПриходДенег, РасходнаяНакладная добавлены реквизит ОтветственныйСтаршийМенеджер, основные формы объекта.
Добавлены РегистрСведений.ПраваПользователей (периодичность День, Измерение Пользователь, Ресурс ДоступКОтветственныйСтаршийМенеджер), ФункциональнаяОпция.ДоступКОтветственныйСтаршийМенеджер (хранение РегистрСведений.ПраваПользователей.Ресурс.ДоступКОтветственныйСтаршийМенеджер, состав ПриходДенег, РасходнаяНакладная реквизит ОтветственныйСтаршийМенеджер), ПараметрФункциональныхОпций.Пользователь (использование РегистрСведений.ПраваПользователей.Измерение.Пользователь), ОбщийМодуль.УправляемыеФормыСервер.УстановитьПараметрыФункциональныхОпций().
В основных формах документов ПриходДенег, РасходнаяНакладная добавлены обработчики ПриОткрытии() - чтобы у нового документа уже была заполнена дата, ДатаПриИзменении().
Задача 5.7
Добавлен РегистрРасчета.ОсновныеНачисления с Регистратором Документ.НачислениеЗарплаты (можно добавить ещё регистры).
Документ.НачислениеЗарплаты добавлена Основная форма списка.
В ФормеСписка добавлен ДинамическийСписок с основной таблицей РегистрРасчета.ОсновныеНачисления (ДинамическиеСписки добавляются по количеству регистров). Список документов размещён слева, ДинамическиеСписки регистров - справа. Добавлен обработчик СписокПриАктивизацииСтроки() - установка отбора по текущему документу-регистратору.
Сервис - Параметры - Управляемое приложение и обычное приложение, Толстый клиент (управляемое приложение)
Свойства конфигурации - Использовать обычные формы в управляемом приложении
Документ.НачислениеЗарплаты Добавлена Дополнительная форма объекта - обычная.
Чтобы ввести тестовые данные нужно добавить ОбработкуПроведения() Документа.НачислениеЗарплаты.
Задача 5.8
Это делает сама платформа, никаких дополнительных действий не требуется.
Задача 5.9
Справочник.Номенклатура добавлена Основная форма списка.
Свойства формы "Справочная информация" - Открыть - на второй строке набрать "Справочники" - выделить набранное слово - Элементы - Ссылка... - Адрес... - "1С:Предприятие" - Работа пользователя/Работа с объектами конфигурации/Справочники - полученный адрес удобно сразу скопировать - в пустой первой строке ввести пробел, установить стиль "Заголовок 1" (это позволит скрыть слова "Форма списка" в справке по F1).
В ФормеСписка добавлена команда СправкаСправочники - ОткрытьСправку(скопированная ссылка).
По кнопке сразу откроется нужный раздел, по F1 придётся нажать ещё гиперссылку.
Задача 5.10
Добавлен Документ.ПриходДенег
Документ.ПриходнаяНакладная добавлен Реквизит Пояснение, добавлена Основная форма объекта. В ФормеДокумента для поля Пояснение включена КнопкаОткрытия, добавлен обработчик ПояснениеОткрытие() - поиск подстроки с навигационной ссылкой и переход по ней.
Задача 5.11
Документ.РасходнаяНакладная добавлена Основная форма объекта. В ФормеДокумента добавлена команда Подбор - открытие ФормыСписка Номенклатуры, для табличной части добавлен обработчик Перетаскивание() - добавление в табличную часть перетаскиваемых позиций.
Для перетаскаивания нужно выбранную позицию поместить над ярлыком открытого окна документа, после отображения окна документа отпустить над табличной частью (это неудобно), либо объединить окно формы подбора с окном документа, либо одно из окон Закрепить. Программно Объединить или Закрепить не удалось (вообще можно с WScript). Можно добавить рекомендацию пользователю - в режиме Предприятие Объединить или Закрепить.
Если есть другой вариант, прошу откомментировать.
Задача 5.12
Документ.РасходнаяНакладная.ТабличнаяЧасть.СписокНоменклатуры добавлен реквизит СрокГодности - Дата.
РегистрНакопления.ОстаткиНоменклатуры добавлено измерение СрокГодности - Дата.
РегистрНакопления.ОстаткиНоменклатуры добавлена неосновная ФормаОстаткиПоСрокамГодности, в ней добавлен основной реквизит ОстаткиПоСрокамГодности - ДинамическийСписок Основная таблица - РегистрНакопления.ОстаткиНоменклатуры.Остатки, в таблице ДинамическогоСписка отключена КоманднаяПанель, отображены СрокГодности, КоличествоОстаток, определён обработчик Выбор().
Документ.РасходнаяНакладная добавлена Основная форма объекта. В ФормеДокумента создана клиентская переменная модуля формы ВыбраннаяНоменклатура (нужна для передачи Номенклатуры между обработчиками событий формы), для поля СрокГодности таблицы СписокНоменклатуры установлен режим ТолькоПросмотр, для поля Номенклатура таблицы СписокНоменклатуры определён обработчик ОбработкаВыбора() - установка отбора по Номенклатуре и открытие формы Остатков, для таблицы СписокНоменклатуры определён обработчик ОбработкаВыбора() - заполнение строки ТабличнойЧасти.
Задача 5.13
Документ.РасходнаяНакладная.ТабличнаяЧасть.СписокНоменклатуры добавлен реквизит СрокГодности - Дата.
РегистрНакопления.ОстаткиНоменклатуры добавлено измерение СрокГодности - Дата.
РегистрНакопления.ОстаткиНоменклатуры добавлена неосновная ФормаОстаткиПоСрокамГодности, в ней добавлен основной реквизит ОстаткиПоСрокамГодности - ДинамическийСписок Основная таблица - РегистрНакопления.ОстаткиНоменклатуры.Остатки, в таблице ДинамическогоСписка отключена КоманднаяПанель, отображены СрокГодности, КоличествоОстаток, определён обработчик Выбор().
Документ.РасходнаяНакладная добавлена Основная форма объекта. В ФормеДокумента для поля СрокГодности таблицы СписокНоменклатуры отключено РедактированиеТекста, определён обработчик НачалоВыбора() - необязательная проверка заполнения поля Номенклатура с выводом СоощениеПользователю если не заполнена, установка отбора по Номенклатуре и открытие формы Остатков; для таблицы СписокНоменклатуры определён обработчик ОбработкаВыбора() - заполнение строки ТабличнойЧасти; необязательные изменения: для поля Номенклатура определён обработчик НачалоВыбора() - очистка данных текущей строки.
Задача 5.14
Добавлен Справочник ДоговорыКонтрагентов, необязательно: Владелец - Контрагенты.
Добавлен Документ.ПриходДенег.
Добавлен РегистрНакопления.ВзаиморасчетыПоДоговорам с Регистратором Документ.ПриходДенег.
Документ.ПриходДенег добавлена ОбработкаПроведения() - проверка остатков взаиморасчетов, формирование сообщений.
По сути задачи необязательно, но для отображения сообщений к полю следует учесть особенности релиза платформы: начиная с 8.3.16 сообщения к полю не выводятся если в ОбработкеПроведения Отказ = Истина. Добавлена проверка релиза платформы, для 8.3.16 и выше в ОбработкеПроведения Отказ не устанавливается, добавлена Основная форма объекта, в форме определены обработчики ПередЗаписьюНаСервере(), ПриЗаписиНаСервере() - при наличии сообщений устанавливается Отказ, тогда сообщения к полю будут выведены и для 8.3.16 и выше.
Задача 5.15
Добавлены Роли, Пользователь, ПараметрСеанса, обработчик УстановкаПараметровСеанса(), Справочник.Должности (с предопределенным элементом), предопределенный элемент ОсновнойСклад в Справочник.Подразделения, измерения в РегистрАдресации, Задача (с изменением Представление списка), Бизнес-процесс.
Заполнена карта Бизнес-процесса.
БизнесПроцесс.ПродажаТоваров добавлена Основная форма бизнес-процесса, в форме отображена карта, добавлен обработчик обновления карты (с попыткой для перехвата ошибки обновления в случае завершения Бизнес-процесса), добавлен обработчик ОбработкаОповещения() - обновление карты если задача выполнена, добавлен ДинамическийСписок ПодчиненныеЗадачи, добавлены обработчики ПриСозданииНаСервере() и ПослеЗаписиНаСервере() - установка отбора ДинамическогоСписка по Бизнес-процессу.
Задача.Задача1 добавлена Основная форма задачи, в форме добавлен обработчик ПослеЗаписи() - вызов Оповестить() в качестве параметра - ссылка на Бизнесс-процесс, ИмяСобытия необязательно указывать и проверять т.к. здесь оно единственное.
Справочник.ФизическогоЛица.Предопределенные.Петров изменено Наименование.
Задача 5.16
В условиях задачи не уточнено являются ли значения дополнительных сведений едиными для всех менеджеров или для каждого менеджера своё значение. Исходя из логики, значения одного и того же дополнительного сведения связаны с Контрагентом, а не с менеджером, поэтому значения будут независимы от менеджера.
Добавлены Справочник.ЗначенияСвойств, РегистрСведений.ЗначенияСвойствКонтрагентов - Измерения Контрагент, Свойство (ПланВидовХарактеристик.СвойстваОбъектов), Ресурс.Значение (Характеристика.СвойстваОбъектов).
ПланВидовХарактеристик.СвойстваОбъектов заполнены Тип значения характеристик - (Булево, Дата, Число, Справочники Валюты, ЗначенияСвойств), Дополнительные значения характеристик - Справочник.ЗначенияСвойств.
Справочник.ФизическиеЛица переименован в Сотрудники, добавлена ТабличнаяЧасть.ДополнительныйРеквизитКонтрагента Реквизит.ДополнительныйРеквизитКонтрагента - ПланВидовХарактеристик.СвойстваОбъектов, добавлена Основная форма объекта в КоманднойПанели отключена видимость СведенияОСотрудниках, изменено наименование предопределенного элемента Иванов И.И.
Справочник.Контрагенты добавлен Реквизит.Менеджер - Справочник.Сотрудники, добавлена Основная форма объекта, в форме добавлена процедура ОбновитьРеквизиты() - отображение реквизитов и заполнение их значений в зависимости от Менеджера, добавлены обработчики ПриСозданииНаСервере(), МенеджерПриИзменении() - вызов ОбновитьРеквизиты(), ПриЗаписиНаСервере() - запись значений реквизитов формы в базу (значения скрытых свойств не изменяются). Для выделения реквизитов, добавленных программно, используется префикс "ДополнительныйРеквизит_". Необязательные изменения: заполнены Дополнительные характеристики объекта метаданных - позволяет использовать характеристики в группировках, отборах.
Задача 5.17
Добавлено Перечисление.ПолФизическогоЛица
Справочник.ФизическиеЛица длина Наименования увеличена до 150, добавлены реквизиты Фамилия, Имя, Отчество, ДатаРождения, Пол, ИНН, СтраховойНомерПФР, добавлена ТабличнаяЧасть.Образование - реквизиты УчебноеЗаведение, ДатаПриема, ДатаОкончания, Примечание, добавлена Основная форма объекта, на форме добавлен реквизит НачислениеЗарплаты - ДинамическийСписок (Документ.НачислениеЗарплаты), добавлен обработчик ПриСозданииНаСервере() - установка Отбора ДинамическогоСписка, размещены элементы на форме (Наименование - АвтоМаксимальнаяШирина = Ложь, ГруппаЛичныеДанные - Поведение = Свертываемая, Свернута = Истина, заполнен ЗаголовокСвернутогоОтображения, таблица НачислениеЗарплаты - ТолькоПросмотр = Истина), таблица Образование.КоманднаяПанель перетаскиванием добавлены команды ПереместитьВверх, ПеремеситьВниз для них установлено ПоложениеВКоманднойПанели = В дополнительном подменю, таблица НачислениеЗарплаты ПоложениеСтрокиПоиска = Нет, ПоложениеУправленияПоиском = Нет, КоманднаяПанель перетаскиванием добавлена команда Скопировать для неё установлено ПоложениеВКоманднойПанели = В дополнительном подменю.
Комментарии приветствуются.
Ограничение ответственности.
Материалы этой публикации предоставляются "как есть". Вы можете пользоваться ими, вносить изменения.
Автор не гарантирует, что результаты использования будут соответствовать Вашим ожиданиям.
Ответственности за прямой или косвенный ущерб, за возможные недостатки предоставленных материалов, а также за результаты их использования автор не несет.
Вы используете материалы этой публикации (включая приложенные файлы) на свой риск и под свою ответственность.