- Научиться правильно вносить корректировки в конфигурации 1С, стоящие на поддержке поставщика.
- Научиться вносить изменения в конфигурацию, находящуюся на поддержке поставщика.
Эта практика научит вас корректному внесению доработок в конфигурацию 1С, стоящую на поддержке поставщика. Эти навыки пригодятся для реальной работы, когда вам потребуется внести объёмные доработки в конфигурацию.
- Установить учебную платформу версии 8.3.22 или больше.
- Просмотреть материал занятия «Внесение изменений в конфигурацию на поддержке».
- Решите описанные задачи в конфигураторе.
- Протестируйте решение в пользовательском режиме.
- Отправьте на проверку в личном кабинете Нетологии один общий файл базы данных (.dt), содержащей решения по обеим задачам. Файл прикрепите в раздел «решение» в практическом задании.
Вы дорабатываете приложение заказчика, использующего конфигурацию на полной поддержке. Заказчик запросил доработку: для Контрагентов необходимо хранить список контактных лиц.
Задание аналогично первой задаче прошлого занятия, но в этом случае необходимо сделать всё то же самое без использования расширения, внося корректировки в конфигурацию. В этом задании основной проверяемый критерий — правильность внесения доработок. Технические требования к реализации и порядок решения приведены в прошлом домашнем задании. Дополнительное требование — формы надо дорабатывать исключительно программно.
- Сохраните результат прошлого домашнего решения в отдельный dt-файл. Он пригодится для следующего домашнего задания.
- После сохранения файла удалите из базы расширение.
Подсказка 1
Откройте список расширений. Снимите напротив расширения флаг «Активно». Удалите его.- Включите для конфигурации возможность изменения.
Подсказка 2
Включите возможность изменения, но не забудьте оставить для всех объектов настройку «Объект поставщика не редактируется».- Подумайте, для каких объектов необходимо включить возможность изменения и включите её. Не бойтесь что-то забыть, к этой настройке всегда можно вернуться.
Подсказка 3
Мы будем добавлять объекты-справочники, значит, надо разрешить редактировать корень конфигурации и подсистемы, в которые справочники будут включены.Также нам надо вносить изменения в документы (добавить для них реквизиты) и в формы документов (но тут есть одна хитрость, о ней — в одной из подсказок далее).
Подсказка 4
Не выбирайте пункт «Объект поставщика снят с поддержки». Используйте «Объект редактируется с сохранением поддержки».Также не устанавливайте флаг «Установить для подчинённых», если это не необходимо. Настраивайте объекты максимально точечно.
Так как мы создаём новые справочники, они будут пустыми. Если в прошлой базе вы создали много данных, попробуйте перенести их при помощи выгрузки из той базы и загрузку в эту (например, при помощи JSON).
Подсказка 6
В общем случае, объекты можно скопировать из расширения, например, открыть его в соседней конфигурации и копировать их. Но следите за тем, чтобы типы данных не сбивались. Например, если вы скопируете сначала справочник Контактные лица, а потом справочник с должностями, то у реквизита Должность справочника КонтактныеЛица собьётся тип данных (будет установлена строка 10 символов), потому что на момент добавления этого справочника типа СправочникСсылка.Должности в конфигурации не будет.Также для справочников придётся указать подсистемы, в которые вы их размещаете.
- Пропишите необходимый программный код.
Подсказка 7
В форме надо создать элемент формы и установить для него путь к данным. Реквизит отдельно создавать не надо, так как мы его добавили в документОбъект на уровне метаданных.Подсказка 8
Конечно, программный код можно прописать в модуле формы, и для этого включить возможность изменения самой формы, но давайте обратим внимание, что все формы документов в событии ПриСозданииНаСервере вызывают одну и ту же процедуру общего модуля:ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
Мы можем использовать это. «ЭтотОбъект» — это наша форма. Всё, что нам надо сделать, — включить возможность изменения для общего модуля, и из этой процедуры вызвать собственный общий модуль:
А в самом этом модуле, исходя из имени формы, решать, как её доработать:
Сам по себе этот способ может вызывать споры, т. к., с одной стороны, мы вносим корректировку в более универсальный механизм, с другой, — оставляем больше объектов на поддержке типовой конфигурации. Это удобнее, т. к. формы меняются чаще, чем подобные общие модули.
Вы можете выбрать любой способ реализации, который вам больше нравится.
Задание аналогично второй задаче прошлого занятия, однако в этом случае необходимо сделать всё то же самое без использования расширения, внося корректировки в конфигурацию. В этом задании основной проверяемый критерий — правильность внесения доработок. Технические требования к реализации, а также порядок решения приведены в прошлом домашнем задании.
В документ «Заказ покупателя» должно быть добавлено поле «Согласованная скидка». Значение, указанное в поле, должно учитываться в документе.
- Включите возможность изменения формы документа ЗаказПокупателя.
- Добавьте в документ необходимый реквизит.
- Доработайте форму необходимым образом.
Подсказка 1
Все объекты на форму должны быть добавлены программно.Подсказка 2
Если в прошлом задании вы создали собственный общий модуль, пропишите добавление элементов в нём.Но обработчики событий должны располагаться в самой форме.
Подсказка 3
Не забывайте добавлять комментарии для выделения меняемого программного кода.Частые ошибки
- Учитывайте замечания из прошлой работы
- Не нужно дорабатыватьтакие обработчики, как "ТоварыКоличествоПриИзменении", "ТоварыЦенаПриИзменении" и т.п. Обратите внимание, все они вызывают одну функцию
- Если меняете стандартный метод (а по заданию это надо сделать) Менять его надо при помощи ИзменениеИКонтроль
- Выравнивайте только тот код, который Вы написали. Не следует пытаться выравнивать типовой код. Это усложнит дальнейшую поддержку, т.к. добавятся/удалятся невидимые символы - пробелы/табуляции и т.д., строка будет выглядеть, как измененная, хотя по факту такой не будет.
- При добавлении собственных методов в программный код, комментарий должен быть прописан внутри метода, и в каждом методе (то есть, в следующей строке, после "Процедура" или "Функция". Иначе, при обновлении, Вы не сможете отличить методы добавленные Вами при доработке, от методов, которые были удалены из типовой конфигурации поставщика.
- Заголовки для добавляемых элементов следует прописывать в "человекочитаемом" виде - с пробелами, т.е. не "ПеречсчитатьТаблицы", а "Пересчитать таблицы" (ВАЖНО это относится именно к заголовкам элементов, а не к их именам
- Реквизиты надо добавлять непосредственно в дерево конфигурации. Если вы создаете реквизит программно - он создается только в форме. То есть, информация никогда не сохранится в базе данных. Программно следует добавлять только элементы на форму, в данной задаче.
- Нельзя просто удалять или менять код типовой конфигурации. Исходный код обязательно должен быть сохранен в виде комментария (см. презентацию)
- Следует использовать единообразный стиль написания комментария. Например, если Вы начали использовать комментарий "// Начало. Иванов" - "// Конец. Иванов" - используйте такой же стиль везде. Это нужно еще и для того, чтобы Ваши доработки легко можно было бы найти в конфигурации глобальным поиском - 1 раз вводим в поиск строку "// Начало. Иванов" и сразу находим все места измененные Вами
- При доработке типового метода: с начала, лучше, написать комментарий с указанием автора и доработки, потом закомментировать исходный код типовой конфигурации, затем добавлять свой, новый
- Когда вы добавляете свой объект конфигурации (Справочник, Документ, Регистр) - дописываете префикс только к нему. У Реквизитов такого объекта префиксы уже можно не писать, т.к. и так понятно, что весь объект добавлен вами и все что в нем не имеет отношения к типовому коду
В результате выполнения этого домашнего задания у вас должна получиться база с поведением, аналогичным прошлому домашнему заданию.
- Зачёт — выполнены все задания, нет противоречий и нарушения логики.
- ВАЖНО! Введены тестовые данные. Проверьте все требования к заданию. Введите по меньшей мере 2 контрагентов, каждому из них по 2 контактных лица, 1 документ Заказ покупателя с указанием скидки и контактного лица. Значения должны сохраняться в базе, скидка должна применяться к сумме по строке табличной части в любом сценарии работы (изменение данных в строке, изменение реквизита, нажатие на кнопку)
- На доработку — задание выполнено частично или не выполнено, в логике выполнения заданий есть противоречия, существенные недостатки.
Примерное время выполнения: 45–180 минут
Все задачи обязательны к выполнению. Пожалуйста, присылайте на проверку все задачи сразу.
Любые вопросы по решению задач задавайте в чате учебной группы.