mirror of
https://github.com/netology-code/1c-homeworks.git
synced 2025-01-29 17:53:01 +02:00
Update homework-4-1.md
This commit is contained in:
parent
5b103c2cf7
commit
848f5dde17
@ -3,13 +3,13 @@
|
||||
## Задача 1 "Контактная информация"
|
||||
|
||||
### Описание задачи
|
||||
Добавить в справочник "Контрагенты" табличную часть "Контактная информация" для хранения адресов, телефонов и т.п.
|
||||
Добавить в справочник "Контрагенты" табличную часть "Контактная информация" для хранения адресов, телефонов и т.п. в разрезе видов контактной информации, так, как это делается в реальных прикладных решениях, вместо хранения каждого вида контактной информации в отдельном реквизите, как мы это делали раньше. Заполнить предопределенные виды контактной информации недостающими данными и сделать обработчик переноса контактной информации из отдельных реквизитов в табличную часть - так, как это делается при обновлении в реальных прикладных решениях.
|
||||
|
||||
### Требования к результату
|
||||
|
||||
Конфигурация из диплома блока А, в которой:
|
||||
|
||||
* Присутствует справочник ВидыКонтактнойИнформации с пятью предопределенными элементами: ЮридическийАдресКонтрагента, ПочтовыйАдресКонтрагента, ФактическийАдресКонтрагента, ТелефонКонтрагента, EMailКонтрагента.
|
||||
* Присутствует справочник ВидыКонтактнойИнформации с пятью предопределенными элементами: ЮридическийАдресКонтрагента, ПочтовыйАдресКонтрагента, ФактическийАдресКонтрагента, ТелефонКонтрагента, EMailКонтрагента и реквизитом Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации).
|
||||
* В справочнике Контрагенты присутствует табличная часть КонтактнаяИнформация, данные которой выведены на форму контрагента таблицей (а прежние реквизиты, напротив, имеют префикс Удалить и скрыты).
|
||||
* Присутствует константа ВерсияКонфигурации, скрытая из командного интерфейса.
|
||||
* Присутствует код, при начале работы системы сравнивающий версию из метаданных и версию из константы, и:
|
||||
@ -22,17 +22,18 @@
|
||||
|
||||
* Создать константу ВерсияКонфигурации типа Строка, которая будет хранить текущую версию конфигурации. Скрыть ее из командного интерфейса, сняв флажок "Использовать стандартные команды".
|
||||
* Создать общий модуль ОбновлениеИнформационнойБазыВызовСервера с экспортной процедурой ПриНачалеРаботыСистемы, которая:
|
||||
* Проверит, совпадает ли версия конфигурации (Метаданные.Версия) со значением константы.
|
||||
* Проверит, совпадает ли версия конфигурации (Метаданные.Версия) со значением константы (Константы.ВерсияКонфигурации.Получить()).
|
||||
* При совпадении ничего не сделает.
|
||||
* При выявлении разницы вызовет ОбновлениеИнформационнойБазы.ПриИзмененииВерсии(СтараяВерсия, НоваяВерсия).
|
||||
* И установит значение константы равным новой версии из метаданных.
|
||||
* Таким образом, при обновлении информационной базы старой версии на конфигурацию новой версии будут выполнены обработчики обновления, необходимые новой версии.
|
||||
|
||||
#### Виды контактной информации
|
||||
|
||||
* Создать перечисление ТипыКонтактнойИнформации со значениями: Адрес, Телефон, EMail.
|
||||
* Создать справочник ВидыКонтактнойИнформации с реквизитом Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации), включив его в роль БазовыеПрава на просмотр и чтение.
|
||||
* Создать справочник ВидыКонтактнойИнформации с реквизитом Тип (ПеречислениеСсылка.ТипыКонтактнойИнформации), включив его в роль БазовыеПрава на просмотр и чтение. Справочник будет расширяемым для пользователей, а значение реквизита Тип позволит программе понять, как работать с этим видом КИ.
|
||||
* Создать предопределенные виды контактной информации: ЮридическийАдресКонтрагента, ПочтовыйАдресКонтрагента, ФактическийАдресКонтрагента, ТелефонКонтрагента, EMailКонтрагента.
|
||||
* В модуле менеджера справочника создать экспортную процедуру ЗаполнитьПредопределенныеЭлементы(), которая заполнит тип у всех предопределенных элементов этого справочника.
|
||||
* В модуле менеджера справочника создать экспортную процедуру ЗаполнитьПредопределенныеЭлементы(), которая заполнит тип у всех предопределенных элементов этого справочника (в Конфигураторе можно задать только код и наименование предопределенных элементов, но не другие реквизиты).
|
||||
* Установить версию конфигурации в метаданных на произвольное значение (напримере, 1.0.0.1).
|
||||
* В процедуре ОбновлениеИнформационнойБазы.ПриИзмененииВерсии:
|
||||
* Проверить, не находится ли версия 1.0.0.1 между значениями параметров СтараяВерсия и НоваяВерсия, включая границы (если старая версия пуста - значит, она меньше любой текущей).
|
||||
@ -44,12 +45,12 @@
|
||||
* Нужно использовать справочник Контрагенты из диплома блока А.
|
||||
* Стандартному реквизиту Наименование дать синоним "Краткое наименование".
|
||||
* Добавить табличную часть КонтактнаяИнформация с реквизитами Вид (СправочникСсылка.ВидыКонтактнойИнформации) и Значение (Строка).
|
||||
* Прежним реквизитам, отвечавшим за контактную информацию, нужно дать префикс Удалить (УдалитьЮридическийАдресКонтрагента и т.д.) и скрыть их из форм.
|
||||
* Прежним реквизитам, отвечавшим за контактную информацию, нужно дать префикс Удалить (УдалитьЮридическийАдресКонтрагента и т.д.) и скрыть их из форм. Совсем удалять их нельзя, чтобы можно было перенести старые данные.
|
||||
* Добавить в форму контрагента (лучше на отдельную закладку) новую табличную часть.
|
||||
* В модуле менеджера справочника создать экспортную процедуру ЗаполнитьТабличнуюЧастьКонтактнаяИнформация(), которая:
|
||||
* Откроет выборку всех элементов справочника.
|
||||
* Откроет выборку всех элементов справочника (Справочники.Контрагенты.Выбрать()).
|
||||
* Для каждого элемента очистит ТЧ КонтактнаяИнформация и заполнит ее значениями старых реквизитов (с префиксом Удалить).
|
||||
* Запишет каждый элемент.
|
||||
* В процедуре ОбновлениеИнформационнойБазы.ПриИзмененииВерсии при обновлении на версию 1.0.0.2 вызвать процедуру ЗаполнитьТабличнуюЧастьКонтактнаяИнформация().
|
||||
* Взвести версию в метаданных на 1.0.0.2.
|
||||
* Запустить программу и удостовериться, что ранее введенная контактная информация не утеряна и доступна теперь уже через новую табличную часть.
|
||||
* Запустить программу и удостовериться, что ранее введенная контактная информация не утеряна и доступна теперь уже через новую табличную часть, как в реальных прикладных решениях.
|
||||
|
Loading…
x
Reference in New Issue
Block a user