Найти тему
1С: Программирование

Урок 47. Автоподстановка цены товара из регистра сведений

Всем привет.

Сегодня мы сделаем так, что у пользователя будет возможность добавить товар и указать у него цены, а потом выбирая этот товар в документе, будет происходить подстановка цены из регистра сведений.

Регистр сведений - это объект, предназначенный для хранения необходимой пользователю информации, например, информация о цене товара.

Но первоначально давайте модернизируем наш регистр сведений "ЦеныОтПроизводителя" и добавим в него новые поля с данными.

Структура регистра будет следующей (Рисунок 1).

Рисунок 1 - Регистр сведений
Рисунок 1 - Регистр сведений

Измерения Контрагент и Договор имеют тип со ссылкой на соответствующие справочники. Нужно не забыть для измерения "Договор" установить отбор по владельцу - таким образом, чтобы происходило отсеивание договоров, которые не относятся к данному контрагенту.

Теперь откроем документ "ПриходТовара" и перейдем на форму. Нам нужен столбец "Товар" (Рисунок 2).

Рисунок 2 - Форма документа
Рисунок 2 - Форма документа

Нам нужно сделать так, чтобы при выборе товара, а это значит при изменении, подставлялась цена из регистра сведений автоматически. Для этого нужно использовать событие "ПриИзменении" для столбца "Товар" (Рисунок 3) и прописать внутри нужную процедуру.

Рисунок 3 - Товар "ПриИзменении"
Рисунок 3 - Товар "ПриИзменении"

Давайте разберемся, что написано внутри этой процедуры.

1. На клиенте - это значит, что выполняется эта процедура только на клиенте

2. Процедура - начало процедуры и ее имя.

3. СтрокаРасчета - это обращение к табличной части "ПриходТовара" у документа "ПриходТовара".

4. СтрокаРасчета.Цена - это обращение к процедуре "ПолучитьЦену".

5. ПриходТовараЦенаПриИзменении(Элемент);- это обращение к процедуре "ПриходТовараЦенаПриИзменении(Элемент);", она находится в модуле выше.

Теперь нажмите на панели сверху значок проверки и вы получите уведомление о том, что "ПолучитьЦену" не обнаружено(Рисунок 4).

Рисунок 4 - Ошибка
Рисунок 4 - Ошибка

Эта ошибка сообщает о том, что платформа не может найти эту процедуру, а если он не может ее найти, значит ее нужно создать (Рисунок 5).

Рисунок 5 - Процедура "ПолучитьЦену"
Рисунок 5 - Процедура "ПолучитьЦену"

После этого опять нажмите на значок проверки и уже никаких ошибок не будет.

Важно обратить внимание на то, что регистр сведений должен быть непериодическим (Рисунок 6).

Рисунок 6 - Непериодический регистр сведений
Рисунок 6 - Непериодический регистр сведений

Запустим и проверим весь функционал в пользовательском режиме. Сначала необходимо зайти в регистр сведений "Цены от производителя" и внести там данные (Рисунок 7).

Рисунок 7 - Создание цены товара в регистре сведений
Рисунок 7 - Создание цены товара в регистре сведений

После этого необходимо перейти в документ "Приход товара" и создать там приход (Рисунок 8).

Рисунок 8 - Выбор товара
Рисунок 8 - Выбор товара

Обратите внимание на рисунок 8. На нем выбраны поля такие же, какие были при создании элемента в регистре сведений. При выборе, он будет выдавать их первыми, так как он запомнил, что вы недавно с ними работали.

Как только начнете сделаете выбор товара, который создавали в регистре сведений, так сразу же цена автоматически будет подставлена из регистра.

Это сделано для того, чтобы пользователь при работе не перепутал цену и экономия времени.

На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!

Всем спасибо.

Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос, а так же можно на канале нажать кнопку "Написать сообщение".

Ссылка для вступления телеграм-канал - t.me.Apiscourses

Подписаться в группу ВКонтакте

Или написать на электронную почту - awesome.razrab@yandex.ru

Прошлые уроки:

Введение Урок 1 Урок 2 Урок 3 Урок 4 Урок 5 Урок 6 Урок 7 Урок 8 Урок 9 Урок 10 Урок 11 Урок 12 Урок 13 Урок 14 Урок 15 Урок 16 Урок 17 Урок 18 Урок 19 Урок 20 Урок 21 Урок 22 Урок 23 Урок 24 Урок 25 Урок 26 Урок 27 Урок 28 Урок 29 Урок 30 Урок 31 Урок 32 Урок 33 Урок 34 Урок 35 Урок 36 Урок 37 Урок 38 Урок 39 Урок 40 Урок 41 Урок 42 Урок 43 Урок 44 Урок 45 Урок 46

На этом все. Жду Вас на следующем занятии.

P.S. Подписывайтесь на мой канал :-)

программирование программирование 1с 1с предприятие обучение онлайн обучение 1с