Программирование 1С. Урок 9

Продолжим изучение 1С. Делаем мы это на живом примере, разрабатывая нашу собственную конфигурацию домашнего бюджета. Если вы по честному делаете мои домашние задания, то у вас уже должен быть создан справочники единиц измерения и продуктов питания, и одно привязано к другому, а также документы учета продуктов питания. Кстати, вы наверно обратили внимание, что учет количества продуктов питания идет с точностью до 3 знака, а размер числового параметра 15 (ведь некоторые продукты весовые с точностью до грамма).

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

Теперь давайте сделаем аналогичный товарам отчет и по продуктам питания, чтобы знать сколько у нас их на остатках:

Хотелось бы в этом отчете увидеть ещё и единицу измерения, которую мы указывали для каждого товара. Конечно картофель вряд ли кто будет измерять поштучно, а мясо кусками, но всё же очень важно здесь отразить чтобы потом ничего не напутать, особенно если мы в будущем будем учитывать молоко и станет вдруг не ясно, считаем мы бутылками или литрами. Так вот, сделать это можно как минимум двумя способами (может есть и ещё, но навскидку не вспомню)) ).

Способ 1.

Раскрыть номенклатуру прямо в полях и вытянуть направо:

Способ 2.

Объявить получение нового поля в запросе:

А после этого это поле появится в настройках:

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

Что называется, выбирайте тот, который больше импонирует. Сделаем первым способом и увидим:

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

А если по второму способу:

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

Перенести поля туда методом Drag&Drop:

и указать тип группы как “В отдельной колонке”:

Получаем аналогичный результат:

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

Теперь, когда мы обладаем кучей информации о том что у нас есть дома, пардон, на складе, и продукты питания, и мелочевка, и бытовая техника, есть информация о том кто что когда покупал, но всё-таки как-то не ясно кто в доме больше всего транжирит деньги. Кончено, подозрение есть, что это маманька со своей косметикой и новыми платьями, но это надо всё-таки проверить чтобы не быть голословным))). Вот только как нам собрать теперь все эти данные, а собрать их не так сложно. Давайте сделаем новый отчет, в котором будет представлена сводная информация, запрос у него будет таким:

Тут как-то получилось не очень и всё в куче. Давайте вначале поймем, что точная дата нам не особо нужна для анализа, а вот месяц, в котором эти затраты были, очень важен, т.к. все мы ориентируемся на зарплаты, а кто-то на пенсии и дотации. Давайте отчет представим разделенным по периодам. Делается это так, сначала добавим новую группировку:

И укажем вот такое поле:

В этой группировке создам ещё для месяца и для домочадца, перетащим в нижнюю иерархию детальные записи и в результате получаем вот так:

Посмотрим что получилось, а получилось весьма даже не плохо, кроме дат – вместо года и месяца в иерархи полная дата:

Такое представление ещё хуже, чем было. Давайте сделаем красиво, по этому поставьте курсор в иерархии групп на группировку года, выберите настройку группировки, а не отчета, теперь кликнем во вкладке “Условное оформление” по зеленому плюсу и добавим новую строку:

Т.е. текст формата:

ДФ=yyyy

Тоже самое сделайте и для группировки месяца, но формат будет другой (латинские буквы М):

ДФ=MMMM

Как понимаете, “y” (буква игрек, уай) – это от слова year (год), а “M” – это month (месяц). После этого получается так:

Ну, и теперь осталось отчет, что называется, полирнуть. Ну, в смысле отполировать.

Укажите расчет ресурсов следующим способом:

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

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

Идем далее. Поступление разных товаров в дом – это хорошо, но это полноценно всё-таки не отражает затраты. Дело в том, что поступление может быть и разным, например, взяли телевизор в кредит, но мы не потратились при этом ни на копейку. С другой стороны, мы могли дать друзьям шуруповёрт на недельку, он вышел с нашего остатка, но при этом денег мы за него не получили. По этому по всем правилам любое приобретение состоит из двух частей – передача товара или услуг и оплата. Но для того чтобы что-то платить нужны деньги, а в финансовом смысле – источники средств. Для фирмы – это выручка, инвестиции и уставной капитал, а для нашей конфигурации – это заработная плата, стипендия, пенсия и кредиты. Пора учитывать этот раздел. Сделаем документ “ПоступлениеДенежныхСредств”, который получается крайне простой:

Однако, тут нет важной для учета информации, какой источник доходов, чтобы потом определить, это у бати такая зарплата маленькая или у бабуси крутая пенсия)). Можно конечно сюда тоже добавить справочник, но вариантов не так много, и новые вряд ли появятся. По этому такие объекты чаще делают не на основе справочника, а на основе фиксированного списка (чтобы пользователь не мог создать ничего лишнего, а мог использовать только то, что предусмотрено конфигурацией). Есть для этого специальный объект – перечисление, но заполняется он данными не в рабочей среде, а непосредственно в конфигураторе. Давайте создадим такой в соответствующем разделе:

И добавим в него несколько значений:

Вот этипх:

Значение “Прочее” нужно чтобы пользователь мог туда включать всё остальное, что не входит в эти категории источников дохода, но тем не менее происходит, например, выиграл в лотерею, нашёл на улице, подарили на День рождения и т.д.

И добавим теперь реквизит с этим типом в наш новый документ:

В результате получится так:

Задание по уроку:

1. Добавьте во все товарные справочники единицы измерения, добавьте в сводный отчет количества прихода и единицы измерения.

2. Создайте новое перечисление “ТипПоступленияТоваров” со значениями “Покупка”, “Аренда” и сделайте реквизит в документе ПоступленияТоваровУслуг.

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

Если всё получилось как нужно – молодцы! Если нет, давайте разберёмся что не так.

El Vinto, 2023

Добавить комментарий