Доброго времени суток.
Продолжаем решать задачу по скоропортящимся продуктам.
На очереди документ "Уход товара" и разработка отчетов через СКД.
С этим документом придется немного помучиться, так как код в нем будет не тривиальным.
В модуле объекта этого документам нам необходимо сделать так, чтобы уход товара происходил по датам. То есть сначала должны списываться те товары, у которых подходит срок годности - таким образом будут списываться сначала товары с более ранней датой.
Необходимо сделать проверку на наличие товара у данного предприятия, то есть нельзя продать товар, которого нет в наличии и выдавать об этом сообщение.
Сделать записи для остатков и о продажа соответственно в регистры остатков и продаж.
Откроем модуль этого документа и создадим там вручную обработку проведения (Рисунок 1).
Пропишем запись в истину и сделаем блокировку по регистру (Рисунок 2).
Далее необходимо прописать пакеты запросов. Один пакет запросов сделать виртуальной таблицей, чтобы потом из него можно было получить необходимые данные, а второй - просто паке запроса. Индекс, упорядочивание и группировку сделаем по товару, а итоги сделаем по количеству, сумме и остатку.
Эти запросы проще всего сделать через создание запроса с обработкой результата, вызвав контекстное меню правой кнопкой мыши (Рисунок 3).
Прописываем два пакета запросов и получаем результат (Рисунок 4).
Теперь необходимо установить параметры. У нас их два: ссылка и момент времени. Первый параметр просто так прописываем, а второй будет устанавливаться при выполнении условия.
Устанавливаем первый параметр (Рисунок 5).
Устанавливаем второй параметр по условию. Он будет зависеть от режима проведения документа (Рисунок 6).
Делаем выполнение запроса и выставляем истину для записи в регистры (Рисунок 7).
На рисунке 7 указаны регистры. Чтобы этот код сработал, необходимо, чтобы для этих регистров были указаны регистраторы на вкладке "Регистратор" (Рисунок 8).
И для второго регистра должно быть так же.
Начинаем проверять выборку товара через цикл (Рисунок 9).
Проверяем остатки через условие и выдаем сообщение (Рисунок 10).
Дальше необходимо сделать выборку партии и узнать сколько осталось списать, для этого создадим переменные и проверим через внутренний цикл (Рисунок 11).
Внутри цикла будет два условия, которые будут проверять партию и сколько списать по количеству.
Прописываем эти условия (Рисунок 12).
И делаем движения в продажи (Рисунок 13).
Делаем расход товара и проверяем на остатки (Рисунок 14).
В наличии этого товара всего 11 единиц и 4 штук не хватает, система проверяет все правильно.
Теперь проверим, что списываются сначала товары с более ранней датой. Для этого нужно провести количество, которое есть в наличии и открыть регистр (Рисунок 16).
На этом рисунке видно, что списывается сначала 5 штук от 18 числа, которые есть в наличии и 3 штуки от 19 числа. Всего списывается 8 штук (Рисунок 17).
Система видит, что 18 числа пришло всего 5, а ей еще не хватает 3 единиц и она начинает брать от второго прихода 19 числа (Рисунок 18).
Создаем отчет по остаткам. Через конструктор запроса выбираем нужные данные (Рисунок 19).
На вкладке "Параметры" добавляем новый параметр и редактируем тот, который там был (Рисунок 20).
Отчет у на сбудет состоять из заголовка и самой таблички. Добавляем заголовок - детальные записи и сами поля - детальные записи (Рисунок 21).
Выбираем поля для отчета (Рисунок 22).
Параметр "Дата отчета" делаем доступным пользователю (Рискнок 23).
Убираем автоматические параметры (Рисунок 24).
Для заголовка нужно убрать автоматически выбранные поля (Рисунок 25).
И осталось добавить заголовок в макет.
Для этого переходим на вкладку "Макет" и выделяем несколько столбцов на второй строке и объединяем их через правую кнопку мыши (Рисунок 26).
Добавляем макет группировки (Рисунок 27).
Указываем заголовок (Рисунок 28).
Указываем область (Рисунок 29).
Делаем объединенные столбцы в строке шаблоном в свойствах этой ячейки (Рисунок 30).
Добавляем текст шаблона и он сразу появится в нескольких местах (Рисунок 31).
Для параметра необходимо прописать выражение, определяющее формат даты (Рисунок 32).
Запустим и сформируем отчет (Рисунок 33).
Второй отчет будет делаться аналогично.
Формируем запрос (Рисунок 34).
Редактируем параметры (Рисунок 35).
Создаем детальные записи и выбираем поля (Рисунок 36).
Начало и конец периода делаем доступными для пользователя (Рисунок 37).
Для отчета выбираем параметры и отбор (Рисунок 38).
Добавляем в макет заголовок, который будет выводить месяц и год (Рисунок 39).
Формируем отчет (Рисунок 40).
Начало и конец периода обязательные. Если их не выбрать, то получим уведомление (Рисунок 41).
Таким образом мы полностью решили задачу по скоропортящимся продуктам. Есть еще и другие варианты данной задачи, которые мы порешаем позже.
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Всем спасибо.
Буду благодарен за чаевые - https://yoomoney.ru/to/4100116532836145.
Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос, а так же можно на канале нажать кнопку "Написать сообщение".
Ссылка для вступления телеграм-канал - t.me.Apiscourses
Подписаться в группу ВКонтакте
Или написать на электронную почту - awesome.razrab@yandex.ru
Ссылка для вступления в чат на Дзен - https://yandex.ru/chat/#/join/34271c4c-039e-4d1d-97af-b24b3204ad08.
Буду благодарен за чаевые - https://yoomoney.ru/to/4100116532836145.
Прошлые уроки:
Введение Урок 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 Урок 47 Урок 48 Урок 49 Урок 50 Урок 51 Урок 52 Урок 53 Урок 54 Урок 55 Урок 56 Урок 57 Урок 58 Урок 59 Урок 60 Урок 61 Урок 62 Урок 63 Урок 64 Урок 65 Урок 66 Урок 67 Урок 68 Урок 69 Урок 70 Урок 71 Урок 72 Урок 73 Урок 74 Урок 75 Урок 76 Урок 77 Урок 78 Урок 79 Урок 80 Урок 81
На этом все. Жду Вас на следующем занятии.
P.S. Подписывайтесь на мой канал :-)
программирование программирование 1с 1с предприятие обучение онлайн обучение 1с
Буду благодарен за чаевые - https://yoomoney.ru/to/4100116532836145.